Команды gcode для 3д принтера

Команды gcode для 3д принтера

Современный уровень развития аддитивных технологий позволяет пользователям воссоздавать сложные технические объекты без подробного разбора сути технологического процесса. При этом знание G-code и умение им пользоваться необходимо каждому обладателю 3D-принтера . Эффективное использование кода позволяет глубже погрузиться в процесс и учесть все нюансы при печати изделий. Также умение читать и править G-code нужно для подбора технических параметров при печати и калибровке устройства.

  • Что такое G-code?
  • Основные команды языка
  • Принцип работы ПО для 3D-принтера
  • Когда использовать G-код?
  • Команды G-code
  • Команды M

Что такое G-code?

G-code представляет собой программный язык для машин и станков со встроенным модулем числового программного управления.

Он был разработан компанией Electronic Industries Alliance в первой половине 1960-х годов. Программы, созданные с использованием этого кода, отличаются жесткой и предельно последовательной структурой. В G-code отсутствуют циклы, функции и логические команды, его возможности позволяют настроить оборудование только таким образом, чтобы оно исполняло лишь те действия, которые были заложены в компьютер.

G-code для 3D-принтеров может быть сформирован специальной программой – слайсером – посредством предварительной загрузки в нее 3D-модели и выставления требуемых параметров печати.

G-code в работе используют подавляющее большинство популярных принтеров. Его популярность обусловлена простотой использования и возможностью генерировать код в любых доступных слайсерах, в том числе Cura, Chitubox, Simplify3D, Slic3er и др. Редактировать написанную программу можно в обычном блокноте или NotePad++, который доступен всем пользователям операционной системы Windows.

Но бывают случаи, когда печатные устройства работают на зашифрованном G-code, например – Zortrax, использующий собственный слайсер, который генерирует файл в расширении Z-code.

Созданные таким образом файлы нельзя открыть с помощью стандартных программ и сторонних слайсеров.

Независимо от типа шифрования, код состоит из строк, каждая из которых при этом является кадром. Для каждого кадра или группы кадров разработчики прописывают комментарии, которые выделяются в ленте кода знаком точки с запятой.

Команды gcode для 3д принтера

Что такое gcode. Учимся читать и редактировать. Принципы формирования кадров, команды и функции.

В этой статье разберем что представляет из себя Gcode для 3d принтеров. Детально рассмотрим структуру, виды команд, принцип формирования кадров.

Итак, Gcode — это язык программирования для машин и станков с числовым программным управлением. Для 3d принтеров он формируется программой слайсером, предварительно загрузив в нее 3d модель и задав необходимые параметры печати.

3д-печать Просто (Часть 5): Команды GCODE

По какому же принципу работает ПО для 3d печати?

Принцип по которому работает любой 3d принтер – это разбиение 3d модели на множество горизонтальных слоев. Каждый слой вне зависимости от способа его формирования (экструдером FDM принтер, лазером SLA, DLMS) разбивается на множество линий определенной толщины и ширины или формируется в виде растрового изображения если это DLP принтер. Например ширина такой линии для FDM 3d принтера – это диаметр сопла, высота это толщина слоя. Для того чтобы задать экструдеру маршрут необходимо сформировать своего рода карту. Простыми словами – этот набор команд и есть gcode, а формируется он автоматически, программой сласером типа Cura, Slick3r и т.д., при подгрузке в нее 3d модели .

Каждый вектор траектории в gcode описывается декартовыми координатами, по которым и перемещается экструдер. В этом файле еще описываются такие параметры как нагрев, скорость перемещения, скорость выдавливание пластика и т.д. Вообще Gcode создавался для ЧПУ станков, он имеет множество различных команд и функций. Для этих устройств G-код на много сложнее, нежели для 3d принтеров. Для sla и dlp 3d принтеров слайсеры устроены немного по другому принципу, т.к. sla иcпользую лазеры, которые управляются гальванометрами с зеркалами, а dlp — проекторы засвечивают каждый слой пятном созданным в виде растрового изображения.

Для просмотра gcode, существует удобный онлайн-инструмент http://gcode.ws/ .

Немного истории, gcode был создан компанией Electronic Industries Alliance ещё в 1960-х годах. В дальнейшем распространился по всему как стандарт для применения во всех устройствах с ЧПУ.

Итак, ваш 3 d принтер – это устройство с числовым программным управлением. Работает он в соответствии с командами которые описаны в запушенном Gcode .

Файл содержащий код имеет расширение. gcode и условно его структура выглядит следующим образом:

1. Подготовительные операции. Здесь подготавливается 3 d принтер к печати, запускаются нагрев стола, экструдера, устанавливается параметры системы координат, включается охлаждение, перемещение головки в нулевую точку отсчета, выдавливается тестовая порция пластика и другие установленные параметры.

2. Непосредственно 3 d печать объекта.

3. Заключительный этап. Перемещение экструдера и стола в исходное положение, отключение нагрева всех элементов 3 d принтера и т.д.

Весь код состоит из строк, каждая из них называется кадром. При этом для каждого кадра или группы кадров, для того что бы было понятно что будет выполняться можно прописать комментарии которые понятны только разработчикам и начинаются они со знака точка с запятой ; , например:

Ну а прошивка (машина воспринимает только 0 и 1) работает только по командам которые можно разделить на:

1. G – Основные (называемые в стандарте подготовительными) к оманды которые выполняют перемещение от точки к точке по прямой линии, в высоту или заданной дуге окружности определенного радиуса. Т.е. позиционирование экструдера или инструмента в пространстве.

2. М – Вспомогательные (технологические ) команды. Различные команды которые включают рабочие элементы нагрев, охлаждение, передача, считывание параметров и их вывод на дисплей и др. Это самая многочисленная группа.

3. T — смена инструмента т.е. в нашем случае переход от с первого на второй экструдер T 0, T 1.

Ниже идут параметры которые необходимо передать команде для ее выполнения. Это конкретные числовые значения:

1. X , Y , Z – координаты для позиционирования инструмента в пространстве. Могут быть целыми, дробными, отрицательными, положительными.

2. F — скорость движения печатающей головки в мм/мин.

3. S – значение температуры, время в секундах, напряжение

4. P – параметры в миллисекундах для настройки PID -контроллеров

5. Е – кол-во пластика в мм. Зависит от указанного диаметра сопла и диаметра нити. В Gcode устанавка скорость работы мотора подающий пластик в самом начале с помощью параметра F 200 [G1 F200 E10], так же в настройках самого 3 d принтера, можно увеличить обороты двигателя в %. До обнуления в каждом кадре указывается общее кол-во в мм начиная сначала. Может принимать отрицательные значения если необходимо втягивание нити.

6. H — номер нагревателя. H 0 — Для стола, H 1 — H … для экструдера и т.д.

7. R – радиус дуги

8. D – диаметр нити.

Основные команды G , которые применяются для управления 3 d принтерами:

  • G0 — Холостой ход, без выдавливания пластика. Например [G0 F5400 X92.570 Y102.081 Z0.300] – Перемещение в точку с координатами X92.570 Y102.081 Z0.300, со скоростью 5400 мм/мин.
  • G1 — Прямолинейное движение по осям X Y Z, с выдавливаем пластика Е в мм. Например [G1 F1200 X93.754 Y101.488 E0.0660] – это координаты точки куда необходимо перемеcтиться экструдеру, со скоростью 20 мм/с, при этом израсходуется 0.066 мм нити.
  • G2 и G3 – перемещение по дуге. Эта команда практически не применяется если ее не задать вручную, т.к. периметр всегда представляет из себя ломанную (поверхность состоит из треугольников), а заполнение формируется прямыми линиями. Для этой команды необходимо задать R радиус окружности дуги.
  • G4 — Пауза в секундах в S – в сек, P – миллисекундах. [G4 S15] — Останавливаемся на 15 мин.
  • G21 – значения единиц измерения в мм. Устанавливается один раз в подготовительной части.
  • G28 — Команда Home — паркуем головку. [G28 Y0 X0 Z0] – перемещение экструдера в указанные координаты.
  • G90 — Использовать абсолютные координаты . В этой команде отсчет производиться от начально нулевой точки декартовой системы координат. Устанавливается один раз в подготовительной части.
  • G91 — Использовать относительные координаты . В этой команде отсчёт производится от последней точки траектории перемещения.
  • G92 — Установить текущую заданную позицию.

Основные команды M которые применяются для управления 3 d принтерами:

Обязатльные:

  • M0 — Пауза и ожидание нажатия кнопки на LCD дисплеи (работает если в прошивку установлен параметр ULTRA_LCD) [ G0 X20 Y20 Z20 M0]
  • M17 — Подать ток на двигатели (двигатели руками не вращаются)
  • M18 — Убрать ток с двигателей (двигатели можно вращать руками, аналог M84)
  • M42 — Управлять контактами ARDUINO MEGA 2560 [ M42 P4 S255]
  • M80 — Включить питание, для ATX — блок питания
  • M81 — Выключить питания, для ATX — блок питания
  • M84 — Выключение всех осей (моторов после простоя) [M84 S10]
  • М112 — Экстренная остановка
  • M114 — Получить текущие координаты
  • M115 — Получить версию прошивки
  • M117 — Написать сообщение на экране [ M117 Best Print . ]
  • M119 — Получить статус концевиков
  • M300 — Проиграть звук [ M300 S300 P200] — S частота в Гц, P – продолжительность в миллисекундах.

Команды для SD карты

  • M20 — Прочитать SD карту (передать список файлов)
  • M21 — Инициализировать SD карту
  • M22 — Открыть SD карту
  • M23 — Выбрать файл на SD карте [ M23 3 dbenchy .gcode ]
  • M24 — Начать/возобновить печать с SD карты
  • M25 — Пауза печати с SD карты
  • M26 — Установить позицию SD карты в байтах [ M 26 S4321]
  • M27 — Узнать статус печати с SD карты
  • M28 — Записать файл на SD карту [ M28 3 dbenchy .gcode ]
  • M29 — Окончить запись файла на SD карте
  • M30 — Удалить файл с SD карты [ M30 3 dbenchy .gcode ]
  • M31 — Получить значение, сколько прошло времени с последнего M109
  • M32 — Выбрать файл на SD карте, начать печатать [ M 32 / path / 3 dbenchy # ]
  • M928 — Логирование на SD карту [ M928 3 dbenchy gcode ]

Команды для экструдер а:

  • M82 — Установить экструдер в абсолютную систему координат
  • M83 — Установить экструдер в относительную систему координат
  • M104 — Нагрева экструдера до определенной температуры [ M104 S210] – нагрев до 210 град.
  • M105 — Получить текущую температуру экструдера [ M105 S2]
  • M106 — Включение вентилятора обдува детали [ M106 S255] — мощность 100% , [ M106 S128]- мощность 50%
  • M107 — Выключение вентилятора обдува детали
  • M109 — Нагреть и удерживать температуру экструдера [M109 S210] – температура 210 град

Управление стол для 3d печати:

  • M140 — Установить температуру стола [ M140 S75] – температура 75 град.
  • M190 — Нагреть стол и удерживать температуру [M190 S70] — температура 70 град

PID (параметры для регуляторов температуры):

  • M301 — Записать PID параметры в EEPROM [M301 H1 P1 I2 D3]
  • где: H0 – стол, H1 – экструдер – это обязательные параметры.
  • M302 — Разрешить холодное выдавливание [M302 P1].
  • M303 — Запустить процесс PID калибровки [M303 E-1 C8 S110]
  • где: E-1 – стол, E0 – хотэнд, C8 – количество попыток, S – температура.
  • M304 – Задать PID параметры для стола [M304 P1 I2 D3]

EEPROM – внутренняя память микроконтроллера (не обнуляется при выключении)

  • M500 — Сохранить параметры в EEPROM
  • M501 — Прочитать параметры из EEPROM
  • M502 — Сброс параметров EEPROM

Параметры для пластиковой нити:

  • M200 — Задать диаметр нити [M200 D1.75] – диаметр 1.75
  • M600 – Заменить пластик.

Вообще различных комманд великое множество, а также появляются новые, посмотреть все вы сможете тут — http://reprap.org/wiki/Gcode

А теперь разберем Gcode сформированный программой Ultimaker — Cura , 3 d модель 3 dbenchy с двумя экструдерами. Поддержки печатаем вторым экструдером.

Приложено 2 скриншота, с основными настройками и продвинутыми:

Сопоставить параметры Cura и исходных записей Gcode :

M 190 S 70.000000 – температура стола

M 104 T 1 S 210.000000

M 109 T 0 S 210.000000 — температура первого экструдера 210

M 109 T 1 S 210.000000– температура второго экструдера 210

Дальше описываются параметры первого и второго экструдера + комментарии:

Выбираются единицы измерения, система координат, точки начального отсчета.

M 117 – сообщение о начале печати, если все подготовительные операции выполнены.

M 107 – включается вентилятор.

Дальше идет формирование первого слоя LAYER 0

G0 F5400 X92.570 Y102.081 Z0.300 – Холостой ход со скоростью 90 мм/с. Обратите внимание на продвинутые настройки.

G1 F1200 X93.754 Y101.488 E0.06606 – скорость первого слоя 20 мм/с, расход нити на этот кадр 0.066 мм.

Ниже указывается скорость для структур заполнения:

G1 F4800 E18.03179

G1 F1200 X134.460 Y114.661 E18.06728

G0 F5400 X133.848 Y115.470

Смена экструдера для печати поддержек

Заключительный этап 3 d печати: Перемещение экструдера и стола в исходное положение, отключение нагрева всех элеменетов 3 d принтера и т.д.

G-CODE по-русски для 3D печати (Мини-справочник)

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Часто, для качественной печати, и, особенно, при подборе параметров печати, при калибровке необходимо уметь читать и править G-код.

Банальный пример: установка своих значений для «Температурной башни» или создание стартового и конечного блоков кодов в слайсерах под конкретный принтер.

На некоторых сайтах(вроде reprap.org/wiki/G-code) на русскоязычных страницах команды описаны на русском только частично, а остальное на английском. На некоторых отечественных сайтах команды переведены на русский, но некоторые приведены с ошибками, — тупо копи-паст корявого перевода.

Надоело искать по разным сайтам, пытаясь найти ПРАВИЛЬНОЕ описание той или иной команды и ее параметров.

Сделал себе такой мини-справочник. Буду рад, если кому еще пригодится.

Старался описать максимальное количество используемых команд, кроме совсем уж специфичных.

(Да-да, особые команды для дельт, например, уж простите, считаю специфичными и мне не нужными)

Однако, большинство команд поддерживаются всеми принтерами и прошивками.

Внимание! Соответствие команд и параметров проверены только для прошивки Marlin.

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 вручную(через команды):

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 сетки при печати используйте команду

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 карты

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

Используется для печати с SD карты и работает так же как M23 и M24

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 – Команда для автоматической смены филамента

На какие принтеры устанавливается G-код

Достаточно большое количество известных принтеров функционируют на G-code. Код генерируется практически во всех известных слайсерах, это Slic3er, Chitubox Simplify3D, CreatWare, Cura и легко поддается редактированию с использованием обычного блокнота или Chitubox. Работа аппаратов Anet A8, 3D-принтеров с двумя экструдерами Hercules Strong DUO и профессиональных 3D-принтеров Wanhao Duplicator 6 Plus может перенастраиваться, чтобы достигнуть оптимального результата.
Возможны случаи работы оборудования на зашифрованном G-code. Примером является Zortrax и их Слайсер Z-suite, где происходит генерация файла в расширении Z-code.

Осторожно! В таком случае файлы с помощью блокнота NotePad++, уже не открываются и исключается возможность использования стороннего слайсера с данным принтером.

Когда необходимо использование G-кода

Слайсеры в абсолютном своем большинстве выдают корректный G-код, он в процессе печати обеспечивает великолепный результат, но также есть вероятность, что ручная правка G-код имеет преобладание перед слайсером в следующих случаях:

  • Когда невозможно разобраться в настройке слайсера выдающего ошибку. Это точечная правка файла подготовленного для печати сложной и большой модели.
  • Необходимость изменить температуру экструдера в определенное время печати, если производятся деликатные или определенно важные области ожидаемой модели. Эта специальная настройка используется при отсутствии этого функционала слайсером.
  • При возникновении сложностей на этапе печати сложной большой детали, добавляется специальная команда, к примеру, включить или выключить обдув. Подобное действие решит проблему.

Принцип кодировки команд для 3D-принтера

Каждая строка G-кода — это команда, которую выполняет 3D-принтер. Если ваш принтер “делает что-то не так”, а механика его при этом исправна и настроена правильно, скорее всего дело в коде, где-то в него закралась неверная или находящаяся не на своем месте команда.

Рассмотрим типичную команду:

G1 X-9.2 Y-5.42 Z0.5 E0.0377

В этой кодировке содержится следующая информация:

  • G1 — перемещаться по прямой;
  • Координата X — -9,2 мм;
  • Координата Y — -5,42 мм;
  • Координата Z — 0,5 мм;
  • Экструзия — 0,0377 мм.

Как видно на примере, кодировка G-code имеет простой синтаксис. Разобраться в командах может любой пользователь и помнить их все не обязательно — достаточно иметь под рукой список.

Рекомендуем заглянуть в “Энциклопедию Тридэшника” Там можно найти описание и параметры большинства команд.

В каких случаях использовать G-code?

В абсолютном большинстве случаев слайсеры составляют корректный G-code, который обеспечит отличный результат в процессе печати, но существует несколько сценариев, когда оправдана ручная правка G-code.

Случаи, когда целесообразно переписать G-код:

  • Точечные правки — если уже подготовлен для печати файл крупной сложной модели, но имеется ошибка в настройке слайсера и пользователь не может в этом разобраться. Иногда нужно вручную найти лишнюю команду и исправить её.
  • Специальные настройки — выполнение 3D-принтером определенных действий, таких как изменение температуры экструдера в конкретные моменты времени, при печати деликатных/тонких или просто важных областей модели, если слайсер не имеет такого функционала.
  • Решение проблемы — при печати крупной сложной детали могут возникнуть сложности на определенном этапе. Для устранения проблемы можно добавить специальную команду, например — включение или выключение обдува или добавление ряда своих команд.

Примеры параметров

X — координата по оси X.

Y — координата по оси Y.

Z — координата по оси Z.

I — смещение по X при криволинейном движении.

J — смещение по Y при криволинейном движении.

E — длина экструдируемого филамента от начальной до конечной точки перемещения.

F — скорость холостого перемещения головки или укладки материала.

P — командный параметр, например время в миллисекундах.

S — командный параметр, например время в секундах, температура или напряжение.

T — выбор экструдера.

Примечание: во многих случаях некоторые параметры можно опускать, если они остаются неизменными. Например, приведенная выше команда на холостой ход полностью выглядит так: G91 G0 X100 Y000 Z000 F200, но так как перемещение по осям Y и Z не требуется, можно написать просто G91 G0 X100 F200.

Некоторые из основных команд

G0 — холостой ход, то есть без подачи материала.

G1 — координированное линейное движение.

G2 — координированное криволинейное движение по часовой стрелке.

G3 — координированное криволинейное движение против часовой стрелки.

G4 — пауза в секундах.

G10 — ретракт филамента.

G21 — перейти на измерение в миллиметрах (G20 — в дюймах).

G27 — парковка головки в указанной точке.

G28 — парковка головки «по нулям» с указанием осей.

G90 — использовать абсолютную систему координат.

G91 — использовать относительную систему координат, то есть с отсчетом от текущей позиции головки.

G92 — установить текущую позицию головки.

Пример:

T1 //переключиться с первого экструдера на второй (T1)

G0 F300 //установить скорость перемещения головки 300 мм/c

G0 X10 Y10 //переместить головку в координаты 10 по оси X и 10 по оси Y с заданной ранее скоростью (в нашем случае 300 мм/c)

G1 X80 Y15 E25 F50 //переместить головку в координаты 80 по оси X и 15 по оси Y с одновременной подачей 25 мм филамента, снизить скорость с ранее заданных 300 мм/c до 50 мм/с

G90/G91 – команды режима позиционирования G-кода

С помощью команд G90 и G91 мы сообщаем станку как интерпретировать координаты: G90 — абсолютный режим, G91 — относительный режим .

В абсолютном режиме позиционирование инструмента всегда происходит от абсолютной точки или нуля. Таким образом, команда G01 X10 Y5 переместит инструмент точно в эту точку (10,5), независимо от предыдущей позиции.

С другой стороны, в относительном режиме инструмент позиционируется относительно последней точки. Таким образом, если станок в данный момент находится в точке (10,10), команда G01 X10 Y5 переместит инструмент в точку (20,15). Этот режим также называют «инкрементным режимом».

Дополнительные команды и правила

Итак, команды G-кода, которые мы объяснили выше, являются наиболее распространенными, но их намного больше. Существуют такие команды, как компенсация режущего инструмента, масштабирование, рабочие системы координат, выдержка и т. д.

В дополнение к G-коду существуют также команды М-кода, которые используются при создании реальной полноценной программы G-кода. Вот несколько общих команд М-кода:

  • M00 – остановка программы
  • M02 – конец программы
  • M03 — шпиндель ON — по часовой стрелке
  • M04 — шпиндель ON — против часовой стрелки
  • M05 — останов шпинделя
  • M06 — смена инструмента
  • M08 – подача охлаждающей жидкости ON
  • M09 – охлаждающая жидкость OFF
  • M30 – конец программы

В случае 3D-принтера:

  • M104 — pапустить нагрев экструдера
  • M109 — подождать, пока экструдер не достигнет T0
  • M140 — запустить подогрев нагревательного элемента
  • M190 — подождать, пока кровать не достигнет T0.
  • M106 — установить скорость вентилятора

Некоторым из этих команд нужны соответствующие параметры. Например, при включении шпинделя с помощью M03 мы можем установить скорость шпинделя с помощью параметра S. Таким образом, команда M30 S1000 будет включать шпиндель на скорости 1000 об/мин.

Мы также можем отметить, что многие коды являются модальными , что означает, что они остаются в силе до тех пор, пока не будут отменены или заменены другим кодом. Например, предположим, что у нас есть код для линейного движения резки G01 X5 Y7 F200 . Если следующим движением снова будет линейная резка, мы можем просто ввести координаты X и Y без надписи G01 впереди.

Оцените статью
TutShema
Добавить комментарий