Разбираем G-коды реальной программы

Что такое G-код

G-код это язык программирования для станков с числовым программным управлением, коими и являются наши 3D принтеры. Файл с G-кодом в текстовом формате, где каждая строка кода называется кадром. Существует некая базовая часть языка, на основе которой производители станков придумывают свои подмножества языка. Например G-коды Ultimaker и RepRap немного отличаются, и оба они очень примитивны по сравнению с G-кодами для промышленных станков.

G-code

 

Как получить файл с G-кодом?

Для 3D принтеров G-код формируется автоматически программой “слайсером” после загрузки в неё 3D модели детали. В слайсере задаётся технология изготовления детали, на основе которой и формируется G-код.

 

Формируем файл с G-кодом

Рассмотрим G-код сформированный слайсером Cura для обычного RepRap 3D принтера.

Открываем слайсер Cura и перетаскиваем на рабочий стол 3D модель детали в формате STL.

Если 3D принтер не подключен к компьютеру, то можно сохранить файл кликнув мышкой на пиктограмме с изображением дискетки. Если подключен – через меню Файл.

 

Анализируем

Для визуального и покадрового анализа G-кода удобно использовать онлайн сервис Gcode.ws. Что мы и сделаем. Перетаскиваем туда наш файл с G-кодом и переходим на вкладку GCode.

2015-11-30_181114

2015-11-30_182140

2015-11-30_182301

 

Структура файла

Условно программу можно разделить на несколько блоков-этапов:

  1. Комментарии с различной информацией
  2. Подготовительные операции
  3. Рабочая часть – изготовление детали
  4. Заключительные операции

 

Комментарии

Комментарии можно вставлять отдельным кадром или после основных команд. Начинаются они со знака ; “точка с запятой”.

2015-11-30_184251

 

Подготовительные операции

Для 3D принтера перед печатью важно установить точку отсчёта координат и нагреть стол с хотэндом. В Cura подготовительные операции называются start.gcode и находятся во вкладке Start/End-Gcode.

2015-11-30_182423

2015-11-30_192841

Во первых здесь можно настроить первый блок с комментариями. Второй блок рассмотрим покадрово:

M190 S70.000000 – принтер включает нагрев стола и ждёт, пока он не нагреется до заданной температуры 70 градусов

M109 S200.000000 – принтер включает нагрев сопла и ждёт, пока оно не нагреется до заданной температуры 200 градусов

G21 – устанавливает метрическую систему координат

G90 – устанавливает абсолютные перемещения относительно нулей принтера

M82 – устанавливает управление экструдером в абсолютных измерениях

M107 – в начале печати обдув детали отключен

G28 X0 Y0 – перемещение к концевым выключателям осей X и Y для инициализации нулей по этим координатами. Направление перемещения кареток задаётся в прошивке

G28 Z0 – тоже самое теперь и для оси Z

G1 X100 Y100 Z50 {F travel} – точка, в которую выходит сопло перед началом печати

G1 – прямолинейное рабочее перемещение с заданной скоростью F

X100 Y100 Z50 – абсолютные координаты конечной точки для перемещения

{F travel} – скорость перемещения. Видим в G-коде, что она равна 4200, это мм в минуту, а мы везде задаём мм в секунду =70. Здесь участвует координата Z и она самая медленная, значит скорость перемещения ограничивается максимальной скоростью перемещения по оси Z, заданной в прошивке

2015-11-30_191728

2015-11-30_191206

G92 E0 – обнуляет количество выдавленного пластика

G1 F200 E4 – выдавливает E4 – 4 мм прутка со скоростью F200 – 200 мм в минуту

G1 {F travel} – задаёт скорость для дальнейших рабочих перемещений, пока она не изменится следующей командой

M117 Printing…  – выводит на дисплей сообщение Printing…

 

Рабочая часть – изготовление детали

2015-11-30_182140

Рабочая часть состоит в основном из перемещений и выдавливания пластикового расплава.

G0 – холостой ход без выдавливания пластика.

M106 S89 – включился обдув детали со скоростью S89 из диапазона 0-255

Сработало расширение TweakAtZ для уменьшения температуры стола после печати первых слоёв до 50 градусов

2015-11-30_195252

M140 S50.000000 – команда для изменения температуры стола без ожидания и остановок

Отвод сопла для охлаждения детали

2015-11-30_200047

G4 P3879 – Время ожидания в миллисекундах P3879 – 3,879 секунд

2015-11-30_200637

 

Заключительный код

2015-11-30_182455

2015-11-30_182301

M104 S0 – Изменение температуры сопла без ожидания. S0 – отключение нагрева

G91 – устанавливает перемещения в приращениях, то есть если пишем X10, то сопло перемещается на 10 мм в “плюс” относительно текущей координаты. Иногда используется при настройке по оси Z

G1 E-1 F300 – втягивание экструдером E-1 – 1 мм прутка

M84 – отключение шаговых двигателей

 

В заключение

Если посмотреть на страницу wiki с описание G-кодов можно ужаснуться их количеству, а если как мы посмотреть в реальный код, оказывается их используется очень мало и поэтому код легко читается и понимается.

 

Ссылка на обсуждение статьи на форуме.

20

Метки:    2015-11-30      Раздел: Обзор  
Автор: Просмотров: 28 639   1 комментарий



Один комментарий на «Разбираем G-коды реальной программы»

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика