Оглавление
G-коды широко используются в 3D-печати, особенно с помощью прошивки Marlin. Многие задаются вопросом, как использовать G-коды с пользой для себя, поэтому я решил написать эту статью, чтобы помочь читателям.
В оставшейся части этой статьи вы найдете несколько полезных подробностей о G-Code, поэтому продолжайте читать дальше.
Что такое G-коды в 3D-печати?
G-Code - это просто язык программирования для станков с ЧПУ (Computer Numerically Controlled), таких как 3D-принтеры, фрезерные станки с ЧПУ и т.д. Он содержит набор команд, которые микропрограмма использует для управления работой принтера и движением печатающей головки.
Как создается G-код?
G-код для 3D-принтеров создается с помощью специального приложения, называемого слайсером. Эта программа берет вашу 3D-модель и нарезает ее на тонкие 2D-слои.
Затем он определяет координаты или путь, по которому должна пройти печатающая головка для создания этих слоев. Он также управляет и задает определенные функции принтера, например, включение нагревателя, вентиляторов, камер и т.д.
Популярные слайсеры на рынке включают PrusaSlicer и Cura.
Типы G-кода
Хотя общее название команд ЧПУ - G-код, в целом команды можно разделить на две категории:
- G-Code
- М-код
G-Code
G-код означает геометрический код. Его основная функция - управление движением, положением или траекторией движения печатающей головки.
Используя G-код, вы можете перемещать сопло по прямой линии, устанавливать его в определенном месте, поднимать или опускать, или даже перемещать его по криволинейной траектории.
Их предваряет G чтобы показать, что они являются G-кодом.
М-код
M-Code означает Miscellaneous commands (разные команды) - это машинные команды, управляющие другими функциями принтера, кроме движения печатающей головки.
Они отвечают за включение и выключение двигателей, установку скорости вентилятора и т.д. Еще одна функция M-Code - установка температуры станины и сопла.
Их предваряет M, что означает "разное".
Что такое "ароматизаторы" G-кода?
G-Code flavor означает способ, которым прошивка (операционная система) вашего принтера ожидает форматирования G-Code. Различные flavors существуют из-за различных стандартов G-Code и прошивок, которые используют различные марки принтеров.
Например, стандартные команды, такие как перемещение, включение нагревателя и т.д., являются общими для всех принтеров. Однако некоторые нишевые команды не одинаковы, что может привести к ошибкам печати, если использовать их не с тем аппаратом.
Для борьбы с этим большинство слайсеров имеют опции для настройки профиля принтера, чтобы вы могли выбрать подходящий вкус для вашей машины. Затем слайсер переводит 3D-файл в соответствующий G-код для вашей машины.
Некоторые примеры G-кода включают RepRap, Marlin, UltiGcode, Smoothie и т.д.
Список основных G-кодов в 3D-печати
Существует множество команд G-Code, доступных для различных прошивок 3D-принтеров. Вот некоторые из них, с которыми вы можете столкнуться во время печати, и как их использовать.
Marlin M0 [Безусловная остановка]
Команда M0 известна как команда безусловного останова. Она останавливает работу принтера после последнего движения и отключает нагреватели и двигатели.
После остановки работы принтера он либо переходит в спящий режим на заданное время, либо ждет ввода данных пользователем для возобновления работы. Команда M0 может принимать три различных параметра.
Этими параметрами являются:
- [P < время (мс) >]: Это количество времени, в течение которого принтер будет спать, в миллисекундах. Например, если вы хотите, чтобы принтер спал в течение 2000 мс, вы используете параметр M0 P2000
- {S< время(ы) >]: Это количество времени, в течение которого принтер будет находиться в спящем режиме, в секундах. Например, если вы хотите, чтобы принтер находился в спящем режиме 2 секунды, вы используете параметр M0 S2
- [ сообщение ]: Этот параметр можно использовать для отображения сообщения на ЖК-дисплее принтера во время паузы. Например, M0 Нажмите центральную кнопку, чтобы перезапустить печать .
Примечание: Сайт M0 команда аналогична команде M1 командование.
Marlin M81
Команда M81 отключает PSU (блок питания) принтера. Это означает, что все нагреватели, двигатели и т.д. не смогут работать.
Кроме того, если у платы нет альтернативного источника питания, она также отключается.
Marlin M82
Команда M82 переводит экструдер в абсолютный режим. Это означает, что если G-код требует, чтобы экструдер выдавил 5 мм нити, он выдавит 5 мм независимо от предыдущих команд.
Он отменяет команды G90 и G91.
Команда влияет только на экструдер, поэтому она не зависит от других осей. Например, рассмотрим эту команду;
M82;
G1 X0.1 Y200.0 Z0.3 F1500.0 E15;
G1 X0.4 Y20 Z0.3 F1500.0 E30;
Экструдер устанавливается в абсолютный режим с помощью M82 в строке 1. В строке 2 он рисует первую линию, выдавливая 15 единиц нити.
После строки 2 значение экструзии не устанавливается обратно в ноль. Поэтому в строке 3,. E30 команда экструдирует 30 единиц нити, используя E30 командование.
Marlin M83
Команда M83 переводит экструдер принтера в относительный режим. Это означает, что если G-код требует выдавливания 5 мм нити, принтер выдавливает 5 мм суммарно, основываясь на предыдущих командах.
Команда M83 не принимает никаких параметров. Например, выполним обратную команду из предыдущего примера со значением M83 .
M83;
G1 X0.1 Y200.0 Z0.3 F1500.0 E15;
G1 X0.4 Y20 Z0.3 F1500.0 E30;
После E15 Команда в строке 2, значение E не устанавливается обратно на ноль; оно остается равным 15 единицам. Таким образом, в строке 3, вместо того, чтобы выдавить 30 единиц нити, будет выдавлено 30-15 = 15 единиц.
Смотрите также: 51 крутой, полезный, функциональный 3D-печатный объект, который действительно работаетMarlin M84
Команда Marlin M84 отключает один или несколько шаговых двигателей и двигателей экструдера. Вы можете настроить их отключение либо сразу, либо после того, как принтер проработает некоторое время.
Он может принимать четыре параметра. Они включают:
- [S< время(ы) >]: Это задает время простоя до того, как команда сработает и отключит двигатель. Например, M84 S10 отключает все степперы после бездействия в течение 10 секунд.
- [E], [X], [Y], [Z]: Вы можете использовать один или несколько из них, чтобы выбрать конкретный двигатель для холостого хода. Например, M84 X Y переводит двигатели X и Y на холостой ход.
Примечание: Если вы не используете никаких параметров в команде, она немедленно переводит все шаговые двигатели в холостой ход.
Marlin M85
Команда M85 выключает принтер и микропрограмму после периода бездействия. Она принимает параметр времени в секундах.
Если принтер простаивает без движения дольше заданного параметра времени, то он выключится. Например, если вы хотите выключить принтер после 5 минут простоя, вы можете использовать команду:
M85 S300
Marlin M104
Команда M104 устанавливает целевую температуру для хотэнда принтера и начинает его нагрев. После установки целевой температуры команда не ждет, пока хотэнд достигнет этой температуры.
Он немедленно переходит к выполнению других команд G-Code, пока hotend нагревается в фоновом режиме. Он принимает пять параметров, а именно:
- [S< температура (°C )>]: Указывает целевую температуру для экструдера в градусах Цельсия.
- [T< индекс (0 >]: Если принтер имеет более одного сопла, вы можете использовать этот параметр для выбора сопла, для которого вы хотите установить температуру.
- [B < температура (°C )>]: Устанавливает максимальную температуру, которую может достичь горячий термостат. Вы можете использовать этот параметр вместе с параметром S параметр для установки температурного диапазона для термостата.
Например, если вы хотите нагреть второе сопло двухэкструдерной машины до 200°C, вы используете команду M104 S200 T1 .
Marlin M105
Команда M105 G-Code запрашивает отправку отчета о температуре на хост. Сообщается, что некоторые хосты могут скрывать ответ от команды M105, поэтому лучше использовать команду M155.
Вы можете получить температуру экструдера, температуру слоя и даже температуру камеры сборки в градусах Цельсия. Это отдельная команда, поэтому все, что вам нужно сделать, это отправить команду M105 команду на принтер.
Отчет должен включать фактическую и целевую температуру имеющихся нагревателей.
- T - Температура экструдера
- B - Температура постели
- C - Температура в камере
Marlin M106
Команда M106 включает вентилятор принтера и устанавливает его скорость. Вы можете выбрать вентилятор и установить его скорость с помощью его параметров.
Эти параметры включают:
- [S< 0-255 >]: Этот параметр задает скорость вращения вентилятора со значениями от 0 (выключено) до 255 (полная скорость).
- [P< индекс (0, 1, ...) >]: Этот параметр определяет вентилятор, который вы хотите включить. Если оставить его пустым, то по умолчанию он принимает значение 0 (вентилятор охлаждения печати). Вы можете установить значение 0, 1 или 2 в зависимости от количества вентиляторов, которые у вас есть.
Например, если вы хотите установить скорость вращения вентилятора охлаждения форсунок на 50%, команда будет следующей M106 S127. Сайт S значение равно 127, так как 50% от 255 равно 127.
Вы также можете использовать M106 команда без параметров для установки скорости вентилятора охлаждения на 100%.
Примечание: Команда скорости вентилятора вступает в силу только после выполнения команд G-кода, предшествующих ей.
Marlin M107
M107 отключает один из вентиляторов принтера за один раз. Для этого требуется один параметр, P , который является индексом вентилятора, который вы хотите отключить.
Если параметр не задан, P по умолчанию равно 0 и отключает вентилятор охлаждения печати. Например, команда M107 отключает вентилятор охлаждения печати.
Marlin M109
Как M104 команда M109 команда устанавливает целевую температуру для хотэнда и нагревает его. Однако, в отличие от команды M104 , он ждет, пока горячий блок достигнет заданной температуры.
После того, как термостат достигнет заданной температуры, хост продолжает выполнять команды G-Code. Он принимает все те же параметры, что и команда M104.
Однако он добавляет одну дополнительную деталь. Это:
- [R< температура (°C )>]: Этот параметр задает целевую температуру нагрева или охлаждения термостата. В отличие от параметра S он ждет, пока принтер не нагреет или не охладит сопло до этой температуры.
Сайт S команда ожидает при нагреве, но не при охлаждении.
Например, если вы хотите, чтобы сопло охладилось до 120°C с более высокой температуры, команда будет следующей M109 R120.
Затвор Marlin M112
M112 - это команда аварийной остановки G-Code. Как только хост отправляет эту команду, он немедленно останавливает все нагреватели и двигатели принтера.
Любое перемещение или текущая печать также немедленно прекращается. После активации этой команды вам придется перезагрузить принтер, чтобы возобновить печать вашей модели.
В прошивке Marlin команда может застрять в очереди, и ее выполнение займет некоторое время. Чтобы избежать этого, вы можете включить параметр EMERGENCY_PARSER флаг для выполнения команды сразу после ее отправки на принтер.
Вы можете включить эту функцию, зайдя в файл расширенной конфигурации принтера (Marlin/Configuration_adh.v) и удалив из него следующий текст:
// Включение анализатора аварийных команд для перехвата определенных команд, когда они // поступают в буфер последовательного приема, так что они не могут быть заблокированы. // В настоящее время работает с M108, M112, M410 // Не работает на платах с процессорами AT90USB (USBCON)! // //#define EMERGENCY_PARSER
Вам нужно будет удалить // перед #define EMERGENCY_PARSER и перекомпилировать исходники.
Подробнее об обновлении прошивки Marlin вы можете узнать из видеоролика ниже.
Marlin M125
Команда M125 приостанавливает печать и паркует печатающую головку в предварительно настроенном месте парковки. Она также сохраняет в памяти текущее положение сопла перед парковкой.
Обычно в микропрограмме принтера задано предварительно настроенное положение парковки. Вы можете припарковать сопло в этом положении с помощью кнопки M125 только команду.
Однако вы можете изменить его, используя один или несколько из этих параметров.
- [L< длина >]: При этом после стоянки из сопла втягивается филамент заданной длины
- [X< поз >], [Y< поз >], [Z < поз >]: Вы можете комбинировать один или несколько этих координатных параметров, чтобы задать новое положение парковки печатающей головки.
Если вы хотите припарковать сопло в исходном положении и втянуть 9 мм нити, команда будет следующей M125 X0 Y0 Z0 L9.
Marlin M140
Команда M140 устанавливает целевую температуру для кровати и немедленно продолжает выполнение других строк G-кода. Она не ждет, пока кровать достигнет целевой температуры, прежде чем вернуть управление хосту.
Кровать продолжает нагреваться в фоновом режиме, пока принтер выполняет другие строки G-кода. Он принимает один параметр, а именно:
- [S< температура (°C )>]: Этот параметр задает целевую температуру для кровати в градусах Цельсия.
Например, чтобы нагреть кровать до 80 ° C, команда M140 S80.
Marlin M190
Команда M190 устанавливает целевую температуру для кровати и ждет, пока кровать ее не достигнет. Она не возвращает управление хосту и не выполняет никакой другой G-код, пока кровать не достигнет этой температуры.
Примечание: Если вы установили заданную температуру с помощью S параметр, он ждет только во время нагрева кровати ВВЕРХ до заданной температуры. Однако, если кровать должна остыть, чтобы достичь этой температуры, хозяин не ждет.
Чтобы команда ждала во время нагрева и охлаждения, вы должны установить целевую температуру с помощью параметра R параметр. Например, для охлаждения кровати до 50 ° C и подождите, пока она не достигнет этой температуры, команда M190 S50.
Marlin M400
Команда M400 приостанавливает очередь обработки G-кода до завершения всех текущих перемещений в буфере. Очередь обработки ожидает в цикле до завершения всех команд.
После завершения всех перемещений принтер продолжает выполнение G-кода после этой строки. Например, посмотрите на G-код ниже:
M400;
M81;
Строка 1 приостанавливает обработку, пока все текущие движения не будут выполнены, а затем строка 2 выключает 3D-принтер, используя команду M81 отключить питание G-Code.
Marlin M420
Команда M420 позволяет получить или установить состояние выравнивания ложа 3D-принтера. Эта команда работает только с принтерами, имеющими автоматическую систему выравнивания ложа.
После выравнивания эти принтеры создают сетку из печатной формы и сохраняют ее в EEPROM. Команда M420 может помочь извлечь данные сетки из EEPROM.
Он также может разрешить или запретить принтеру использовать эти данные сетки для печати. Он может принимать несколько параметров, которые включают:
- [S< 0 1 >]: Включает (1) или выключает (0) выравнивание ложа. Для включения выравнивания ложа принтер должен иметь действующую сетку в EEPROM.
- [l< индекс >]: Указывает сетку выравнивания, которую необходимо использовать при наличии нескольких файлов. В качестве значения принимает индекс данных сетки.
- [V]: Выводит данные сетки, если установлено значение 1. Значение по умолчанию равно 0.
- [T]: Задает формат, в котором будут распечатаны полученные данные сетки. 0 печатает их в человекочитаемом виде, 1 печатает их в CSV, а 4 печатает их в компактном виде.
- Z< линейный >]: Устанавливает высоту затухания Z для принтера. После этой высоты принтер перестает использовать компенсацию сетки.
Например, допустим, вы хотите распечатать данные второй сетки в EEPROM в формате CSV. Правильная команда для этого следующая: M420 V1 I1 T1
Marlin M420 S1
M420 S1 является подмножеством M420 Команда включает выравнивание ложа на принтере, используя действительную сетку, которую он получает из EEPROM.
Если в EEPROM нет действующей ячейки, он ничего не сделает. Обычно он находится после того, как G28 команда наведения.
Марлин G0
Marlin G0 - это команда быстрого перемещения. Она перемещает сопло из одного положения в другое на построечных плитах по кратчайшему расстоянию (по прямой линии).
Он не укладывает нить во время движения, что позволяет ему двигаться быстрее, чем команда G1. Вот параметры, которые он принимает:
- [X< поз >], [Y < поз >], [Z< поз >]: Эти параметры задают новое положение для перемещения по осям X, Y и Z.
- [F< мм/с >]: Скорость подачи или скорость печатающей головки. Если не указано, принтер автоматически использует скорость подачи из последней команды G1.
Таким образом, если вы хотите быстро переместить печатающую головку к началу координат со скоростью 100 мм/с, команда будет следующей G0 X0 Y0 Z0 F100.
Марлин G1
Команда G1 перемещает принтер из одной точки в другую на рабочей пластине по линейной траектории. Она известна как команда линейного перемещения, поскольку во время перемещения между точками происходит экструзия филамента.
Это отличает его от быстрого перемещения ( G0 ), который не укладывает нить во время движения. Он принимает несколько параметров, включая:
- [X< поз >], [Y < поз >], [Z< поз >]: Эти параметры задают новое положение для перемещения по осям X, Y и Z.
- [E< поз >]: Это задает количество нити, которое будет выдавливаться при перемещении в новую точку.
- [F< мм/с >]: Скорость подачи или скорость печатающей головки. Если не указано, принтер автоматически использует скорость подачи из последней команды G1.
Например, чтобы уложить нить по прямой линии между двумя точками со скоростью 50 мм/с, правильной командой будет G1 X32 Y04 F50 E10.
Marlin G4
Команда G4 приостанавливает работу машины на заданное время. Очередь команд приостанавливается в течение этого времени, поэтому она не выполняет ни одной новой команды G-кода.
Во время паузы машина сохраняет свое состояние. Все нагреватели сохраняют свои текущие температуры, а двигатели остаются включенными.
Он принимает два параметра, а именно:
- [P< время (мс) >]: Указывает время паузы в миллисекундах
- [S< время(ы) >]: Этот параметр задает время паузы в секундах. Если заданы оба параметра, приоритет имеет S.
Чтобы приостановить работу машины на 10 секунд, можно использовать команду G4 S10.
Marlin G12
Команда G12 активирует процедуру очистки сопла принтера. Сначала сопло перемещается в заданное место на принтере, где установлена щетка.
Затем печатающая головка агрессивно перемещается по щетке, чтобы очистить застрявший на ней филамент. Вот некоторые параметры, которые она может принимать.
- [P]: Этот параметр позволяет выбрать желаемую схему очистки насадки. 0 - прямолинейное движение вперед-назад, 1 - зигзагообразное движение, 2 - круговое движение.
- [S< считать >]: Количество повторений схемы очистки.
- [R< радиус >]: Радиус круга очистки, если вы выбрали деталь 2.
- [T< считать >]: Указывает количество треугольников в узоре зиг-заг.
Если вы хотите очистить насадку на щетке в направлении вперед-назад, правильной командой будет G12 P0.
Cura предоставляет возможность использовать эту команду в экспериментальных настройках. Вы можете прочитать больше о команде wipe nozzle в статье Как использовать экспериментальные настройки в Cura.
Marlin G20
Команда G20 устанавливает микропрограмму принтера на интерпретацию всех единиц измерения в дюймах. Таким образом, все значения экструзии, перемещения, печати и даже ускорения будут интерпретироваться в дюймах.
Таким образом, принтер будет иметь дюймы для линейного перемещения, дюймы/секунду для скорости и дюймы/секунду2 для ускорения.
Marlin G21
Команда G21 устанавливает микропрограмму принтера на интерпретацию всех единиц измерения как миллиметров. Таким образом, линейные перемещения, скорости и ускорения будут выражаться в мм, мм/с и мм/с2, соответственно.
Marlin G27
Команда G27 паркует сопло в заранее заданном положении на плитах построения. Она ждет, пока все движения в очереди будут завершены, затем паркует сопло.
Это очень полезно, когда вы хотите приостановить печать, чтобы внести коррективы в отпечаток. Вы можете припарковать сопло, чтобы избежать нависания над отпечатком и его расплавления.
Он принимает один параметр, который является:
- [P]: Это определяет местоположение Z-парка. Если вы выберете 0, микропрограмма будет поднимать сопло до места Z-парка, только если начальная высота сопла меньше, чем местоположение Z-парка.
При выборе 1 сопло паркуется в месте Z-парка независимо от его начальной высоты. При выборе 2 сопло поднимается на величину Z-парка, но ограничивает его высоту Z ниже, чем Z max.
Если вы используете G27 без параметров, по умолчанию устанавливается значение P0.
Marlin G28
Команда G28 направляет принтер для определения известного местоположения в точке начала координат. Наведение - это процесс, с помощью которого принтер находит точку начала координат (координата [0,0,0]) принтера.
Для этого каждая ось принтера перемещается до тех пор, пока не сработает соответствующий концевой выключатель. Место срабатывания концевого выключателя каждой оси - это ее начало.
Вот некоторые его параметры:
- [X], [Y], [Z]: Вы можете добавить любой из этих параметров, чтобы ограничить наведение на эти оси. Например, G28 X Y размещает только оси X и Y.
- [L]: Восстанавливает состояние выравнивания кровати после наведения.
- [0]: Этот параметр пропускает наведение, если положение печатающей головки уже определено.
Например, если вы хотите разместить только оси X и Z, то правильной командой будет G28 X Z. Чтобы разместить все оси, вы можете воспользоваться функцией G28 только команду.
Marlin G29
G29 - это команда автоматического выравнивания станины. Она задействует автоматическую или полуавтоматическую систему выравнивания станины, установленную на вашей машине, для выравнивания станины.
В зависимости от марки принтера в вашей прошивке может быть установлена одна из пяти сложных систем выравнивания ложа. К ним относятся:
- Выравнивание сетчатой кровати
- Автоматическое выравнивание кровати
- Унифицированное выравнивание кровати
- Автоматическое выравнивание станины (линейное)
- Автоматическое выравнивание кровати (3-точечное)
Каждый из них имеет определенные параметры для работы с аппаратным обеспечением принтера.
Marlin G30
Команда G30 измеряет строительную плиту в определенной точке с помощью щупа автоматической системы выравнивания станины. Это делается для определения высоты Z этой точки (расстояние от сопла до станины).
После получения высоты, он устанавливает сопло на соответствующее расстояние над пластиной построения. Он принимает некоторые параметры, которые включают:
- [C]: Установка этого параметра на единицу позволяет компенсировать температуру, поскольку большинство материалов расширяются при нагревании.
- [X< поз >], [Y< поз >]: Эти параметры задают координаты, в которых вы хотите провести зондирование.
Для зондирования станины в текущем положении сопла можно использовать команду без параметров. Для зондирования в определенном месте, например [100, 67], правильной командой будет G30 X100 Y67.
Смотрите также: 10 способов Как исправить смещение слоев 3D принтера на одной высотеMarlin M76
Команда M76 приостанавливает таймер задания печати.
Marlin G90
Команда G90 переводит принтер в режим абсолютного позиционирования. Это означает, что все координаты в G-коде интерпретируются как положение в плоскости XYZ относительно начала координат принтера.
Он также устанавливает экструдер в абсолютный режим, если команда M83 не отменяет его. Он не принимает никаких параметров.
Marlin G92/G92 E0
Команда G92 устанавливает текущее положение сопла в указанные координаты. С ее помощью можно исключить определенные области печатной формы, а также задать смещения для принтера.
Команда G92 принимает несколько параметров координат. Они включают в себя:
- [ X< поз >], [Y< поз >], [Z< поз >]: Эти параметры принимают координаты нового положения печатающей головки.
- [E< поз >]: Этот параметр принимает значение и устанавливает его в качестве положения экструдера. Вы можете использовать команду E0 для сброса начала координат экструдера, если он находится в относительном или абсолютном режиме.
Например, допустим, вы хотите, чтобы центр вашей кровати был новым началом координат. Сначала убедитесь, что ваше сопло находится в центре кровати.
Затем отправьте G92 X0 Y0 команду на ваш принтер.
Примечание: Команда G92 поддерживает физические границы, установленные концевыми упорами. Вы не можете использовать G92 для перемещения за пределы концевого выключателя X или ниже печатной формы.
Итак, вот и все! Приведенные выше G-коды представляют собой небольшую, но важную часть библиотеки G-кодов, которую должен знать каждый энтузиаст 3D-печати.
По мере того, как вы будете печатать больше моделей, вы можете столкнуться с большим количеством команд G-Code, которые можно добавить в свою библиотеку.
Удачи и счастливой печати!