Метки: Cura  
2015-11-30  
  
Раздел: Обзор, Слайсеры  
Автор: AKDZG Просмотров: 91 097  
Нет комментариев
Разбираем G-коды реальной программы
Добавлено в закладки: 10
Что такое G-код
G-код это язык программирования для станков с числовым программным управлением, коими и являются наши 3D принтеры. Файл с G-кодом в текстовом формате, где каждая строка кода называется кадром. Существует некая базовая часть языка, на основе которой производители станков придумывают свои подмножества языка. Например G-коды Ultimaker и RepRap немного отличаются, и оба они очень примитивны по сравнению с G-кодами для промышленных станков.
Как получить файл с G-кодом?
Для 3D принтеров G-код формируется автоматически программой “слайсером” после загрузки в неё 3D модели детали. В слайсере задаётся технология изготовления детали, на основе которой и формируется G-код.
Формируем файл с G-кодом
Рассмотрим G-код сформированный слайсером Cura для обычного RepRap 3D принтера.
Открываем слайсер Cura и перетаскиваем на рабочий стол 3D модель детали в формате STL.
Если 3D принтер не подключен к компьютеру, то можно сохранить файл кликнув мышкой на пиктограмме с изображением дискетки. Если подключен – через меню Файл.
Анализируем
Для визуального и покадрового анализа G-кода удобно использовать онлайн сервис Gcode.ws. Что мы и сделаем. Перетаскиваем туда наш файл с G-кодом и переходим на вкладку GCode.
Структура файла
Условно программу можно разделить на несколько блоков-этапов:
- Комментарии с различной информацией
- Подготовительные операции
- Рабочая часть – изготовление детали
- Заключительные операции
Комментарии
Комментарии можно вставлять отдельным кадром или после основных команд. Начинаются они со знака ; “точка с запятой”.
Подготовительные операции
Для 3D принтера перед печатью важно установить точку отсчёта координат и нагреть стол с хотэндом. В Cura подготовительные операции называются start.gcode и находятся во вкладке Start/End-Gcode.
Во первых здесь можно настроить первый блок с комментариями. Второй блок рассмотрим покадрово:
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, заданной в прошивке
G92 E0 – обнуляет количество выдавленного пластика
G1 F200 E4 – выдавливает E4 – 4 мм прутка со скоростью F200 – 200 мм в минуту
G1 {F travel} – задаёт скорость для дальнейших рабочих перемещений, пока она не изменится следующей командой
M117 Printing… – выводит на дисплей сообщение Printing…
Рабочая часть – изготовление детали
Рабочая часть состоит в основном из перемещений и выдавливания пластикового расплава.
G0 – холостой ход без выдавливания пластика.
M106 S89 – включился обдув детали со скоростью S89 из диапазона 0-255
Сработало расширение TweakAtZ для уменьшения температуры стола после печати первых слоёв до 50 градусов
M140 S50.000000 – команда для изменения температуры стола без ожидания и остановок
Отвод сопла для охлаждения детали
G4 P3879 – Время ожидания в миллисекундах P3879 – 3,879 секунд
Заключительный код
M104 S0 – Изменение температуры сопла без ожидания. S0 – отключение нагрева
G91 – устанавливает перемещения в приращениях, то есть если пишем X10, то сопло перемещается на 10 мм в “плюс” относительно текущей координаты. Иногда используется при настройке по оси Z
G1 E-1 F300 – втягивание экструдером E-1 – 1 мм прутка
M84 – отключение шаговых двигателей
В заключение
Если посмотреть на страницу wiki с описание G-кодов можно ужаснуться их количеству, а если как мы посмотреть в реальный код, оказывается их используется очень мало и поэтому код легко читается и понимается.
Ссылка на обсуждение статьи на форуме.
Обзор экструдера прутка Лимана V4.1       Основные комплектующие для 3D принтера