Понимание команд G-кода откроет следующий уровень 3D-печати. Читайте дальше, чтобы быстро освоить основы этого кода!
G-код — это язык программирования для числового программного управления (ЧПУ). Другими словами — это язык на котором говорит компьютер, управляющий станком и который передает все команды необходимые для перемещения и других действий.
Хотя G-код является стандартным языком для различных настольных и промышленных станков, мы можем быть наиболее знакомы с ним благодаря нашим 3D-принтерам. Возможно, до сих пор вы не имели с ним дела и это вполне нормально поскольку 3D-слайсеры генерируют код «автоматически».
Тем не менее, если вы хотите глубже понять 3D-печать, необходимо изучить основы G-кода. Эти знания позволят вам гораздо лучше устранять неполадки и контролировать процессы печати, а также позволят настраивать прошивки 3D-принтеров, таких как Marlin, Klipper и RepRap.
В этой статье мы рассмотрим основы G-кода, включая то, как читать, понимать и писать несколько строк команд, обеспечивая прочную основу даже для абсолютных новичков в кодировании. Итак, давайте начнем с самого начала!
- Что это?
- Синтаксис
- Комментарии G-кода
- Команды G-кода
- G0 и G1: линейное движение
- G90 и G91: абсолютное и относительное позиционирование
- G28 и G29: автоматическое выравнивание стола
- M104, M109, M140 и M190: установка температуры
- M106 и M107: Управление вентилятором
- Структура G-кода
- Инициализация
- 3D-печать
- Сброс
- Управление через терминал
- Написание G-кода
- Совместимость G-кода
Что это?

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

Каждая командная строка G-кода следует определенному синтаксису и соответствует только одной команде, что может привести к очень длинным кодам.
Первым аргументом любой заданной строки является сам код команды. Как мы видели, это может быть тип кода «G» или «M», за которым следует число идентифицирующее команду. Например, «G0» соответствует команде линейного перемещения.
Далее идут параметры, более точно определяющие команду. Для линейного перемещения G0 это включает в себя конечную позицию и скорость перемещения, которые также обозначаются заглавными буквами. Каждая команда имеет свой собственный набор параметров.
Комментарии G-кода
Когда мы пройдемся по различным командам, вы увидите точки с запятой после буквы и цифры, которые объясняют, что делает код. Вот пример строки с комментарием к коду:
G1 X25 Y5; I am a code comment! Программистам часто приходится включать объяснения на простом английском языке, чтобы другие программисты могли понять определенные строки или разделы кода. Также может случиться так, что вы забудете почему закодировали таким способом, в результате чего вам будет трудно снова разобраться во всем.
Для решения этой проблемы есть комментарии к коду. Комментарии включают в себя все (в той же строке) после точки с запятой и полностью игнорируются машиной при выполнении G-кода. Таким образом, они предназначены исключительно для программистов.
Команды G-кода
Хотя существуют буквально сотни команд G-кода, в следующих нескольких разделах мы рассмотрим самые основные и важные из них. Как только вы освоитесь, вы сможете самостоятельно изучить другие команды из справочных листов .
G0 и G1: линейное движение

Обе команды G0 и G1 выполняют линейные перемещения. По умолчанию G0 используется для движений без выдавливания пластика, таких как начальное и перемещение, в то время как G1 охватывает все линейные движения с выдавливанием.
Однако обе команды работают одинаково. Параметры для G0 или G1 включают в себя конечные положения для всех осей X, Y и Z , количество выдавливания, которое должно быть выполнено во время перемещения и скорость, определяемую скоростью подачи в установленных единицах.
Пример:
G1 X90 Y50 Z0.5 F3000 E1 указывает принтеру двигаться по прямой линии ( G1) к конечным координатам X = 90 мм, Y = 50 мм, Z = 0,5 мм со скоростью подачи (F) 3000 мм/мин при выдавливании (E) 1 мм материала в экструдер.
Большинство линейных перемещений выполняются в пределах одного слоя, а это означает, что координата Z обычно не указывается в командной строке.
G90 и G91: абсолютное и относительное позиционирование

Команды G90 и G91 сообщают машине, как интерпретировать координаты, используемые для движения. G90 устанавливает «абсолютное позиционирование», которое обычно используется по умолчанию, а G91 — «относительное позиционирование».
Ни одна из команд не требует никаких параметров и установка одного автоматически отменяет другой. Принцип работы позиционирования довольно прост.
Пример:
Допустим, мы хотим переместить печатающую головку на X=30 в строке. В режиме абсолютного позиционирования это будет выглядеть так:
G90; sets absolute positioning
G0 X30; moves to the X = 30 coordinate Это простое движение заставит принтер переместить печатающую головку так, чтобы она остановилась на оси X = 30. Теперь для перемещения относительного позиционирования нам нужно знать, где в данный момент находится печатающая головка. Предположим, что это при X = 10:
G91; sets relative positioning
G0 X20; moves +20 mm along the X-axis G91 сначала сообщает машине интерпретировать координаты относительно текущей позиции (X = 10). Зная это, станку просто нужно переместиться на 20 мм в положительном направлении по оси X, таким образом достигнув X = 30, как мы и хотели.
G28 и G29: автоматическое выравнивание стола

Вернуть домой — процесс установки физических пределов всех осей движения. Команда G28 выполнит эту задачу, перемещая печатающую головку до тех пор, пока не сработают концевики для подтверждения пределов.
Возврат в исходное положение важен не только для ориентации машины, но и для предотвращения выхода печатающей головки за границы. Команда G28 обычно выполняется перед каждым процессом печати.
Конкретную ось можно настроить индивидуально, включив X, Y или Z в качестве параметров. В противном случае только G28 приютит всех троих.
Пример:
G28 X Y; только X и Y
G28; все домой Команда G29, запускает последовательность автоматического выравнивания стола. Существует множество различных методов выравнивания стола перед печатью, поскольку это обычно задается прошивкой, а не конечными пользователями. По этой причине мы не будем вдаваться в подробности, связанные с методами и параметрами команд.
Просто знайте, что G29 обычно отправляется после автоматического возврата в исходное положение (G28) и должен выполнять автоматическое выравнивание стола в соответствии с прошивкой.
G29; автоматическое выравнивание стола M104, M109, M140 и M190: установка температуры

Это важные команды не предполагают никакого движения.
Для начала команда M104 устанавливает целевую температуру, которую должно достичь сопло и поддерживает ее, пока не будет указано иное.
Некоторые из параметров включают фактическое значение температуры (S) и тип печатающей головки (T), которую необходимо нагревать (для нескольких установок экструзии).
Пример:
M104 S210; установить температуру хотенда 210 Эта командная строка дает указание принтеру нагреть сопло до 210 °C. После установки целевой температуры принтер продолжит выполнение следующей командной строки при нагреве сопла.
В качестве альтернативы, если мы хотим дождаться достижения этой цели, прежде чем перейти к следующей строке, мы можем использовать команду M109.
M109 S210; установить температуру хотенда 210 градусов и ничего не делать, пока она не будет достигнута Установка температуры стола очень похожа на сопло, но вместо этого с помощью команд M140 и M190:
M140 S110; установить температуру стола на 110 градусов
M190 S110; установить температуру стола на 110 градусов и ничего не делать, пока она не будет достигнута M106 и M107: Управление вентилятором

Еще одна важная задача для 3D-принтеров — команды M106 и M107 обеспечивают управление вентилятором.
M106 включает вентилятор и устанавливает его скорость. Это особенно полезно для вентилятора охлаждения детали, так как в процессе печати при нанесении первого слоя и перемычки требуются разные скорости.
Параметр скорости должен иметь значение от 0 до 255. Значение 255 обеспечивает 100% мощность, и любое число в этом диапазоне будет соответственно указывать процент.
Пример:
M106; включить вентилятор на максимальную (100 %) скорость
M106 S128; включить вентилятор и установить его на 50 % мощности Несколько вентиляторов с регулируемой скоростью можно определить с помощью параметров индекса (P), поскольку каждому вентилятору присваивается индекс встроенным ПО.
Наконец, команда M107 выключит указанный вентилятор. Если индексный параметр не указан, обычно отключается вентилятор охлаждения детали.
Структура G-кода
Теперь у нас есть хорошая возможность взглянуть на реальный фрагмент кода, который используется для 3D-печати. Программы G-кода можно разделить на три отдельных раздела, как мы увидим далее.
Стоит отметить, что если вы используете текстовый редактор для открытия файла G-кода, созданного 3D-слайсером, может случиться так, что он не сразу запустится с G- или M-командами. Например, такой слайсер, как Cura или Simplify3D , начинает код, включая некоторые параметры процесса печати, определенные ранее в комментариях. Эти строки не повлияют на печать, а вместо этого представляют собой краткую справку по таким параметрам, как, например, высота слоя.
Инициализация

Первый раздел любой программы включает подготовительные задачи, необходимые перед началом печати модели. Ниже приведены первые шесть строк команд G-кода инициализации из фактического задания на 3D-печать.
G90 M82 M140 S80 M104 S200 G28 G29 Как мы теперь знаем, первая строка говорит, что движения должны использовать абсолютное позиционирование, а вторая строка говорит экструдеру также интерпретировать экструзию в абсолютных терминах.
Третья и четвертая строка начинают нагревать стол и сопло до заданных температур. Обратите внимание, что он не будет ждать целевой температуры, а это означает, что принтер автоматически вернется в исходное положение и выровняет платформу во время нагрева.
Некоторые процедуры инициализации (например, та, что используется PrusaSlicer) включают в себя процесс очистки сопла, например печать одной прямой линии перед переходом к процессу печати.
3D-печать

Вот где происходит волшебство. Если вы посмотрите на нарезанный файл G-кода вы увидите, что мы не можем понять, что на самом деле делает сопло.
3D-печать — это послойный процесс, поэтому вы обнаружите, что этот этап включает в себя множество движений в плоскости XY при печати одного слоя. Как только это будет сделано, одно крошечное движение в направлении Z определит начало следующего слоя.
Вот пример того, как команды G-кода могут выглядеть на этапе печати:
G1 X103.505 Y153.291 E4.5648; движение и выдавливание в плоскости XY
G1 X103.291 Y153.505 E4.5804; движение и выдавливание в плоскости XY
G1 Z0.600 F3000; смена слоя
G1 X104.025 Y154.025 F9000; движение в плоскости XY
G1 X95.975 Y154.025 E0.4133 F1397; движение и выдавливание в плоскости XY Сброс

Наконец, когда печать завершена, последние строки команд G-кода переводят принтер в приемлемое состояние по умолчанию.
Например, сопло может перейти в заранее определенное положение, нагреватели хотенда и стола выключены, а двигатели отключены.
M107; выключить вентилятор
G1 Z10; переместить сопло от печати
M104 S0; выключить обогрев хотенда
M140 S0; выключить обогрев стола
M84; выключить моторы Управление через терминал

До сих пор мы говорили только о том, что компьютер отправляет на принтер команды G-кода (обычно передаваемые через SD-карту). Однако это не единственный способ связи.
Некоторые программы управления, такие как Pronterface и OctoPrint, позволяют напрямую общаться с 3D-принтером и в этом случае вы можете вводить команды вручную.
По понятным причинам было бы непрактично печатать что-либо, посылая строки кодов по отдельности. Но иногда такой способ связи необходим для других целей, например для получения ценной информации для калибровки или даже когда у 3D-принтера нет экрана.
Например команда M105 «отчет о температурах» позволяет получить текущую температуру сопла и стола (которая затем может быть показана с помощью такого приложения, как OctoPrint).
Эта возможность связи также очень полезна для просмотра и изменения настроек EEPROM, которые жестко закодированы на уровне прошивки. Такие параметры, как шаги/мм двигателя, максимальная скорость подачи или PID, можно визуализировать через M503 («отчет о настройках»), изменить вручную, а затем сохранить через M500 («сохранить настройки»).
Написание G-кода

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

Мы надеемся, что с пониманием команд G-code вы станете более знающим и сильным пользователем 3D-печати. Хотя G-code не является самым сложным компьютерным языком, он все же требует много практики и изучения.
Прежде чем завершить эту статью, стоит немного поговорить о совместимости G-кода.
Существует множество типов прошивок для 3D-печати и каждая из них может иметь различные «навороты» G-кода. Это может привести к серьезным проблемам совместимости, поскольку команды работающие на одной машине, могут не работать на другой.
Слайсеры решает эту проблему, передавая код через постпроцессор, специфичные для конкретной машины. Постпроцессор определяет наворот входящего кода и преобразует его в то, что будет понятно микропрограмме.
Итак, мы надеемся, что вам понравилось это краткое руководство. Счастливого кодирования!








А кто вкурсе у меня раньше каждый раз перед печатью стол пролупывал и рисовал сетку по всему столу но пришлось удалить эту версию куры и настройки тоже подскажите как называется это команда перед печатью чтоб он стол колибровал потом я тока помню надо поставить M500 чтоб он всё запомнил
Дык… Разве не (цитирую)
Другая команда G29, запускает последовательность автоматического выравнивания стола. Существует множество различных методов выравнивания стола перед печатью, поскольку это обычно задается прошивкой, а не конечными пользователями. По этой причине мы не будем вдаваться в подробности, связанные с методами и параметрами команд. Просто знайте, что G29 обычно отправляется после автоматического возврата в исходное положение (G28) и должен выполнять автоматическое выравнивание кровати в соответствии с прошивкой .
Или я чего-то не понял?