Программа генерации G-кода

Программа позволяет генерировать G-код, для фрезерных, лазерных, гравировальных станков.
Так-как формат текста G-кода, для каждого станка может отличаться, в программе реализована возможность создания индивудуальных профилей станков, что-бы после генерации G-кода, не требовалось руками, ещё дополнительно править текст. Описание методики составления профилей для станков, можно прочитать по следующей ссылке: правила синтаксиса.

Программа позволяет получать G-код из следующих данных:

  • Введенный пользователем текст
  • Рисунок – превращается в набор контуров (jpg, jpeg, gif, bmp, png)
  • Рисунок – превращается в набор точек/отрезков, для лазерного выжигания
  • Файл формата PLT, сформированный в CorelDraw
  • Файл формата DXF

Интерфейс программы реализован, в виде набора страниц, последовательность отображения страниц зависит от действий пользователя, ниже представлена полная карта последовательности страниц:

Описание страниц:

Выбор на данной странице, соответствует нумерации стрелок на рисунке №1.

(рисунок первой страницы №2)

s4
Для получения контуров, рисунок необходимо преобразовать в 2-х цветный рисунок, из цветного, для этого с помощью коэффициента подбирается желаемый результат, после подбора, можно поставив флажок, инвертировать получаемое 2-х цветное изображение. После этого можно запустить получение контура.

s6
Первая кнопка с сбросом позволяет отменить все манипуляции, проведенные с отрезками и точками. Нажатие второй кнопки, или изменение числа, вызывает оптимизацию траектории.
Третья кнопка – замыкает каждый из отрезков, что-бы начальная и конечная точка совпадала.
Четвертая кнопка – выполняет поиск оптимальной последовательности движения.
Пятая кнопка – соединяет несколько отрезков в один, если точки одного отрезка  начала/окончания совпадают с точками другого отрезка начала/окончания.
И последняя точка позволяет удалить выбранную точку или отрезок.

s7
Первая кнопка сбрасывает все выполненные манипуляции на данной странице, вторая и третья кнопка, выполняют зеркальный переворот, следующее числовое поле, с кнопкой выполняет поворот на заданный угол, если угол поворота задан был неверно, то желательно выполнить сброс изменений, и повторно повернуть. Если в разделе “конвертирование размеров”, ничего не трогать, то размер не измениться.
Флаг “Добавление отступов” приведет к переходу на 8-ю страницу, но она пока не готова, поэтому данным флагом пока не стоит пользоваться.

s9
В разделе время прожига значение в данном поле, будет помещаться в параметр “P” при генерации G-кода
Так-же на данной странице обязательно необходимо вводит желаемый размер!!!

59 комментариев

  • валерий

    Спасибо за программу

  • Спасибо за программу! Правда есть заметное неудобство при фрезеровке. Часто режется начиная с внешнего контура(. А, дальше надо держать, уже вырезанную деталь, руками. Опасно и неудобно. Нельзя ли начинать с самых внутренних контуров и двигаться наружу. Еще раз, спасибо!

  • А, что в программе нет возможности ручной корректирровки последовательность гравиривки векторов.

  • Программа может сформировать код для выжигания лазером с ттл модулем с включением лазера по S?
    Хотелось бы выставить мин и макс мощность лазера.

    • Такое сделать вполне возможно, о такой функции можно почитать тут: http://cnc-club.ru/forum/viewtopic.php?f=16&t=12096&start=600&p=335379#p335379
      В программе в зависимости от яркости можно манипулировать как параметром S, так F,Z. Скоро опишу примеры использования.

      • я пока вот так это решил
        POINTS
        {
        [SKIP_FIRST_POINT]
        “G1 X”[X’#0.##’] “Y”[Y’#0.##’] “S”[800*bright/255’##0.##’]
        }
        800 – максималка лазера

        спасибо за поддержку

  • где можно скачать программу?

  • последние релизы доступны тут: https://github.com/selenur/ToolsGenGkode/releases

  • Здравствуйте Сергей
    По какому телефону я мог бы связатся с вами

    • Можно всегда написать на zheigurov#gmail.com (п.с. решетку на собаку только сменить)

  • Сергей , спасибо за хорошую программу.
    У меня вопрос. Делаю в автокад DXF файл. Если полилинии прямые, то в Вашей программе открывается всё корректно, но если полилиния – это дуга, то программа автоматически соединяет две конечные точки дуги, превращая дугу в отрезок. Подскажите , что я делаю не так?

    • Привет Антон, если пришлешь фото как должно выглядеть, и DXF файл. То постараюсь исправить ошибку 🙂

  • Здравствуйте.
    Случайно зашёл на этот сайт. Хочу задать вопрос может ли на входе эта программа принимать g код для его дальнейшего редактирования и сохранения нового кода.

    • Такой функционал появиться, предположительно в течение 2-х месяцев, т.к. уже ведется разработка, и как появится, обязательно напишу 🙂

  • Константин

    Здравствуйте. Помогите. Как правильно установить программу?Одну папку V51 скачать и из нее открывать или еще дополнительно распаковывать два файла, которые идут в комплекте на скачивание?

  • Константин

    Как правильно установить программу? Спасибо.

  • Евгений

    Спасибо за программу!
    У меня возник следующий вопрос: в первой версии программы “Генератор G-кода” ( 2.0.0.46) на стр. 10 “Генерация G-кода” открывается спадающее меню:
    – Настройка лазерного выжигателя с изменяющейся F
    – Настройка лазерного выжигателя S – c профилем
    – Настройка для лазерного выжигателя S-Bright
    – настройка лазерного выжигателя Z-Bright
    – Выжигание лазером Р-вариант
    – Лазер гравировка
    Про -” Выжигание лазером Р-вариант” я так понял, что это когда луч горит постоянно, а мощность изменяется.
    Про остальные, Сергей, пожалуйста, поясни, что понимается под “изменяющейся F”, “S – c профилем”, “выжигателя S-Bright”, “выжигателя Z-Bright” ? Какой конструктив -схемотехника каждой из этих режимов создания G-кода?
    Есть ли такой вариант – (или я предложу, если нет) – когда луч горит постоянно, а фокус по оси Z смещается – т.е аналог гравировки фрезером -. То есть жгёт когда в фокусе, изменилось значение по оси Z – луч расфокусировался – не жгёт – переезд на следующую точку, снова ось Z двигается – луч в фокусе – жгёт, и т д . Хотя, может это неэкономично и медленнее работает, но позволяет без ТТЛ управления выжигать лазером, навесив его вместо фрезерного шпинделя. Выигрыш – быстрая переналадка с лазера на фрезер.

    • В выпадающем меню отображается список “профилей станка” каждый профиль представляет собой файл правил, генерации G-кода. Файлы профилей лежат в каталоге “profiles”.
      В каждый профиль что ты перечислил, заточен под определенную задачу, и определенные источники данных.
      Твой вариант в принципе возможен, но нужно проверять. Т.к. выжигание лазером, да ещё на разном материале сильно разнится 🙂

  • Дмитрий

    Здравствуйте! Большое спасибо за программу! Подскажите, пожалуйста, возможно как-то гравировать фрезером текст без обводки букв по двум контурам? Программа как-бы выделяет текст на внешний и внутренний контур, хотелось бы получить буквы как они напечатаны на бумаге. Прошу прощения заранее, если вопрос глупый, я только не давно получил станок, осваиваю. Спасибо!

  • Андрей

    Здравствуйте. Скачал с https://github.com/selenur/ToolsGenGkode/releases архив ToolsGenGkode-2.0.0.51.zip. Как запустить программу? .exe файла в архиве нет. Спс

    • На странице есть 3 ссылки, нужна самая первая “v51.zip” а ссылки с текстом “Source code” не содержат екзешника 😉

  • Александр

    Здравствуйте.

    Есть несколько вопросов по Вашей программе:
    1. При обработке файла PLT на 7-й странице Вашей программы у меня почему-то всегда в строке “Текущий размер” отображаются значения ровно в 10 раз большие, чем в исходном файле, а значения в строке “Новый размер” всегда равны 0.001 по обоим координатам. Я что-то не так экспортирую?

    2. На стр. 10 Вашей программы выпадающий список с “профилями”. Где можно узнать подробное описание каждого из предлагаемых профилей, разницу в них, какой профиль следует использовать в каких случаях?
    Также, если выбирается профиль с регулировкой мощности лазера (как я понимаю. параметр S), то как можно выставлять и менять значение этого параметра, кроме как правкой уже сформированного кода например в блокноте?

    3. Можно ли сделать как-то дополнительной кнопкой в интерфейсе или как-то еще, чтобы в конце кода выводилась команда возврата каретки в исходное положение (G0 X0 Y0)?

  • Нарисовал в Corel окружность диаметром 20 мм , сохранил PLT. Загрузил файл PLT, получается окружность 200 мм. Ошибка в программе или проблема экспорта PLT ?

  • Добрый день Сергей программа хорошая есть аналог для плазменной резки метала.

    • Сейчас уже доступна 3 версия программы, она ещё в процессе разработки, но уже можно адаптировать под разные производства.

  • Алексей

    Доброе утро! Как учитывать толщину фрезы? Например, фреза диаметром 6мм режет фанеру по кромке, уменьшая внутренний размер, а отверстие 6мм получается 12мм.

  • Здравствуйте! Добавьте, плз, модуль генерации G-кода для прошивки Marlin (Rep-Rap), иначе программы Pronterface, Repetier-Host отказываются правильно понимать код. Для этого надо всего лишь добавить код G1 в начало строк с координатами X-Y.

  • Андрей Александрович

    Сергей Здравствуй! Я уже задавал вопрос по открытию файла.nc в рулилке, и твои ответы я попробывал замену темп, данные в таблицу не заполняются!!!! вкладка 3 засветка
    Для чего, отвечу: допустим сформирован файл ,процесс выжигания начат, вдруг свет моргнул и все приходиться создавать с начала а плата не маленькая! хотелось конечно чтоб можно было открыть ранее созданный файл и начать процесс выжигания ! Так как гравер у меня самодельный .Проявляется это одинаково на win7 и winXP

    • Приветствую!
      Модуль управления GRBL контролером находится на начальной стадии разработки, и логика программы такова, что она построчно читает темп файл, и отправляет содержимое в ком-порт, данные из этого файла не могут ни как попасть, ни в какую таблицу…
      Возможность продолжения работы хорошо реализовано в другой программе: http://www.cnc-club.ru/forum/viewtopic.php?f=147&t=17614&p=402147 вот тут пример.

  • Сергей

    Добрый день отличная программа . есть вопрос . будет ли расширения функций программы ? очень бы хотелось гравировать . а программа может только контура резать

  • есть проблема – при выборе модуля “Ввод текста” выдает ошибку и вываливается, это и в версии 2 но там программа предупреждала но при выборе другого шрифта продолжала работать.

    Произошла ошибка №2 ; при получении данных из системного файла шрифта: Недопустимый параметр.
    CNC-CLUB.RU
    [FontFamiIy: Name=Aharoni]
    0
    10
    [StringFormat, FormatFIags=0]

    как избавится?

  • “Хотелки” – предположение, вам надо вырезать кольцо, вы вырезаете вначале внутренний диаметр потом наружный , ибо если вырезать по всей траектории то вырезаемый объект теряет жесткость, если резать последовательно то вначале выбирается наружный а потом внутренний, что сами понимаете… поэтому потом приходится ручками править G – код.
    Предложение – на начальном этапе создать выбор последовательности траекторий обработки детали. С уважением…

    • Сейчас как раз доделываю возможность изменения последовательности траекторий. В новом релизе появится такая возможность 😉

  • Алексей

    Доброго времени Сергей.
    Есть огромное желание, а для твоей программы предложение доработки.
    Суть: без танцев с бубном открывать файлы с расширением .DIP (Diptrace) и также без бубнов переводить их в файлы .STL, с возможностью включать и выключать лазер для засветки фоторезиста указываемыми вручную командами (например М106 и М107). Поясню, имеется 3D принтер на базе “tevo tarantula”, имеется UV лазер, но управлять им могу только через выход вентилятора (М106 и М107). Так-же надо добавить в код возможность отключать 3 нагревателя экструдера, 3 экструдера и нагреватель стола. Кстати вышеупомянутый принтер к твоему блоку рулилки не подключается, ни на каких скоростях и портах.

    • Приветствую!
      Файлы “dip” имеют специфическую внутреннюю структуру, не зная которую, я не смогу из неё получить данные, а компания разработчик 100%, не предоставит такую информацию, так что данный вариант в принципе невозможен.
      Сохранение данных в STL формат сделать можно, в список пожеланий на реализацию, добавлю, но навряд ли скоро сделаю, т.к. есть более важные и популярные задачи.
      Управлять лазером командами M106 и M107 можно, для этого достаточно это прописать в файле “профиль станка”, для примера можешь посмотреть файл с этого сообщения на форуме: http://cnc-club.ru/forum/viewtopic.php?f=16&t=12096&start=1440&p=401308#p401308 тут содержится профиль для 3D принтера к которому прикреплен лазер.
      Для отключения нагревателя, нужно просто в профиле станка добавить G-команды которые это делают (но я их не знаю, тут правильнее вопрос задать на этом форуме: http://3dtoday.ru/ )
      Модуль 901 использует чужой исходный код, который заточен работать только с ардуино-УНО с прошивкой GRBL 1.1, а у тебя совершенно иной контроллер и прошивка, в связи с чем использование точно невозможно.

  • Сергей

    добрый день . я там на пивко кинул . прога класс но в последней версии текст не работает ( зато в предыдущей нормально все ) (но не в этом соль ) . Хотелки а планируется дальше развитие программы в сторону берем фото определяем цвета и переходы цветов и на разную глубину фрезой ?

    • Сейчас делаю модуль, с прицелом на лазерную гравировку, но вполне возможно модуль использовать и для опускания на разную глубину, думаю в течение недельки сделаю 🙂

  • Сергей

    и в последней версии . она при выборе картинки и нажать кнопку запуск программа вылетает

  • 1. Ошибка в модуле 106 на вкладке “зигзаг” с отображением относительно оси координат. В окне модуля и в окне просмотра они разные, а также в окне модуля по оси Y они в минусе.
    2. Хотелки – создание в модуле 106 простых(любых) траекторий из примитивов: линия ,прямоугольник, круг/овал/дуга. Пример: на вкладке “линия” рисуется линия – начало лини, конец лини, с координатами по осям – добавить. Новая линия – добавить, и т.д. Также с прямоугольник, круг/овал/дуга. Фактически этот модуль можно превратить в подобие OpenSCAD где из примитивов создаются объект.

  • С новым годом! В 3.2.0.5 проверите модуль 300.

  • Здравствуйте, спасибо за программку, особенно порадовала возможность писать свой config под свой станок.
    Подскажите где лежит переменная расширения файла, хотелось бы иметь возможность выбирать расширения .cnc .gcode

    Спасибо

    • Приветствую!
      Планирую в следующей версии 3.2.0.9 добавить такую возможность, и опишу как этим пользоваться 🙂

  • Петруха

    я пока на начальном этапе по cnc. после использования Конструктора G-кода 3.2 в маch 3 одна треть координат куда то исчезают, хотя перед сохранением на векторных картинках все чудно. Пробовал открывать .tap файлы, в маch 3 других пользователей, они отрабатывают в полном объеме. Видимо я что то не так сохраняю…или ещё какие версии будут ?

  • Евгений

    Здравствуйте. Что то не могу найти ссылку на скачивание. Мне нужно преобразовывать dxf файлы.

  • Здравствуйте, есть проблемка, может кто сталкивался, помогите пожалуйста разобраться. Попробовал резать лазером картон, предварительно сгенерив ж-код данной прогой, код скармливаю граверу с ноута через GrblController или LaserGrbl. Движение получается рывками как бы приостанавливается при выполнении каждой строчки кода или от узла кривой к следующему узлу, и в этих точках останова лазер сильнее прожигает материал.

    • Хоть вопрос и старый, но может кому пригодится.
      Если станок под управлением GRBL, то надо включить режим лазера. “$32=1”
      И вместо команды запуска шпинделя “M3″ использовать команду”M4”

  • Дмитрий

    Помогите пожалуйста сформировать программу генерации G-кодов для гидроабразивного станка.
    Это первый действующий Российский станок спроектированный и созданный нашими учеными.
    Для связи моб. 8(916)800-9111

  • Добрый день, Сергей!
    Хочу снова обратиться с просьбой из второго комментария)
    Программа снова формирует УП от внешних контуров к внутренним. А, очень бы хотелось наоборот.
    Что то мелкое, что не удержать руками, фрезеровать вообще невозможно. Заранее спасибо!

  • Пардон)
    Предыдущий коммент относится к последней, вроде третьей, версии программы.
    Спасибо за программу!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Protected with IP Blacklist CloudIP Blacklist Cloud