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-команды

 G4 S2 и G4 P2000 – эквивалентны
   Команда позволяет создать компенсационную(по высоте Z) сетку и использовать ее в дальнейшем при печати.
   Сетку можно использовать многократно, даже после выключения принтера. 
   После использования команды **G28** сетка, созданная командой **G29** «слетает».
   Необходимо сохранять сетку стразу после ее создания! Для вызова сетки из памяти использовать команду **М420**.
   Перед использованием **G29** обязательно использовать G28, иначе сетка будет неверной.

Создание Mesh Bed Leveling вручную(через команды):

  1. Введите G29 S0 для начала создания сетки.
  2. Введите G29 S1 для установки первой точки сетки.
  3. Выровняйте сопло по высоте при помощи бумажки(как обычно).
  4. Введите G29 S2 для сохранения значения и перехода к новой точке
  5. Повторить шаги 3 и 4, пока процедура создания не закончится.
  6. Введите M500 чтобы записать полученную сетку в EEPROM.

Создание Mesh Bed Leveling при помощи меню принтера(функция должна быть активна в прошивке):

  1. Выберите пункт Prepare, а после Auto home (она же команда G28).
  2. Выберите пункт Prepare, а после Level Bed.
  3. Ждите начала инструкций на экране. Нажмите «крутилку» на экране, при появлении надписи «Click to Begin». Голова уедет в первую точку сетки.
  4. Используя «крутилку», поднимая или опуская сопло, выставите сопло по бумажке. Так же как при выравнивании стола. После того, как вы добились нужного зазора между соплом и бумажкой, нажмите на «крутилку». Голова уедет к новой точке сетки.
  5. Повторяйте п.4 пока программа не пройдет все точки.
  6. После окончания войдите в меню Control и выберите пункт Store memory для сохранения созданной сетки в EEPROM.

Для использования сохраненной в EEPROM сетки при печати используйте команду М420 S1(См. М420).

Xnnn - новая координата X

Ynnn - новая координата Y

Znnn - новая координата Z

Ennn - новая позиция экструдера

Пример: G92 X10 E90

М-команды

SD карта должна быть проинициализирована для работы других функций SD карты.

происходит гарантированная ошибка. Полезно перед извлечением SD карты.

Пример: M23 filename.gco

Пример: M28 filename.gco.

На SD карте создается файл, обозначенный как filename.gco (если файл существует, то он перезаписывается) и все последующие команды на принтер записываются в этот файл.

Пример: M29 filename.gco

 Файл, открытый командой M28 закрывается и все последующие команды исполняются принтером в нормальном режиме.

Пример: M30 filename.gco.

filename.gco будет удален.

Пример: M32 filename.gco.

Snnn – время в секундах.

 Если тайм-аут задан с помощью Snnn, эта команда просто устанавливает таймаут неактивности шагового двигателя. 
 
 Если моторы(X,Y,Z или E) не указаны, эта команда немедленно отключает все. 
 
 Если указана одна или несколько осей, эта команда немедленно отключает указанные. Например, //M84 S10// переведет шаговые двигатели в режим ожидания после 10 секунд простоя.

Xnnn, Ynnn, Znnn – шаги на единицу по осям.

Еnnn – шаги на единицу для экструдера

Примеры: M92 X87.489 Y87.489 Z87.489 или M92 E420

Позволяет устанавливать количество шагов на единицу (обычно мм) для двигателй. Эти значения заменяются на значения из прошивки при включении питания, если не записать их в EEPROM см. M500.

Пример: M104 S190

  Устанавливает температуру активного экструдера 190C и сразу же возвращает управление (то есть НЕ ЖДЕТ пока экструдер достигнет заданной температуры). Еще см. М109
 Получает температуру активного экструдера и горячего стола в градусах Цельсия. Температура передается на подключенный компьютер. Ответ, переданный на компьютер может выглядеть так: ok T:201 B:117

Nnnn - Номер строки

Пример: M110 N123

В этом примере устанавливается номер текущей строки 123. Таким образом ожидается, что следующая строка после этой команды будет 124.

Пример: M140 S65

 Устанавливает температуру стола 65C и сразу же возвращает управление (то есть НЕ ЖДЕТ пока стол достигнет заданной температуры). Еще см. М190
Устанавливает температуру в градусах Цельсия и ОЖИДАЕТ ее достижения. см. М140

Dnnn – диаметр в мм.

Tnnn – номер экструдера. (для одноэкструдерных принтеров можно не указывать)

Пример: М200 D1.65

 Используется для вычислений реального выдавливаемого объема. Для установки номинальных параметров см. М404.

Xnnn, Ynnn, Znnn – ускорения в мм/сек в кв. для осей.

Ennn – ускорения в мм/сек в кв. для экструдера. Можно использовать только один/два из параметров.

Пример: M201 X1000 Y1000 Z100 E2000

Для сохранения параметров в EEPROM использовать M500

!Не используется в Марлин! В мм/сек в кв.

Пример: M202 X1000 Y1000

Xnnn, Ynnn, Znnn – макс.скорость для осей.

Ennn – макс.скорость для экструдера.

Можно использовать только один/два из параметров.

Пример: M203 X6000 Y6000 Z300 E10000

Для сохранения параметров в EEPROM использовать M500.

Pnnn – Ускорения при печати

Rnnn – Ускорение ретракта

Tnnn – Ускорения при холостых перемещениях

Можно использовать только один/два из параметров.

Пример: M204 P800 T3000 R9000

Для сохранения параметров в EEPROM использовать M500.

Xnnn – рывок по осям Х и Y. (по этим осям рывки одинаковые)

Znnn – рывок по оси Z.

Ennn – рывок для экструдера.

Можно использовать только один/два из параметров.

Пример: M205 X30 Z5

 Установить рывок по X/Y = 30, по Z рывок = 5.

Для сохранения параметров в в EEPROM использовать M500.

Подобие команды G92, но эти смещения можно записать в EEPROM см. М500.

Пример: M206 X10.0 Y10.0 Z-0.4

Snnn – положительное значение ретракта в мм.

Fnnn – скорость подачи мм/сек.

Znnn – лифт(подъем) головы по оси Z в мм при ретракте. (Помогает не задеть модель)

Пример: M207 S4.0 F2400 Z0.075

Используется впоследствии для команд G10 и G11.

Для сохранения параметров в в EEPROM использовать M500.

Snnn – положительное значение подачи в мм.

Fnnn – скорость подачи мм/сек.

Для сохранения параметров в в EEPROM использовать M500.

Snnn – значение 1 – вкл, 0- выкл.

Используется, если слайсер не поддерживает команды G10 и G11.

Каждая команда «выдавливания» будет классифицироваться как ретракт, в зависимости от значения (положительное или отрицательное).

Tnnn - номер головы

Xnnn, Ynnn – координаты по Х,Y.

Пример: M218 T0 X50 Y10.5

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 – выдавливать при любой температуре.

Ennn - E0 хотэнд, E1 стол.

Snnn – температура калибровки.

Cnnn – количество циклов калибровки. Больше циклов – точнее параметры.

Пример M303 E1 C8 S110

  Калибровка PID стола при температуре 110С в течении 8-ми циклов.
  Параметры PID будут выведены строкой, на экран терминала программы работающей в соединении с принтером, например Repetier-Host.

Pnnn - Коэффициэнт proportional (Kp)

Innn - Коэффициэнт integral (Ki)

Dnnn - Коэффициэнт derivative (Kd)

Пример: M301 H1 P1 I2 D3

Для сохранения параметров в EEPROM использовать M500.

 Для записи PID экструдера смотри М301.

Wnnn – номинальная(теоретическая) толщина филамента в мм.

Пример: M404 W1.75

  Это значение используется для определения процентной разницы при автоматической настройке расхода в ответ на измеренную ширину нити и должно соответствовать значению, используемому для ширины нити в настройках слайсера.
  
  Установка реальной толщины филамента см. М200.

Snnn – S1 вкл., S0 выкл.

 См. G29 чтобы получить текущий статус и создать сетку компенсации кривизны стола.