G-CODE по-русски для 3D печати
Привожу ссылку на оригинал. Текст продублирую здесь, так как он мне показался полезным. Все команды и примеры из данной статьи актуальны для прошивки Marlin. Для принтеров семейства RatRig, используется ОС RatOs, которая имеет дружественный интерфейс установки, и является оберткой на прошивку Klipper Часть этих команд прошивка Klipper понимает напрямую - путем ввода в Console, часть только через прописанные макросы. Но в любом случае вы увидите их в файле формируемом программой слайсером(используется для преобразования моделей печати в коды понятные прошивке принтера) и их будет полезно уметь понимать.
https://3dtoday.ru/blogs/steamgun/g-code-po-russki-dlya-3d-pechati-mini-spravochnik - ссылка на оригинал
G-CODE по-русски для 3D печати (Мини-справочник)
Часто, для качественной печати, и, особенно, при подборе параметров печати, при калибровке необходимо уметь читать и править G-код.
Банальный пример: установка своих значений для «Температурной башни» или создание стартового и конечного блоков кодов в слайсерах под конкретный принтер.
На некоторых сайтах(вроде reprap.org/wiki/G-code) на русскоязычных страницах команды описаны на русском только частично, а остальное на английском.
На некоторых отечественных сайтах команды переведены на русский, но некоторые приведены с ошибками, - тупо копи-паст корявого перевода.
Надоело искать по разным сайтам, пытаясь найти ПРАВИЛЬНОЕ описание той или иной команды и ее параметров.
Сделал себе такой мини-справочник. Буду рад, если кому еще пригодится.
Старался описать максимальное количество используемых команд, кроме совсем уж специфичных.
(Да-да, особые команды для дельт, например, уж простите, считаю специфичными и мне не нужными)
Однако, большинство команд поддерживаются всеми принтерами и прошивками.
Внимание! Соответствие команд и параметров проверены только для прошивки Marlin.
G-команды
- G0(G1) Xnnn Ynnn Znnn Ennn Fnnn – перемещение.
- G0 - быстрое холостое перемещение
- G1 – линейное рабочее перемещение
- Xnnn, Ynnn, Znnn – координаты.
- Еnnn - кол-во выдавливаемого материала в мм(при отрицательных значениях -ретракт).
- Fnnn – скорость перемещения в мм/мин.(эта скорость будет использ. до след. изменения).
- G0 X12 (переместится на 12 мм по оси X)
- G0 F1500 (Установить скорость перемещения равной 1500 мм/мин.)
- G1 X90.6 Y13.8 E22.4 (Переместиться на 90.6 мм по оси X и на 13.8 мм по оси Y в тоже время выдавить 22.4 мм материала.)
- G4 Pnnn (или Snnn) – ожидание. Pnnn - Время ожидания, в миллисекундах Snnn - Время ожидания в секундах.
G4 S2 и G4 P2000 – эквивалентны
- G10 - Откат пластика (Ретракт). Откат филамента в соответствии с настройками M207.
- G11 - Подача пластика. Подача восстанавливает положение пластика в соответствии с настройками M208.
- G20 - Установка единиц измерения в дюймах
- G21 - Установка единиц измерения в миллиметрах. С этого момента отсчет будет вестись в дюймах/миллиметрах.
- G28 - Перемещение в начало («домой») до сработки концевых выключателей
- G28 – домой по всем осям.
- G28 X Z - Перемещение домой только по осям X и Z
- G29 - Создание сетки кривизны стола (MESH_BED_LEVELING)
Команда позволяет создать компенсационную(по высоте Z) сетку и использовать ее в дальнейшем при печати. Сетку можно использовать многократно, даже после выключения принтера. После использования команды **G28** сетка, созданная командой **G29** «слетает». Необходимо сохранять сетку стразу после ее создания! Для вызова сетки из памяти использовать команду **М420**. Перед использованием **G29** обязательно использовать G28, иначе сетка будет неверной.
Создание Mesh Bed Leveling вручную(через команды):
- Введите G29 S0 для начала создания сетки.
- Введите G29 S1 для установки первой точки сетки.
- Выровняйте сопло по высоте при помощи бумажки(как обычно).
- Введите G29 S2 для сохранения значения и перехода к новой точке
- Повторить шаги 3 и 4, пока процедура создания не закончится.
- Введите M500 чтобы записать полученную сетку в EEPROM.
Создание Mesh Bed Leveling при помощи меню принтера(функция должна быть активна в прошивке):
- Выберите пункт Prepare, а после Auto home (она же команда G28).
- Выберите пункт Prepare, а после Level Bed.
- Ждите начала инструкций на экране. Нажмите «крутилку» на экране, при появлении надписи «Click to Begin». Голова уедет в первую точку сетки.
- Используя «крутилку», поднимая или опуская сопло, выставите сопло по бумажке. Так же как при выравнивании стола. После того, как вы добились нужного зазора между соплом и бумажкой, нажмите на «крутилку». Голова уедет к новой точке сетки.
- Повторяйте п.4 пока программа не пройдет все точки.
- После окончания войдите в меню Control и выберите пункт Store memory для сохранения созданной сетки в EEPROM.
Для использования сохраненной в EEPROM сетки при печати используйте команду М420 S1(См. М420).
- G90 - Установка абсолютных координат. Все координаты являются абсолютными относительно начала координат станка.
- G91 - Установка относительных координат. Все координаты с этого момента становятся относительными по отношению к последней позиции. Марлин переводит все оси в относительные координаты, в том числе экструдер.
- G92 Xnnn Ynnn Znnn Ennn - Установить позицию Эта команда может быть использована без каких-либо дополнительных параметров.
- G92 - сбросит все координаты осей на ноль.
Xnnn - новая координата X
Ynnn - новая координата Y
Znnn - новая координата Z
Ennn - новая позиция экструдера
Пример: G92 X10 E90
М-команды
- M17 - Включить/Подать питание на все шаговые двигатели
- M18 - Убрать ток с двигателей. Двигатели можно вращать руками. Аналог команды M84
- M20 - Список файлов на SD карте
- M21 - Инициализация SD карты. Если SD карта загружена при включении принтера, то это произойдет по умолчанию.
SD карта должна быть проинициализирована для работы других функций SD карты.
- M22 - Освобождение SD карты. Указанная SD карта будет освобождена. При будущих (случайных) попытках чтения
происходит гарантированная ошибка. Полезно перед извлечением SD карты.
- M23 - Выбор файла на SD карте
Пример: M23 filename.gco
- M24 - Начало/продолжение печати с SD карты. Принтер будет печатать из файла выбранного с помощью команды M23.
- M25 - Пауза печати с SD карты
- M28 - Начать запись на SD карту
Пример: M28 filename.gco.
На SD карте создается файл, обозначенный как filename.gco (если файл существует, то он перезаписывается) и все последующие команды на принтер записываются в этот файл.
- M29 - Остановить запись на SD карту
Пример: M29 filename.gco
Файл, открытый командой M28 закрывается и все последующие команды исполняются принтером в нормальном режиме.
- M30 - Удалить файл с SD карты
Пример: M30 filename.gco.
filename.gco будет удален.
- M32 - Выбрать файл и начать печать с SD карты. Используется для печати с SD карты и работает так же как M23 и M24
Пример: M32 filename.gco.
- M80 - Включить блок питания ATX. Переводит блок питания ATX из спящего режима в рабочий режим. Не работает на электронике без спящего режима.
- M81 - Выключить блок питания ATX
- M82 - Установить экструдер в абсолютный режим
- M83 - Установить экструдер в относительный режим. Позволяет экструдеру производить экструзию в абсолютных/относительных единицах
- M84 Snnn X,Y,Z,E – Перевести моторы в режим ожидания
Snnn – время в секундах.
Если тайм-аут задан с помощью Snnn, эта команда просто устанавливает таймаут неактивности шагового двигателя. Если моторы(X,Y,Z или E) не указаны, эта команда немедленно отключает все. Если указана одна или несколько осей, эта команда немедленно отключает указанные. Например, //M84 S10// переведет шаговые двигатели в режим ожидания после 10 секунд простоя.
- M92 Xnnn Ynnn Znnn Ennn - Установить количество шагов по осям на единицу
Xnnn, Ynnn, Znnn – шаги на единицу по осям.
Еnnn – шаги на единицу для экструдера
Примеры: M92 X87.489 Y87.489 Z87.489 или M92 E420
Позволяет устанавливать количество шагов на единицу (обычно мм) для двигателй. Эти значения заменяются на значения из прошивки при включении питания, если не записать их в EEPROM см. M500.
- M104 Snnn - Установить температуру экструдера и НЕ ждать. Snnn - Заданная температура
Пример: M104 S190
Устанавливает температуру активного экструдера 190C и сразу же возвращает управление (то есть НЕ ЖДЕТ пока экструдер достигнет заданной температуры). Еще см. М109
- M105 - Получить температуру экструдера.
Получает температуру активного экструдера и горячего стола в градусах Цельсия. Температура передается на подключенный компьютер. Ответ, переданный на компьютер может выглядеть так: ok T:201 B:117
- M106 Snnn - Включить вентилятор обдува детали Snnn - Скрорость вращения вентилятора от 0 до 255 (значение 127 – 50% скорости)
- M107 - Выключить вентилятор
- M108 - Отменить нагрев. Обрывает ожидание достижения заданной командами M109 и M190 температуры, продолжает печать.
- M109 Snnn - Установить температуру экструдера и ждать. Устанавливает температуру в градусах Цельсия и ожидает ее достижения. Еще см. М104
- M110 Nnnn - Установить номер текущей строки
Nnnn - Номер строки
Пример: M110 N123
В этом примере устанавливается номер текущей строки 123. Таким образом ожидается, что следующая строка после этой команды будет 124.
- M112 – Экстренная остановка
- M114 - Получение текущих позиций
- M115 - Получить версию прошивки
- M119 - Получить статус концевиков
- M140 - Установить температуру стола и НЕ ждать
Пример: M140 S65
Устанавливает температуру стола 65C и сразу же возвращает управление (то есть НЕ ЖДЕТ пока стол достигнет заданной температуры). Еще см. М190
- M190 - Установить температуру стола и ждать
Устанавливает температуру в градусах Цельсия и ОЖИДАЕТ ее достижения. см. М140
- М200 Dnnn Tnnn – Установить РЕАЛЬНЫЙ диаметр прутка филамента.
Dnnn – диаметр в мм.
Tnnn – номер экструдера. (для одноэкструдерных принтеров можно не указывать)
Пример: М200 D1.65
Используется для вычислений реального выдавливаемого объема. Для установки номинальных параметров см. М404.
- M201 Xnnn Ynnn Znnn Ennn – Установка максимальных ускорений (в мм/сек.в кв)
Xnnn, Ynnn, Znnn – ускорения в мм/сек в кв. для осей.
Ennn – ускорения в мм/сек в кв. для экструдера. Можно использовать только один/два из параметров.
Пример: M201 X1000 Y1000 Z100 E2000
Для сохранения параметров в EEPROM использовать M500
- М202 – Установка максимального ускорения для простого(холостого) перемещения.
!Не используется в Марлин! В мм/сек в кв.
Пример: M202 X1000 Y1000
- М203 Xnnn Ynnn Znnn Ennn – Установка максимальной скорости (в мм/сек)
Xnnn, Ynnn, Znnn – макс.скорость для осей.
Ennn – макс.скорость для экструдера.
Можно использовать только один/два из параметров.
Пример: M203 X6000 Y6000 Z300 E10000
Для сохранения параметров в EEPROM использовать M500.
- М204 Pnnn Rnnn Tnnn – Установка ускорений (в мм/сек.в кв)
Pnnn – Ускорения при печати
Rnnn – Ускорение ретракта
Tnnn – Ускорения при холостых перемещениях
Можно использовать только один/два из параметров.
Пример: M204 P800 T3000 R9000
Для сохранения параметров в EEPROM использовать M500.
- М205 Xnnn, Znnn, Ennn – Установка максимальных рывков(jerk) (мм/сек)
Xnnn – рывок по осям Х и Y. (по этим осям рывки одинаковые)
Znnn – рывок по оси Z.
Ennn – рывок для экструдера.
Можно использовать только один/два из параметров.
Пример: M205 X30 Z5
Установить рывок по X/Y = 30, по Z рывок = 5.
Для сохранения параметров в в EEPROM использовать M500.
- М206 Xnnn, Ynnn, Znnn – Установка смещений относительно концевиков(ноля)
Подобие команды G92, но эти смещения можно записать в EEPROM см. М500.
Пример: M206 X10.0 Y10.0 Z-0.4
- M207 Snnn Fnnn Znnn – Установка параметров ретракта (втягивание прутка)
Snnn – положительное значение ретракта в мм.
Fnnn – скорость подачи мм/сек.
Znnn – лифт(подъем) головы по оси Z в мм при ретракте. (Помогает не задеть модель)
Пример: M207 S4.0 F2400 Z0.075
Используется впоследствии для команд G10 и G11.
Для сохранения параметров в в EEPROM использовать M500.
- M208 Snnn Fnnn – Параметры восстановления подачи прутка после ретракта
Snnn – положительное значение подачи в мм.
Fnnn – скорость подачи мм/сек.
Для сохранения параметров в в EEPROM использовать M500.
- M209 Snnn – Вкл/выкл автоматического ретракта
Snnn – значение 1 – вкл, 0- выкл.
Используется, если слайсер не поддерживает команды G10 и G11.
Каждая команда «выдавливания» будет классифицироваться как ретракт, в зависимости от значения (положительное или отрицательное).
- M218 Tnnn Xnnn Ynnn – Установка смещения головы
Tnnn - номер головы
Xnnn, Ynnn – координаты по Х,Y.
Пример: M218 T0 X50 Y10.5
- M301 Hnnn Pnnn Innn Dnnn — Записать PID параметры хотэнда(!)
Hnnn – номер экструдера. H1 – первый эксрудер(хотэнд).
Pnnn - Коэффициэнт proportional (Kp)
Innn - Коэффициэнт integral (Ki)
Dnnn - Коэффициэнт derivative (Kd)
Пример: M301 H1 P1 I2 D3
Для сохранения параметров в EEPROM использовать M500.
Для записи PID стола смотри М304.
M302 Snnn – Разрешить выдавливание при температуре Snnn и выше.
Snnn - Заданная температура
Пример: M302 S170
Разрешить выдавливать(включать мотор экструдера) при температуре сопла 170С и выше. М302 S0 – выдавливать при любой температуре.
- M303 Ennn Snnn Cnnn — Запустить процесс PID калибровки для стола/хотэнда
Ennn - E0 хотэнд, E1 стол.
Snnn – температура калибровки.
Cnnn – количество циклов калибровки. Больше циклов – точнее параметры.
Пример M303 E1 C8 S110
Калибровка PID стола при температуре 110С в течении 8-ми циклов. Параметры PID будут выведены строкой, на экран терминала программы работающей в соединении с принтером, например Repetier-Host.
- M304 Pnnn Innn Dnnn — Записать PID параметры стола(!)
Pnnn - Коэффициэнт proportional (Kp)
Innn - Коэффициэнт integral (Ki)
Dnnn - Коэффициэнт derivative (Kd)
Пример: M301 H1 P1 I2 D3
- М301 – без параметров выведет текущие параметры.
Для сохранения параметров в EEPROM использовать M500.
Для записи PID экструдера смотри М301.
- М404 Wnnn – Установка номинальной толщины филамента 1.75 или 3.
Wnnn – номинальная(теоретическая) толщина филамента в мм.
Пример: M404 W1.75
- M404 – без параметров выведет текущее номинальное значение строкой.
Это значение используется для определения процентной разницы при автоматической настройке расхода в ответ на измеренную ширину нити и должно соответствовать значению, используемому для ширины нити в настройках слайсера. Установка реальной толщины филамента см. М200.
- М420 Snnn – Вкл/выкл использования сетки компенсации кривизны стола (MESH_BED_LEVELING)
Snnn – S1 вкл., S0 выкл.
- M420 S1 – использовать при печати сетку компенсации кривизны стола загруженной из EEPROM.
См. G29 чтобы получить текущий статус и создать сетку компенсации кривизны стола.
- М500 – Сохранение данных в EEPROM
- М501 – Чтение данных из EEPROM
- М600 – Команда для автоматической смены филамента