Основы G-кода: справочник по базовым командам для FDM 3D-принтеров

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

G-Code: основы

Сразу предупреждаем, что в нашем перечне представлены только наиболее часто встречаемые команды и только для прошивки Marlin. Многие из перечисленных примеров не совпадают с командами в таких прошивках, как RepRapFirmware, Repetier или Klipper, поэтому используйте осторожно.

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

G-Code: основы

В целом, команды разделяются на две категории — основные команды, начинающиеся с литеры G и касающиеся непосредственно построения модели, а также вспомогательные, обозначаемые литерой М и отвечающие за настройку систем 3D-принтера и различные дополнительные действия. За литерами следует нумерация команды, а затем указываются параметры действия. Например, команда G91 G0 X100 F200 означает, что от 3D-принтера требуется использовать относительную систему координат (G91) и провести холостое перемещение головки (G0) по оси X на 100 мм вправо (X100) со скоростью 200 мм/c (F200).

Примеры параметров

X — координата по оси X.

Y — координата по оси Y.

Z — координата по оси Z.

I — смещение по X при криволинейном движении.

J — смещение по Y при криволинейном движении.

E — длина экструдируемого филамента от начальной до конечной точки перемещения.

F — скорость холостого перемещения головки или укладки материала.

P — командный параметр, например время в миллисекундах.

S — командный параметр, например время в секундах, температура или напряжение.

T — выбор экструдера.

R — температура.

Примечание: во многих случаях некоторые параметры можно опускать, если они остаются неизменными. Например, приведенная выше команда на холостой ход полностью выглядит так: G91 G0 X100 Y000 Z000 F200, но так как перемещение по осям Y и Z не требуется, можно написать просто G91 G0 X100 F200.

Некоторые из основных команд

G0 — холостой ход, то есть без подачи материала.

G1 — координированное линейное движение.

G2 — координированное криволинейное движение по часовой стрелке.

G3 — координированное криволинейное движение против часовой стрелки.

G4 — пауза в секундах.

G10 — ретракт филамента.

G21 — перейти на измерение в миллиметрах (G20 — в дюймах).

G27 — парковка головки в указанной точке.

G28 — парковка головки «по нулям» с указанием осей.

G90 — использовать абсолютную систему координат.

G91 — использовать относительную систему координат, то есть с отсчетом от текущей позиции головки.

G92 — установить текущую позицию головки.

Пример:

T1 //переключиться с первого экструдера на второй (T1)

G0 F300 //установить скорость перемещения головки 300 мм/c

G0 X10 Y10 //переместить головку в координаты 10 по оси X и 10 по оси Y с заданной ранее скоростью (в нашем случае 300 мм/c)

G1 X80 Y15 E25 F50 //переместить головку в координаты 80 по оси X и 15 по оси Y с одновременной подачей 25 мм филамента, снизить скорость с ранее заданных 300 мм/c до 50 мм/с

Некоторые из вспомогательных команд

M0 — остановиться и ожидать пользовательской команды с дисплея, либо полностью выключиться по истечении определенного периода времени. Например, M0 P2000 или M0 S2 задает остановку, затем время ожидания ручной команды в две секунды, а затем отключение.

M17 — включить шаговые двигатели.

M18 — выключить шаговые двигатели.

M20 — прочитать список файлов на SD-карте.

M21 — активировать SD-карту.

M22 — отключить SD-карту перед извлечением.

M23 — выбрать файл на SD-карте. Пример: M23 filename.gcode.

M24 — запустить заново или продолжить (если ранее использовалась команда M25) 3D-печать файла, указанного командой M23.

M25 — приостановить 3D-печать с SD-карты (возобновляется с того же места командой

M24).

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

M27 — узнать статус 3D-печати с SD-карты.

M28 — записать файл на SD-карту. Пример: M28 filename.gcode.

M29 — завершить запись файла на SD-карте: файл закрывается, система продолжает работу.

M30 — удалить файл с SD-карты. Пример: M30 filename.gcode.

M32 — выбрать файл с SD-карты и запустить 3D-печать.

M80 — включить блок питания ATX.

M81 — отключить блок питания ATX.

M82 — установить экструдер в абсолютную систему координат.

M83 — установить экструдер в относительную систему координат.

M84 — выключить все шаговые двигатели. Пример: M84 S15 означает перевод в режим ожидания после 15-секундного простоя.

M85 — полное отключение после определенного времени простоя. Например, команда M85 S60 означает выключение после одной минуты простоя.

M104 — Установить температуру хотэнда и немедленно перейти к следующей команде. Пример: после команды M104 S220 3D-принтер начнет прогревание хотэнда, но приступит к выполнению следующих команд, не дожидаясь полного прогревания (см. также M109).

M105 — получить текущую температуру экструдера.

M106 — включить обдув. Мощность указывается в диапазоне от 0 до 255. Например, для включения обдува на 50-процентной мощности подойдет команда M106 S127.

M107 — отключить обдув.

M108 — завершить прогревание и приступить к 3D-печати (см. M109).

M109 — установить температуру хотэнда и ждать прогрева. Пример: после команды M109 S220 3D-принтер будет ждать прогревания хотэнда до 220°С, а затем приступит к выполнению следующих команд.

М112 — экстренная остановка с прекращением работы всех двигателей и нагревателей.

M114 — получить текущие координаты.

M115 — узнать текущую версию прошивки.

M117 — вывести сообщение на дисплей. Текст сообщения следует за командой, например M117 Hello.

M119 — узнать состояние концевых выключателей.

M140 — запустить прогрев столика до указанной температуры и немедленно перейти к выполнению следующих команд (см. также M190). Пример: M140 S65 означает прогрев до 65°С.

M190 — установить температуру столика и ждать полного прогрева перед выполнением следующих команд.

M200 — задает диаметр филамента. Дополнительные параметры включают D для диаметра, Т для экструдера, L для максимального потока. Например, команда M200 T0 D1.75 L12 определяет диаметр фламента как 1,75 мм для первого экструдера (T0 — первый, T1 — второй, и так далее) с максимальным объемом подаваемого материала 12 мм^3/с. Команда позволяет в том числе настраивать 3D-принтер для работы с филаментами нестандартного диаметра.

M302 — так называемая «холодная экструзия». Разрешает работу при температуре хотэнда ниже установленной. Например, команда M302 S180 позволяет 3D-принтеру работать при температуре хотэнда как минимум 180°C, даже если хотэнду задана более высокая температура. Команда M302 S0, таким образом, позволит продолжить 3D-печать вне зависимости от текущей температуры хотэнда (фактически, при любой температуре выше 0°С).

M500 — сохранить параметры в EEPROM.

M501 — прочитать параметры из EEPROM.

M502 — сброс параметров в EEPROM.

M600 — пауза для замены филамента.

M928 — запись лога на SD-карту. Пример: M928 filename.gcode.

Полный перечень доступных команд с пояснениями и примерами доступен на сайте RepRap.org по этой ссылке.