Генератор gcode для лазерной гравировки

СТАНОК С ЧПУ СВОИМИ РУКАМИ

Последние публикации

  • Гравировка CO2-лазером герба РФ на стеклянном стаканчике
    Подробнее
  • Гравировка CO2-лазером фотографии на стекле
    Подробнее
  • Интернет-сервис формирования G-кода из BMP, JPG, GIF, PNG
    Подробнее
  • Рисуем в Paint эскиз для резки CO2-лазером
    Читать
  • Определение величины задержки между шагами ШД
    Читать
  • Гравировка CO2-лазером на металле с использованием пасты
    Читать
  • Резка по изображению «от руки», чертежу или растровой картинке
    Читать

Заметки

  • Прошиваем GRBL в Ардуино UNO. Ошибка avrdude: stk500_recv(): programmer is not responding
    Читать
  • Изготовление источника питания для двигателей из старых зарядников.
    Читать
  • Муфта соединения оси шагового двигателя и оси винтовой передачи.
    Читать
  • Каретка винтовой передачи скольжения станка с ЧПУ.
    Читать
  • Подключение драйвера ШД на TB6560 к Ардуино, шаговому двигателю и БП.
    Читать
  • Запуск CO2-лазера при отрицательной температуре
    Читать

On-line генерация G-кода по растровому изображению

Интернет-сервис формирования G-кода из BMP, JPG, GIF, PNG

Размеры готового изображения

Мощность

Описание сервиса

Сервис предназначен для формирования G-кода для станка с ЧПУ. On-line генератор G-кода создает программу для управления ЧПУ с установленным лазерным модулем. Это может быть твердотельный лазер или CO2-лазер.
С помощью полученной программы для ЧПУ можно гравировать на различных поверхностях:

Псевдотонирование

Для гравировки на стекле можно воспользоваться псевдотонированием. Реализован алгоритм упорядоченного псевдотонирования. Псевдотонирование позволяет смоделировать эффект полутонов с помощью двух цветов: белый и черный.
На стекле из-за малой площадки текучести, низкой теплопроводности и оптических свойств невозможно полноценно сформировать полутона. В сервисе On-line генерация G-кода по растровому изображению после псевдотонирования выполняется инвертирование цветов. Если необходимо получить псевдотонированное изображении без инвертирования цветов, то нажмите кноку Псевдотонирование повторно.

Формирование G-кода, реализованные команды

On-line сервис формирует код, эквивалентный коду, экспортируемому из программы ECNC. Следует заметить, что в программе ECNC для управления ЧПУ нет ограничений на размер загружаемого изображения. В сервисе ограничения связаны с выделенным временем выполнения скриптов на сервере.
На данный момент в on-line генераторе G-кода используются команды:

  • X — перемещение вдоль оси X
  • Y — перемещение вдоль оси Y
  • M3 — включение лазера
  • M5 — выключение лазера
  • S — мощность лазера

Правила формирования кода

В блоке Размеры готового изображения определяется соответствие между растровым изображением и заготовкой, то есть количество пикселей на 1 миллиметр. Все перемещения производятся на скорости холостого хода. Если каретка движется слева-направо, то перед «темным» пикселем лазер включается на заданную мощность. Каретка проходит пиксель и лазер выключается. Аналогично при движении справа-налево.
Мощность лазера задается числом, следующим за S. Число является отображением степени «черноты» пикселя на отрезок, заданный в блоке Диапазон мощности. То есть, для диапазона 20-80, 255 — белый пиксель — соответвует команде S20, 0 — черный пиксель — соответствует S80. Для указания мощности используются только целые числа.
Кроме того, если выставить галку Дискретные значения, то отрезок 0-255 будет разбит на одинаковые интервалы. При попадании яркости пикселя в какой-то интервал будет установлена соответвующая мощность.
Генератор формирует тело программы. Скорость перемещения, начальное и конечное положения задайте самостоятельно.

Конвертер Bmp в GCode

Сделает из фото *.NC файл для выжигания нихромом.

Лицензия: Freeware

Программа для создания GCode для ЧПУ из растрового изображения (bmp, jpg и других форматов)

(Для её использования полезно знать как работает GCode)

  • Редактирование растрового изображения (основное(яркость,контраст,постеризация,обрезка) + функции специально для выжигания)
  • Предпросмотр и устранение возможных задержек при выжигании (контроль траффика)
  • Устранение светлых горизонтальных полос при выжигании ч/б изображения
  • Траектории: прямая, выжигание в два прохода (чересстрочно), опционально змейка, опционально отдельная скорость для супербелого цвета
  • GCode максимально оптимизирован и сжат. Есть возможность настроить формирование строки (что-то вроде постпроцессора)
  • Есть возможность добавить свои команды GCode в процесс выжигания (например особый алгоритм чистки жала в три наскока на линейку)
  • Расчёт GCode для выжигателя:
  • Выжигание путём изменения скорости передвижения жала
  • Выжигание путём задержки жала над пикселем на определённое время
  • Выжигание лазером с оттенками путём включения над пикселем на определённое время
  • Выжигание лазером без оттенков путём включения на тёмном и выключения на светлом
  • Расчёт GCode для гравировки:
  • Гравировка растра попиксельно на переменную глубину (опционально пропуск белого цвета).
  1. При генерации GCode методом задержки над точкой (режим P и P2) использовался десятичный разделитель системы, вместо указанного в настройках форматирования координат.
  2. Исправлены ошибки пропуска белых точек для режимов P и P2. Теперь пропускаются не идеально белые точки, а все, которые дадут кадр программы вроде «G4 P0.000» после округления координат и форматирования.
  3. Мелкие поправки в интерфейсе.

Конструктор G-кода 3.3

Оглавление

1.Введение

Данная программа разработана для возможности генерации G-кода, для различных ЧПУ станков. Имеющийся функционал позволяет программу адаптировать именно под ваш ЧПУ станок, что-бы получаемый G-код можно было сразу использовать на станке. На текущий момент версия 3.3 программы находится в процессе доработки, и некоторый функционал в программе может не работать, или работать с ошибками, но всегда можно мне сообщить о выявленных ошибках, и я обязательно постараюсь их исправить, для этого достаточно написать мне на почту:

Генератор gcode для лазерной гравировки

На моём youtube канале можно посмотреть примеры работы с программой.

Вы можете так-же поддержать развитие данного проекта, воспользовавшись формой ниже:

Клиенты сбербанка, могут напрямую поддержать:

Генератор gcode для лазерной гравировки

Программа представляет собой подобие конструктора, состоящего из набора блоков, которые можно собрать в определенную последовательность, которая идеально подойдет именно вам, под вашу задачу, но это требует некоторое время на освоение программы. А можно запустив программу, подгрузить из интернета готовый набор «профилей» которые уже содержат все необходимые настройки, для быстрого получения G-кода, из различных файлов, типа: bmp, jpg, png, gif, DXF, PLT, Drill, Gerber.

В связи с тем что ЧПУ станки бывают разных видов, и управляются различными системами, контроллерами, формируемый G-код для станка, должен иметь соответствующий вид, и для этого в программе реализована возможность индивидуально настроить то, как должен выглядеть G-код именно для вашего станка, для этого применяется специальный язык «Lua», вот по этой ссылке я описал базовые возможности языка: «Ссылка на описание Lua языка» а информация о том как применять язык Lua в моей программе, описал тут: «Ссылка на методику использования»

Скачать актуальную версию программы можно вот по этой ссылке: Конструктор G-кода 3.3.0.43 от 05.04.2020

! Версия 3.3 значительно поменялась, и некоторые вещи стали отличаться от того что было в версии 3.2, а так-же старые файлы профилей, и правил в новой версии к сожалению не работают.

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

Добрый день. хорошее приложение, правда с новой версией не разобрался.
Жалко только что ( I,J,K Параметры дуги при круговой интерполяции G03 X10 Y10 I0 J0 F10) не конвертирует из DXF. Для маркера рисовальщика это очень критично.
Подскажите можно как то решить этот вопрос?

День добрый! В версии 3.3 нет правила для сверловки. Напишите его пожалуйста…

Как сделать гравировку. Полная инструкция

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Шаг 1. Создание векторного изображения из простой/растровой картинки

Обращаем внимание, что векторизация растровой картинки дает не точную копию, а набор кривых, с которыми нужно работать дальше.

С помощью InkScape можно превратить растровое изображение в векторное, то есть превратить его в контур.

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

Выделите в поле программы ваше растровое изображение, которое вы будете переводить в контуры, и в главном меню выберите команду «Контуры» — «Векторизовать растр…», либо используйте комбинацию клавиш Shift+Alt+B.

Генератор gcode для лазерной гравировки

Рис. 1. Фильтры на вкладке «Режим»

Во вкладке «Режим» вы увидите три фильтра. Первый из них «Сокращение яркости». Этот фильтр просто использует сумму красного, зелёного и синего компонентов пикселя (иначе говоря, оттенки серого) в качестве индикатора, и решает, воспринимать ли его, как чёрный или как белый. Значение порога яркости может быть задано в диапазоне от 0,0 (чёрный) до 1,0 (белый). Чем выше значение, тем меньше пикселей будет воспринято как «белые» и тем больше черного станет на изображении.

Генератор gcode для лазерной гравировки

2. Предпросмотр в результате применения фильтра «Сокращение яркости».

Фильтр второй — «Определение краев». Этот фильтр создает картинку, меньше похожую на оригинал, чем результат первого фильтра, но предоставляет информацию о кривых, которая при использовании других фильтров была бы проигнорирована. Значение порога здесь (от 0,0 до 1,0) регулирует порог яркости между смежными пикселями, в зависимости от которого смежные пиксели будут или не будут становиться частью контрастного края и, соответственно, попадать в контур. Фактически, этот параметр определяет выраженность (толщину) края.

Генератор gcode для лазерной гравировки

Рис. 3. Предпросмотр в результате применения фильтра «Определение краев».

Третий фильтр – это «Квантование цветов». Результатом работы этого фильтра является изображение, которое заметно отличается от результата работы двух предыдущих фильтров, но при этом тоже может оказаться полезным. Вместо того чтобы показывать изоклины яркости или контраста, этот фильтр ищет края, где меняется цвет, даже если смежные пиксели имеют одинаковую яркость и контраст. Параметр этого фильтра (количество цветов) определяет количество цветов на выходе, как если бы растровое изображение было цветным. После этого фильтр определяет чёрный это пиксель или белый в зависимости от чётности индекса цвета.

Генератор gcode для лазерной гравировки

Рис. 4. Предпросмотр в результате применения фильтра «Квантование цветов».

Вкладка «Параметры» даёт дополнительные возможности по получению требуемых свойств получаемого вектора. Например, рекомендуется убрать галочку «Сгладить углы», если вы собираетесь гравировать мелкое изображение.

Генератор gcode для лазерной гравировки

Обращаем внимание начинающих пользователей, что результат работы фильтра хоть и расположен поверх исходного растрового рисунка, но представляет собой отдельный объект контуров. Этот объект сразу является выделенным и можно переместить его мышкой или стрелочками клавиатуры, чтобы убедиться в его самостоятельности. Узлы объекта можно редактировать с помощью инструмента управления узлами.

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

После векторизации рекомендуется воспользоваться функцией упрощения контуров, чтобы уменьшить количество узлов. Эта функция находится в главном меню «Контуры» — «Упростить» или комбинация клавиш Ctrl+L. C уменьшением узлов результат работы после векторизации станет более лёгким для редактирования, однако возможно и так, что детали рисунка станут слишком сглаженными для ваших целей.

Генератор gcode для лазерной гравировки

Рис. 6. Исходное векторное изображение и результат применения функции «упрощения» контуров. Узлы в исходном и «упрощенном» контуре изображения.

1. Gcodetools и Inkscape распространяются под лицензией GNU GPL, т.е. бесплатно, в т.ч. для коммерческого использования. Обе программы кросплатформенные, есть дистрибутивы под Windows, Linux и MacOS.

Шаг 2: Крепление образца к столу 3D принтера и расположение в координатах в программе InkScape относительно опорной точки крепления.

Перед гравировкой лазером на образце необходимо знать следующее:

1. Образец необходимо закрепить на рабочей области 3D принтера (или гравера). Это можно сделать следующими способами:

1.1. Если движения стола при гравировке не слишком резкие, то возможно и обойтись без крепления, образец удерживается на месте за счет сцепления трением со столом.

1.2. Канцелярский зажим – одно из самых простых и легкодоступных креплений для вашего образца;

1.3. Двусторонняя клейкая лента. Возможно липкие с двух сторон коврики (например, автомобильные);

1.4. Обычные (канцелярские, аптечные) резинки.

1.5. Хомуты пластиковые разной длины.

1.6. Пара магнитов: зажимать образец сверху (магнит на образце) и снизу (магнит снизу стола 3D принтера), также вариант сбоку подпирать образец с нескольких сторон.

2. Если образец прозрачный или полупрозрачный, тогда необходимо подложить под образец что-либо, например, фанеру, чтобы лазер не попадал напрямую на стол через прозрачный образец. Также подкладка под образец нужна, если планируется резка образца лазером насквозь, чтобы на финальной стадии резки лазер не повредил поверхность стола 3D принтера.

Чтобы векторное изображение нанести в точно обозначенное место образца, следует:

• Во-первых, понимать координаты расположения изображения и образца в машинных координатах 3D принтера.

• Во-вторых, соответствующим образом расположить изображение в координатах в программеInkScape.

1. Для определения координат расположения изображения и образца в машинных координатах 3D принтера, предлагаем выбрать опорную точку и измерить её точные координаты для того, чтобы в дальнейшем при определении координат отталкиваться от этой опорной точки. Это достаточно сделать один раз для дальнейшей работы с гравером.

1.1. В качестве опорной точки при работе с 3D принтером Wanhao мы рекомендуем выбратьправый нижний угол стола (правый ближайший к вам угол стола).

1.2. Далее мы измеряем машинные координаты опорной точки (правый нижний угол столика):

1.2.2. Выполняем автоопределение начала координат для всех осей: заходим в настройки (нажатием на поворотную кнопку регулировки) на блоке управления принтером, далее «Quick Settings», далее «Home All».

1.2.3. Поднимаем лазер по оси Z на высоту, на которой у нас будет происходить гравировка (это определяется фокусным расстоянием, см. инструкцию по настройке фокусного расстояния лазера, можно выбрать Z примерно 40см для начала). Перемещения по всем координатам осуществляются через блок управления принтером следующим образом: переходим в настройки, далее «Position», далее «X Pos. Fast», или «Y Pos. Fast», или «Z Pos. Fast», далее кнопкой вращаем, изменяя значение координаты.

1.2.4. Далее перемещаем по X оси и по Y, чтобы луч лазера падал на правый нижний угол столика. Методом последовательных приближений. Для включения лазера через блок управления: переходим в настройки, далее «Fan speed», далее «Set Fan Full», а для выключения лазера: «Turn Fan Off». (Также на верхней раме 3D принтера Wanhao установлена отдельная специальная страховочная красная кнопка включения и выключения лазера) Работайте ТОЛЬКО В ЗАЩИТНЫХ ОЧКАХ при включенном лазере. Всегда помните о технике безопасности при работе с лазером!

1.2.5. Записываем с экрана полученные координаты отдельно. Например, эти координаты могут быть следующими X=200 и Y=75.

1.3. Пример. Пусть координаты опорной точки X=200, Y=75 и мы крепим образец в правый нижний угол стола принтера, пристыковывая правый и нижний края образца соответственно к правому и нижнему краям стола. Если мы гравируем на квадратике 100х100мм и хотим расположить гравировку размером 60х60мм ровно посередине квадратика, то координата нижнего левого угла гравировки (самого изображения) будет равна X=120 и Y=95. Вычисления: X= 200 — (100-60)/2 — 60, а Y= 75 + (100-60)/2. Эти координаты понадобятся далее в п.2.2.2.

2. Подготовим расположение вектора в координатах в программе InkScape. Для этого совершаем следующие предварительные действия:

2.1. Установим размер страницы в рабочем поле документа:

2.1.1. «Файл»  «Свойства документа»  «Размер страницы» (также сочетанием клавиш Shift+Ctrl+D).

2.1.2. В разделе «Общие» выставляем «Единица измерения» на «mm».

2.1.3. В разделе «Размер страницы» в подразделе «Другой размер» – «Единицы» поменять на «mm», «Ширина»: 200, «Высота»: 200. Поясним: 200х200мм – это координатный диапазон работы головки в 3D принтере Wanhao.

Генератор gcode для лазерной гравировки

Рисунок 2.1. Вклада «Страница» в свойствах документа

2.2. В InkScape необходимо расположить и выставить требуемые размеры изображения (будущей гравировки). Для этого делаем следующее:

2.2.1. Вносим размер в поля «Ш:» и «В:» (ширина и высота соответственно). ОБЯЗАТЕЛЬНО указать единицы измерения – mm. Значок с изображением замка (при включенном режиме) сохраняет пропорции при изменении изображения.

Генератор gcode для лазерной гравировки

2.2.2. Вносим координаты нижнего левого угла векторного изображения в поля «X:» и «Y:». Эти координаты должны учитывать расположение опорной точки. (См. пример в п.1.3.)

Генератор gcode для лазерной гравировки

2.2.3. Также для достижения требуемых координат можно перемещать изображение мышкой или клавишами стрелок.

Шаг 3: Подготовка файла Gcode из векторного изображения (вектора)

Работа с этой инструкцией подразумевает, что у нас имеется подготовленный векторный вариант гравировки. Вот несколько важных требований к векторному изображению, чтобы наша гравировка получилась супер:

• Объект должен содержать только один слой изображения (например, бывает накладка нескольких слоев друг на друга одного и того же изображения с разными деталями).

• В векторном изображении не должно быть слишком мелких деталей из картинки (иначе лазер просто прожжет образец, т.к. будет работать примерно в одной точке над мелкой деталью), а именно, избегайте деталей менее 0,5мм.

• В векторном изображении не должно быть слишком много узлов, иначе генерация Gcode может работать часами. Для уменьшения количества узлов можно воспользоваться функцией упрощения контуров или редактировать вручную.

Подробнее про подготовку вектора смотрим инструкцию по гравировке «Шаг 1. Подготовка векторного изображения из растрового» по ссылке.

1.1. Выделить объект, который будем гравировать. Инструмент выделения и трансформации, в окне инструментов (первый инструмент сверху виде черной стрелочки) или нажмите клавишу S или F1. Выделенный объект inkscape будет обведен черной или пунктирной рамкой.

Генератор gcode для лазерной гравировки

1.2. Расположить объект в нужной точке координат (X;Y) согласно методу крепления нашего материала к столику 3D принтера. Просто перемещайте изображение мышкой или клавишами стрелок, либо используйте точное задание координат (в верхней строке команд) с помощью полей «X» и «Y»:

Генератор gcode для лазерной гравировки

2. Используйте первый плагин InkScape: «J Tech Photonics Laser Tool».

2.1. Для этой возможности у нас должны присутствовать файлы данного плагина («laser.inx», «laser.py») в папке внутри расположения программы, а именно «C:Program FilesInkscapeshareextensions». Для вашего удобства мы приложили к инструкции данные файлы для скачивания.

2.2. Щелкаем в меню «Расширения», далее «Generate Gcode», далее «J Tech Photonics Laser Tool…»

Генератор gcode для лазерной гравировки

2.3. Указываем в диалоговом окне необходимые параметры для генерации кода.

2.3.1. Команды включения и выключения лазера, используемые для нашего принтера (например, для 3D принтера Wanhao это команды M106 и M107 соответственно, а для гравера DIY – команды M03 и M05 соответственно).

Генератор gcode для лазерной гравировки

2.3.2. Скорость перемещения (когда лазер выключен).

2.3.3. Скорость прожига (когда лазер включен).

2.3.4. Задержка перед движением (прожигом) в миллисекундах после момента включения лазера в точке начала каждого контура.

2.3.5. Количество проходов по нашему рисунку.

2.3.6. Глубина в миллиметрах за один проход. Этот параметр учитывается в коде при количестве проходов более одного. После каждого прохода добавляется команда, опускающая лазер вниз на данную величину (для сохранения фокусировки).

2.3.7. Указываем каталог для сохранения файла с нашим кодом, он запомнится программой и в следующий раз его не надо будет снова вводить.

2.3.8. Щелкаем «Применить» для запуска работы плагина.

2.3.9. В ряде случаев возможна программная ошибка в результате работы плагина, и мы видим уведомление об этом, тогда код не будет сгенерирован. В таких случаях можно отредактировать незначительно вектор и заново запустить плагин. Или используем следующий плагин.

2.3.10.1. В начало кода вставить строку «G28 X Y» (Go to origin only on the X and Y axis). Это важно если вы механически смещали головку принтера по каким-либо причинам. Команда «G28» (Go to origin on all axes) вернет в ноль все оси.

3. В случае неудовлетворительной работы первого плагина используйте плагин: «GcodeTools».

3.0. Щелкаем в меню «Расширения», далее «Generate Gcode», далее «Path to Gcode».

Генератор gcode для лазерной гравировки

Генератор gcode для лазерной гравировки

3.1.1. Указываем каталог для сохранения файла с нашим кодом, он запомнится программой и в следующий раз его не надо будет снова вводить.

3.2. Возвращаемся на первую вкладку. Запускаем «Применить».

3.3.1. Удалить шапку до слов « (Start cutting path id:…»

3.3.2. В начало кода вставить строку «G28 X Y» (Go to origin only on the X and Y axis). Это важно если вы механически смещали головку принтера по каким-либо причинам. Команда «G28» (Go to origin on all axes) вернет в ноль все оси.

3.3.3. Ставить курсор в начало файла. Нажимаем комбинацию клавиш Ctrl + H. Проверяем, что в диалоговом окне «Replace» в настройках «Режим поиска» стоит на «Расширенный (

3.3.5. Заменить везде «G00 Z5.000000» на «G4 P1

3.3.6. Заменить везде «G01 Z-0.125000» на «G4 P1

3.3.7. Заменить везде «Z-0.125000» на «» (т.е. везде удалить «Z-0.125000»).

3.3.8. Заменить везде «F400» на «F1111» (т.е. выбрать правильную скорость для нашей гравировки, например, 1111 – это достаточно быстрая скорость)

Генератор gcode для лазерной гравировки

3.3.9. Заметим, что в этом Gкоде мы не указываем координату Z (высота лазера), т.к. выставим её непосредственно перед запуском лазера.

3.4. Отредактированный код выглядит так:

4. Наш код почти готов для использования в 3D принтере или гравере с установленным лазером L-Cheapo.

В работе любых программ могут быть сбои или ошибки. Вот несколько рекомендаций по преодолению проблем:

3.1. Плагин «J Tech Photonics Laser Tool» иногда не ставит пробел в какой-либо строке файла с Gкод перед вхождением «F», например: «G0 X167.747 Y97.2462F500.000000». Для устранения: Заменить везде «F500» на « F500» (в последнем выражении вставлен пробел вначале).

3.2. Плагин «GcodeTools» иногда выдает пустой файл на выходе. Тогда надо выполнить: меню«Контур», далее «Оконтурить объект» и повторить генерацию Gcode.

4.1. Использовать программу для визуализации Gcode: Basic CNC Viewer.

После включения принтера выполнить автоопределение начала координат для всех осей (см. Шаг 2 п.1.2.2).

Перед запуском гравировки необходимо выставить высоту лазера Z вручную на принтере, если это не предусмотрено нашим кодом.

Оптимальная высота Z соответствует такому положению, чтобы лазерный луч был в фокусе на поверхности образца.

На верхней раме 3D принтера Wanhao установлена отдельная специальная красная кнопка включения и выключения лазера.

Одевайте защитные очки перед включением этой кнопки!

Защитные очки можно снимать только после выключения этой кнопки!

ОБЯЗАТЕЛЬНО СОБЛЮДАЙТЕ ТЕХНИКУ БЕЗОПАСНОСТИ при работе с лазером. Работайте ТОЛЬКО В ЗАЩИТНЫХ ОЧКАХ при включенном лазере.

1. M18 (Disable all stepper motors) команда освобождает столик от блокировки моторами, полезно, например, в конце выполнения всего кода.

Источник