Содержание
G-код – это основа управления любым 3D-принтером, набор текстовых команд, который указывает оборудованию точную последовательность действий. Каждая строка кода соответствует конкретному этапу печати: перемещению экструдера, нагреву сопла или включению вентиляторов. Этот стандарт разработан еще для станков ЧПУ в 1960-х, но идеально адаптировался для аддитивных технологий. В отличие от фрезерных станков, где материал удаляется (субтрактивный метод), 3D-принтеры создают детали послойно, что требует особых команд управления температурой и подачей пластика. Слайсеры автоматически генерируют G-код из 3D-моделей, но понимание его структуры позволяет тонко настраивать процесс печати.

Как создают программы для 3D-принтеров
Теоретически, G-код можно писать вручную – достаточно знать координаты перемещения экструдера и параметры печати. Но на практике ручное программирование оправдано лишь для элементарных деталей. Уже при печати моделей средней сложности количество команд исчисляется тысячами, а их точная последовательность требует скрупулезных расчетов. Именно поэтому в современном 3D-моделировании используют слайсеры – специальные программы-переводчики. Они преобразуют цифровую 3D-модель в подробные инструкции для принтера: как перемещать печатающую головку, с какой скоростью подавать пластик, когда включать обдув.
Получаемый на выходе G-код действительно выглядит устрашающе – набор непонятных букв и цифр. Но если разобраться в структуре этих команд, можно не только понимать логику работы принтера, но и вносить точечные правки в автоматически сгенерированный код, а в некоторых случаях даже дописывать собственные фрагменты программы для нестандартных задач.
Зачем 3D-печатнику разбираться в G-коде?
Современные слайсеры действительно автоматизируют процесс создания управляющих программ, но понимание G-кода дает мастеру серьезные преимущества. Когда вы знаете, как работают команды, появляется возможность тонко настраивать параметры печати под конкретные задачи. Особенно это важно при работе с нестандартными материалами или сложными геометрическими формами.
Практическая польза от знания G-кода
Опытные пользователи активно используют ручное редактирование кода для решения различных задач. Вот наиболее распространенные сферы применения:
- Кастомизация стартовых сценариев – добавление прогрева стола, очистки сопла, калибровки перед началом печати.
- Оптимизация завершения процесса – настройка положения головки, управление охлаждением, звуковые уведомления.
- Коррекция параметров печати – точечное изменение скорости, температуры или обдува для отдельных участков модели.
- Вставка пауз – возможность добавить метизы или другие элементы в процессе печати.
- Отладка проблемных участков – ручная корректировка траекторий движения экструдера.
- Создание специальных эффектов – программирование нестандартных режимов печати.
Даже базовое понимание структуры G-кода позволяет увереннее работать со слайсерами, быстрее находить и исправлять ошибки, а главное – расширяет творческие возможности при создании моделей. Это тот случай, когда технические знания напрямую влияют на качество и эффективность работы.
Структура и основные команды G-кода

Как устроен файл с управляющей программой
G-код – это последовательность текстовых команд в файле с расширением .gcode, который можно открыть любым текстовым редактором. Каждая строка содержит одну инструкцию для принтера, выполняемую строго по порядку. В отличие от языков высокого уровня, здесь нет циклов или сложной логики – только прямолинейное выполнение команд сверху вниз.
Типичная строка кода состоит из:
- Буквенного префикса (G, M, T и другие).
- Числового кода команды.
- Параметров (координаты, скорости, температуры).
- Необязательного комментария после точки с запятой.
Группы команд и системы координат
Все команды делятся на три категории. Первая отвечает за перемещение экструдера и рабочего стола – это основа любой печати. Вторая группа управляет дополнительными функциями: нагревом сопла и платформы, охлаждением, подачей филамента. Третья категория работает с системами координат, которых всего две.
Абсолютная система привязана к нулевой точке стола (обычно левый дальний угол), где оси X (вперед-назад), Y (влево-вправо) и Z (вверх-вниз) имеют фиксированные значения. Относительная система отсчитывает координаты от текущего положения печатающей головки, что упрощает разбиение сложных моделей на участки. Большинство слайсеров автоматически переключаются между этими режимами, но понимание принципов поможет при ручной правке кода.
Существует всего 2 команды:
- G90 ; переход к абсолютным координатам.
- G91 ; переход к относительным координатам.
Особенности работы систем координат
Выбранный режим координат (абсолютный G90 или относительный G91) остается активным до явного изменения следующей командой. Хотя на практике ручное переключение между системами требуется нечасто – современные слайсеры автоматически выбирают оптимальный режим для каждого участка модели – понимание этого механизма важно при отладке сложных проектов.
Особое внимание стоит уделить командам перемещения, которые обозначаются буквой G. Именно они определяют траекторию движения печатающей головки и являются основой любого G-кода. Зная особенности работы этих команд, можно:
- Точно позиционировать экструдер в рабочей зоне.
- Контролировать скорость перемещения между точками.
- Управлять одновременной экструзией пластика.
- Оптимизировать время печати сложных моделей.
При ручном редактировании кода важно помнить, что параметры перемещения (координаты X/Y/Z, скорость F, экструзия E) сохраняются до явного изменения, что позволяет сократить количество повторяющихся команд в программе.
G0 ; быстрое перемещение печатной головки (без экструзии).
G1 ; рабочее линейное перемещение (с экструзией). Как аргументы к командам перемещения применяют координаты X, Y и Z и скорость F. Для подачи пластика экструдером тоже используют эту команду с аргументом E. Нулевые перемещения указывать не надо.
G0 X10 Y20 Z5 ; быстрое перемещение в точку с координатами x:10, y:20, z:5.
G1 Е5 ; выдавить 5 мм пластика.
G1 X100 Y30 E15 ; переместиться на заданную координату, при этом выдавить 15 мм материала быстрое перемещение в точку с координатами.
G2 ; криволинейное движение по часовой стрелке.
G3 ; криволинейное движение против часовой стрелки. В 3D печати используются очень редко, как правило, слайсеры разбивают все криволинейные движения на короткие отрезки.
G4 ; пауза, аргумент: S (в секундах) или P (в микросекундах).
G S2 ; пауза 2 сек.
G P2000 ; пауза тоже 2 сек.
G20 ; установка единиц измерения в миллиметрах, если необходимо в дюймах, то G21, применяют при инициализации в начале файла.
G28 ; перемещение в начальную точку по всем трем осям (до концевиков), если с аргументами, то исключительно по указанным осям.
G28 X Y ; перемещение в начало лишь по осям X и Y.
G10 ; ретракт (настройки по команде M207).
G11 ; возвращение материала после ретракта (настройки по команде M208).
G92 ; обнуление положения головки и/или экструдера.
G92 E0 ; от этого положения начинают отсчет подачи материала, если не сделать это до того, как начнется подача, может получиться так, что сразу же после первой команды пруток «уедет» в произвольное положение.

Команды для управления вспомогательным оборудованием и настройка характеристик, или «М» – команды.
M17 ; включение всех шаговых двигателей.
M19 ; выключение всех шаговых двигателей (после этого их можно двигать вручную).
С М20 по М30 находятся команды, позволяющие работать с SD картой. С их помощью можно считывать список файлов, которые доступны для печати, выбрать тот, что нужен и запустить печать. Также можно остановить и продолжить печать, удалить файл и т.п. Чаще всего используются для связи контроллера принтера с монитором и другим оборудованием, а не для редактирования вручную.
M80 ; включить основное питание принтера (если есть подобная возможность).
M81 ; выключить основное питание принтера.
M84 Sxxx ; отключить все шаговые двигатели после xxx секунд простоя.
M85 Sxxx ; полностью отключить основное питание после xxx секунд простоя. Позволяет экономить электроэнергию и ресурс оборудования, выключая его автоматически, когда печать завершена.
M104 Sxxx ; команда на нагрев сопла до заданной температуры (xxx), не дожидаясь, пока она будет достигнута.
M109 Sxxx ; нагрев сопла до температуры ххх с ожиданием, пока она будет достигнута и стабилизируется.
M140 Sxxx ; команда на нагрев стола до заданной температуры (xxx), не дожидаясь, пока она будет достигнута.
M190 Sxxx ; нагрев стола до заданной температуры (ххх) с ожиданием, пока она будет достигнута и стабилизируется.
M106 Sxxx ; включить вентилятор обдува на скорость ххх, скорость будет задана в 8-битном формате, то есть принимает значение в диапазоне от 0 до 255, где 255 – 100%.
M107 ; выключение вентилятора.
M117 ; выведение сообщения на экран.
M117 Hello! ; на экране появится надпись “Hello!”, если у принтера есть такая возможность.
M200 Dxxx Txxx ; установить реальный диаметр прутка материала. При недоэкструзии или переэкструзии нужно измерить диаметр филамента при помощи штангенциркуля, так как он может быть больше или меньше заявленного. Благодаря этой команде можно за несколько секунд внести поправку, не нарезая модель повторно. Dxxx – диаметр в мм, Тxxx – номер экструдера, начиная с нуля, когда он один, указывать необязательно.
M302 Sxxx ; ограничение минимальной температуры экструдера для выполнения печати. Если температура упадет ниже заявленного значения, печать прекратится. Если в качестве аргумента будет установлено S0, то при любой температуре принтер продолжит работать.
Как сохранить настройки между сеансами печати?
Настроечные команды в G-коде – это мощный инструмент калибровки, который сохраняет свои параметры до завершения печати или явного изменения значений. Особенность таких команд в том, что установленные настройки автоматически применяются ко всем последующим операциям. Например, задав определенное ускорение или скорость движения, можно быть уверенным, что принтер будет использовать эти параметры для всех перемещений, пока вы не укажете другие значения.
Для долговременного хранения настроек предусмотрена система сохранения в энергонезависимую память контроллера (EEPROM). Команда M500 записывает текущие параметры, а M501 – восстанавливает их при следующем включении. Это особенно полезно для:
M201 Xxxx Yxxx Zxxx Exxx ; установка максимальных ускорений рабочего хода в мм/с2 для каждой оси (если вдруг было обнаружено, что параметры из слайсера неверные).
M203 Xxxx Yxxx Zxxx Exxx ; установка максимальной скорости рабочего хода в мм/с для каждой оси.
M205 Xxxx Yxxx Zxxx Exxx ; установка максимального рывка (jerk) рабочего хода в мм/с для каждой оси.
M206 Xxxx Yxxx Zxxx ; установка смещения осей относительно нулевого положения концевиков (если концевики трудно или нельзя отрегулировать).
M207 Sxxx Fxxx Zxxx ; установка параметров ретракта: Sxxx – расстояние ретракта (мм), Fxxx – скорость ретракта (мм/с), Zxxx – подъем сопла (опускание стола) при ретракте (мм).
M208 Sxxx Fxxx ; установка возврата прутка после ретракта: Sxxx – расстояние возврата (мм), Fxxx – скорость возврата (мм/с).
M300 Sxxx Pxxx ; воспроизведение звукового сигнала частотой Sxxx Гц и длительностью Pxxx мс. Информирует о готовности, конце печати или ином важном событии. Если нужно можно даже проигрывать одноголосые мелодии.
M301 Hxxx Pxxx Ixxx Dxxx ; установка PID-параметров нагрева хотэнда. Применяют, чтобы ускорить нагрев без «перескоков» за верхний предел с дальнейшим остыванием. Hxxx – номер экструдера. H1 – первый экструдер (хотэнд), Pxxx – коэффициент proportional (Kp), Ixxx – коэффициент integral (Ki), Dxxx – коэффициент derivative (Kd).
M304 Pxxx Ixxx Dxxx ; установка PID-параметров нагрева стола. Pxxx – коэффициент proportional (Kp), Ixxx – коэффициент integral (Ki), Dxxx – коэффициент derivative (Kd).
M303 Exxx Sxxx Cxxx ; запуск калибровки PID-параметров экструдера или стола. Для наблюдения результатов материнскую плату 3D-принтера нужно подключить к терминалу, к примеру, к ПК при помощи USB-кабеля. Полученную информацию вносят в принтер при помощи команд M301 и М304. Команда, выполненная один раз, помогает сэкономить на нагреве время и электроэнергию, без лишних циклов температурной «раскачки».
M500 ; сохранить параметры в EEPROM.
M501 ; восстановить параметры из EEPROM.
M502 ; сброс параметров EEPROM.
M928 ; запись лога работы на SD-карту, к примеру: M928 test.gcode ; запись лога в файл test.gcode.

О полном наборе G-команд
Стандартный набор команд G-кода действительно гораздо обширнее, чем базовые функции, используемые в повседневной 3D-печати. Однако большинство дополнительных команд относятся к одной из трех категорий: узкоспециализированные функции для конкретных моделей принтеров, служебные команды для взаимодействия с внешними устройствами через интерфейсы вроде USB или Ethernet, либо редко используемые операции, сохранившиеся для совместимости со старыми версиями прошивок. Например, команды управления дополнительными модулями вроде лазерных граверов или ЧПУ-фрез в обычной FDM-печати просто не находят применения.
Новичкам важно понимать, что для успешной работы достаточно освоить 20-30 основных команд – этого хватит для решения большинства задач, от калибровки до создания пользовательских скриптов. Остальные функции пригодятся лишь в специфических ситуациях или при глубокой модификации оборудования.
Практический пример: очистка сопла через G-код
Рассмотрим полезный скрипт под названием "высмаркивание", который помогает очистить сопло от налипшего пластика. Этот метод особенно эффективен при смене материалов или после длительного простоя принтера. Суть заключается в том, чтобы разогретый пластик приклеился к столу, а затем резким движением оторвался, унося с собой все загрязнения.
G21 ; перевести единицы измерения в мм.
G90 ; использовать абсолютные координаты.
M82 ; использовать абсолютную длину экструзии.
M107 ; выключить вентиляторы (на всякий случай).
M117 start ; написать стартовое сообщение.
M140 S80 ; запуск нагрев стола и не дожидаясь этого, выполнить следующую команду.
M109 S235 ; запуск нагрев сопла (оно греется дольше сопла) с ожиданием.
M190 S80 ; дождаться нагрева стола (стол и сопло нагреваются одновременно).
G28 ; выход головки на начальное положение (по концевикам).
G1 Z.4 ; поднять головку на 0,4 мм.
G92 E0 ; обнулить положение экструдера.
G1 E2 F300 ; выдавить 2 мм пластика.
G92 E0 ; еще раз обнулить положение, на всякий случай.
G1 X100 E15 F1000 ; едем по оси X в положение 100 мм со скоростью 1000 мм/мин.
M106 S255 ; после остановки включить обдув на 100% чтобы капля застыла.
G4 S2 ; подождать пару секунд, чтобы затвердело.
G0 X150 Z5 F2000 ; едем еще на 50 мм со скоростью 2000 без экструзии.
M107 ; выключить обдув.
M117 stop ; вывести сообщение.
M19 ; выключить моторы осей.
M104 S0 ; выключить подогрев сопла.
M140 S0 ; выключить подогрев стола.
Для использования этого скрипта создайте новый файл в текстовом редакторе (Notepad++ или обычный Блокнот), скопируйте код целиком и сохраните с расширением .gcode. После переноса файла на SD-карту и запуска печати, принтер выполнит всю последовательность. Такой метод часто оказывается эффективнее ручной очистки, особенно для принтеров с труднодоступным соплом.
Почему стоит освоить G-код?
Хотя современные слайсеры действительно позволяют работать с 3D-печатью, не углубляясь в программирование, понимание G-кода открывает новые возможности для каждого, кто интересуется новыми технологиями. Да, базовые операции печати прекрасно работают и без ручного вмешательства, но когда речь заходит о тонкой настройке параметров или нестандартных задачах, знание языка управления принтером становится незаменимым.
Представьте ситуацию: вам нужно добавить паузу в середине печати для вставки металлического компонента, изменить температуру экструзии на определенном слое или запрограммировать особый алгоритм очистки сопла. Во всех этих случаях без понимания G-кода не обойтись. Да и при диагностике проблем – будь то неравномерная экструзия или сбой позиционирования – умение читать управляющий код помогает быстрее найти корень проблемы.
Освоение даже базовых принципов работы с G-кодом не требует специального образования. Большинство команд интуитивно понятны, а логика их работы прозрачна. Это тот случай, когда несколько часов, потраченных на изучение, могут сэкономить дни на устранение неочевидных проблем и открыть новые горизонты для творчества в 3D-печати.
Компания 3Дкрафтер предлагает реверс-инжиниринг для бизнеса и частных клиентов. Копируем и восстанавливаем детали, которые пришли в негодность или сломались, создавая параметрическую 3D-модель по отсканированному объекту.
Вопросы и ответы
1. Есть ли возможность воспользоваться автоуровнем в G-коде?
Да, для автоматического выравнивания стола используется команда M29. Учтите, что конкретная реализация зависит от модели принтера и типа датчика. Для точной настройки обратитесь к документации вашего оборудования.
2. Как сделать, чтобы вентиляторы выключались только после охлаждения сопла до 50°C?
Вот как будет выглядеть нужная последовательность команд:
M106 S255
M109 R50
M106 S0
3. Почему после печати принтер продолжает греть стол и как это отключить?
Добавьте команду M140 S0 в завершающий G-код вашего слайсера. Это мгновенно отключит нагрев платформы по окончании печати.
4. Можно ли заставить печатающую головку двигаться за пределами нулевых положений?
Да, это возможно с помощью команды M211 S0, которая отключает программные ограничения. Однако будьте крайне осторожны – такие действия могут повредить механику принтера.
5. Где найти полный список команд G-кода?
Полные перечни команд отличаются для разных прошивок (Marlin, RepRap, Klipper). Начните с официальной документации вашей версии прошивки, но учтите, что не все команды поддерживаются конкретными моделями принтеров.