G-код в 3D-печати: структура, основные команды и пример

G-код в 3D-печати: структура, основные команды и пример

Что представляет собой G-код, зачем в нём разбираться, какие команды встречаются чаще всего и как выглядит простой стартовый скрипт.

Что такое G-код

G-код — язык управления станками с ЧПУ. Это обычный текстовый файл с расширением .gcode, в котором каждая строка — одна команда. Станок выполняет их по порядку сверху вниз; циклов и переходов в нём нет. Первые варианты языка появились ещё в 1960-х, а в 1980 году он стал международным стандартом. 3D-принтер как разновидность станка с ЧПУ унаследовал его частично.

Написать программу можно и вручную, но для сколько-нибудь сложной формы это практически нереально. Поэтому код для принтера формирует слайсер: он превращает 3D-модель в последовательность перемещений головки и сопутствующих действий — нагрева сопла и стола, включения вентиляторов и так далее.

Фрагмент файла с G-кодом в текстовом редакторе

Зачем это знать

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

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

Строка, комментарии и системы координат

Строка состоит из команды и аргументов, если они нужны. Всё, что стоит после точки с запятой, считается комментарием и игнорируется. Команды делятся на три группы: перемещения, управление вспомогательными устройствами (нагреватели, вентиляторы, питание) и управление системой координат.

Систем координат две. Абсолютная привязана к определённой точке стола, относительная отсчитывается от текущего положения головки. Переключаются они командами G90 (абсолютные) и G91 (относительные); выбранный режим действует до следующей смены. Вручную их правят редко.

Оси координат 3D-принтера
Абсолютная и относительная системы координат

G-команды: перемещения

  • G0 — быстрое перемещение без экструзии; G1 — рабочее линейное перемещение с экструзией. Аргументы: координаты X, Y, Z, скорость F и подача пластика E. Например, G1 X100 Y30 E15 переместит головку в указанную точку, выдавив по пути 15 мм материала.
  • G2 и G3 — движение по дуге по часовой и против часовой стрелки. В 3D-печати встречаются очень редко: слайсеры разбивают кривые на короткие отрезки.
  • G4 — пауза; G4 S2 задаёт 2 секунды, ту же паузу даёт G4 P2000.
  • G28 — выход в начальную точку до концевиков по всем осям; G28 X Y — только по указанным.
  • G10 и G11 — ретракт и возврат пластика; их параметры задаются командами M207 и M208.
  • G92 — обнуление положения. G92 E0 сбрасывает счётчик экструдера; без этого перед началом подачи пруток может уехать в случайное положение.

M-команды: нагрев, обдув, сервис

  • M104 Sxxx и M140 Sxxx — задать температуру сопла и стола без ожидания; M109 Sxxx и M190 Sxxx — то же с ожиданием, пока температура будет достигнута и стабилизируется.
  • M106 Sxxx — вентилятор обдува, значение от 0 до 255 (255 — это 100 %); M107 — выключить.
  • M117 — вывести текст на дисплей; M300 Sxxx Pxxx — звуковой сигнал с частотой в герцах и длительностью в миллисекундах.
  • M84 Sxxx — отключить шаговые двигатели после заданного числа секунд простоя; M85 Sxxx — так же отключить основное питание. M80 и M81 включают и выключают питание, если это предусмотрено конструкцией.
  • M200 Dxxx — указать реальный диаметр прутка. Позволяет поправить недо- или переэкструзию без повторной нарезки модели.
  • M302 Sxxx — минимальная температура экструдера, ниже которой работа остановится; при S0 ограничение снимается.
  • M600 — смена филамента. Команды с M20 по M30 работают с SD-картой и вручную почти не используются.

Отдельная группа — настроечные команды, действующие до изменения или до конца печати: M201 (максимальные ускорения по осям), M203 (максимальные скорости), M205 (рывок, jerk), M206 (смещение осей относительно концевиков), M207 и M208 (длина и скорость ретракта и возврата, подъём сопла). PID-параметры нагрева хотэнда задаёт M301, стола — M304, а автокалибровку запускает M303; для просмотра её результатов плату подключают к компьютеру по USB. Сохранить параметры в EEPROM можно командой M500, восстановить — M501, сбросить — M502.

Нагрев стола в конце печати отключает M140 S0 в завершающем коде. Не все команды поддерживаются всеми принтерами и прошивками.

Пример: скрипт очистки сопла

Простой стартовый сценарий приклеивает к столу выдавленный пластик и отрывает его вместе с налипшими на сопло остатками. Пример рассчитан на сопло 0,6 мм. Код пишут в Notepad++ или «Блокноте» (не в Word) и сохраняют с расширением .gcode.

  • Подготовка: G21 (миллиметры), G90 (абсолютные координаты), M82 (абсолютная длина экструзии), M107 (вентиляторы выключены).
  • Нагрев: M140 S80 запускает стол без ожидания, M109 S235 греет сопло с ожиданием, затем M190 S80 дожидается стола — так оба нагреваются одновременно.
  • G28 выводит головку на концевики, после чего она поднимается на 0,4 мм.
  • Экструдер обнуляется (G92 E0), выдавливается 2 мм пластика (G1 E2 F300), счётчик обнуляется ещё раз.
  • G1 X100 E15 F1000 — проход по оси X до 100 мм с экструзией на скорости 1000 мм/мин.
  • M106 S255 включает обдув на полную, G4 S2 даёт две секунды на застывание.
  • G0 X150 Z5 F2000 — рывок ещё на 50 мм с подъёмом без подачи пластика, нить отрывается.
  • В конце обдув выключается, моторы обесточиваются, нагрев сопла и стола снимается командами M104 S0 и M140 S0.

← Все статьи