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

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

Хочешь узнать, что такое G-код? Узнай о различных типах, сравнении и о том, как с ними работать!

G-код — это таинственная магия, лежащая в основе всех станков с числовым программным управлением (ЧПУ), таких как 3D-принтеры, лазерные резаки и конечно же, фрезерные станки с ЧПУ. Он служит связующим звеном между цифровыми проектами и физическим производством, переводя эти проекты в точные инструкции, которые машины могут выполнить, чтобы воплотить их в жизнь.

В этой статье мы узнаем об основах G-кода и о том, как он работает в различных приложениях, таких как 3D-печать — моделирование методом послойного наплавления (FDM), 3D-печать на основе смолы и фрезеровка с ЧПУ. Кроме того, мы изучим некоторые полезные навыки работы с G-кодом, такие как редактирование файлов .gcode вручную, понимание того, чем они отличаются для разных машин и как адаптировать G-код к разным прошивкам.

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

G-код позволяет передать 3D-модель станку с ЧПУ в понятном ему виде
G-код позволяет передать 3D-модель станку с ЧПУ в понятном ему виде (Источник: Reddit)

G-код означает «геометрический код», это язык программирования, используемый для управления станками с ЧПУ.

Зачем нам нужен язык программирования для станков с ЧПУ?
Если мы хотим вырезать один куб из дерева на фрезерном станке с ЧПУ, то, управляя станком вручную, это не займет много времени. Однако если мы хотим вырезать 50 кубиков - или что-то более сложное - мы можем просто составить набор команд на языке G-код, который позволит нам автоматизировать процесс управления и сэкономить массу времени. Именно поэтому G-код играет важную роль в любом современном станке с ЧПУ, в том числе и в вашем 3D-принтере!

Разработанный в 1950-х годах как часть революции в области автоматизации, он вскоре стал основой для управления такими станками, как токарные и фрезерные, а позже — 3D-принтерами и другим производственным оборудованием. Но из чего же он состоит?

Базовая структура G-кода

Инструкции G-кода состоят из простых, понятных человеку команд, которые указывают машине, как себя вести. Каждая строка, известная как «блок», представляет собой одну инструкцию или команду, которая состоит из:

  • код команды (например, G01, M104)
  • Параметры, определяющие координаты или настройки (например, X10 Y20 Z5 для позиции или F1500 для скорости подачи).

В G-коде есть два вида команд. Первая — ‘G’, которая управляет движениями в станке, например G28 (перевести все оси в исходное положение). Другой — «M» — управляет функциями, не связанными с движением, например, установкой температуры (M104) или сменой инструмента (M06).

Типы технологий

Snapmaker Artisan: Станок 3-в-1 для 3D-печати, лазерной гравировки и фрезеровки с ЧПУ
Станок 3-в-1 для 3D-печати, лазерной гравировки и фрезеровки с ЧПУ (Источник: YouTube)

Моделирование методом послойного наплавления (FDM) — это метод 3D-печати, при котором объекты создаются слой за слоем путем экструзии расплавленного филамента. Хотя он не может печатать мелкие детали так же хорошо, как фотополимерный 3D-принтер, он по-прежнему популярен среди любителей благодаря своей простоте и доступной цене. G-код специфичен для каждой модели принтера и для самой печати, поскольку разные принтеры имеют разные размеры, механизмы (например, различные системы кинематики) и многое другое.

В отличие от FDM 3D-принтеров, фрезеровка с ЧПУ предполагает вычитание материала из существующей детали. Поэтому вместо инструкций по добавлению материала определенным образом, G-код для фрезеровки с ЧПУ основан на точных практиках субтрактивного производства.

3D-печать на основе смолы, такая как стереолитография (SLA) и цифровая светодиодная проекция (DLP), работает иначе, чем 3D-печать FDM. Концепция FDM основана на выдавливании расплавленного филамента через сопло для создания объекта слой за слоем — как глазурь на торте. С другой стороны, при печати на основе смолы используется светочувствительная смола, которая отверждается (затвердевает) под воздействием контролируемого света, по одному слою за раз. Для этого система управления в основном вращается вокруг движения оси Z и настроек экспозиции, поскольку нет сопла, экструдирующего нить.

Хотя G-код используется в FDM 3D-принтерах, фрезерных станках с ЧПУ и 3D-принтерах на основе смолы, конкретные команды и функции значительно отличаются из-за их различий. Давайте рассмотрим их подробнее.

3D-печать FDM

От набора инструкций к Benchy
От набора инструкций к Benchy (Источник: Reddit)

3D-печать FDM опирается на G-код, который управляет движением печатающей головки, а также точным контролем экструзии. К общим командам относятся:

Движение и позиционирование:

G01 используется для управляемого линейного перемещения, задавая координаты X, Y и Z, а также скорость подачи (скорость перемещения головки инструмента), F. Например, G01 X50 Y25 Z0.3 F1200 перемещает головку инструмента на X=50 мм, Y=25 мм, Z=0,3 мм при скорости подачи 1 200 мм/мин.

Экструзия:

Параметр E используется с параметром G01 для экструзии или отката филамента. Например, G01 X60 Y25 E5 F1500 перемещается на X=60 мм и Y=25 мм при экструзии 5 мм филамента при скорости подачи 1 500 мм/мин. Откат можно выполнить с помощью G01 E-1 F1800, который втягивает 1 мм филамента при скорости подачи 1 800 мм/мин.

Параметры температуры:

Команды типа M104 задают температуру сопла, а M140 используется для подогрева стола. Например, M104 S200 устанавливает температуру сопла на 200 °C, а M140 S60 — температуру стола на 60 °C.
Управление вентилятором: M106 включает вентилятор и задает его скорость, а M107 выключает вентилятор.
Например: M106 S128 устанавливает скорость вентилятора на 50 % (S128 из максимального количества S255).

Управление вентилятором:

M106 включает вентилятор и задает его скорость, а M107 выключает вентилятор.
Например: M106 S128 устанавливает скорость вентилятора на 50 % (S128 из максимального количества S255).

Специфический для FDM G-код часто включает параметры для управления скоростью печати, настройки отката и другие специфические для печати действия, такие как пауза (M0) или замена филамента (M600). Поскольку принтеры FDM работают путем добавления материалов в область сборки, G-код ориентирован на методы аддитивного производства.

Фрезерный станок с ЧПУ

Фрезерный станок с ЧПУ
Фрезерный станок с ЧПУ «срезает» металл с объекта (Источник: YouTube)

Когда речь идет о фрезеровании с ЧПУ, как уже говорилось, движения связаны с удалением материала с заготовки. Например:

Управление траекторией движения инструмента:

Команды G17, G18 и G19 выбирают рабочую плоскость. G17 задает XY-плоскость, G18 — XZ-плоскость, а G19 — YZ-плоскость, обеспечивая точную ориентацию режущего инструмента.

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

Параметр F задает скорость подачи, а S — скорость вращения шпинделя (скорость вращения режущего инструмента). Например, F1000 задает скорость подачи 1 000 мм/мин, а S1200 — скорость вращения шпинделя 1 200 об/мин. Эти параметры имеют решающее значение для управления скоростью и глубиной резания.

Расширенные операции:

Команды G02 и G03 управляют круговой интерполяцией. G02 задает дуги по часовой стрелке, а G03 — против часовой стрелки. Компенсация фрезы осуществляется командами G41 и G42, при этом G41 смещает инструмент влево от траектории реза, а G42 — вправо, что позволяет выполнять точную настройку в зависимости от размера инструмента.

Фотополимерная 3D-печать

Фотополимерные принтеры могут делать некоторые сумасшедшие детали по сравнению с FDM…
Фотополимерные принтеры могут делать некоторые сумасшедшие детали по сравнению с FDM… (Источник: Reddit)

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

Перемещение по оси Z:

Фотополимернику нужно перемещать стол по оси Z только между слоями, что упрощает структуру G-кода по сравнению с FDM, так как оси X и Y не нужны. Например, G1 Z1.2 F150 перемещает платформу сборки на Z=1,2 мм со скоростью 150 мм/мин.

Отверждение слоев:

Команды включают в себя различные настройки времени экспозиции, которые контролируют, как долго смола отверждается под действием ультрафиолетового света для создания каждого слоя, с различными опциями для начального и последующих слоев, например. Например, M106 S255 P10 включает УФ-лампу на 10 секунд.

Операции отслаивания и подъема:

Принтеры для печати на смоле могут включать специальные команды G-кода для отслаивания или подъема между слоями, чтобы уменьшить всасывание и подготовиться к нанесению следующего слоя. Например, G1 Z1.5 F100 слегка приподнимает стол на Z=1,5 мм для отслаивания слоя.

Как можно представить, G-код для FDM обычно более подробный, поскольку содержит команды для температур, экструзии и перемещений по всем трем осям. С другой стороны, G-код для фотополимерной 3D-печати в основном включает команды позиционирования по оси Z и настройки экспозиции. Учитывая, что экструзия филамента не производится, команды, связанные с экструзией или откатом, отсутствуют.

Процесс создания

Чтобы сохранить внесенные изменения, щелкните мышью на Стартовом и Завершающем полях G-кода
Чтобы сохранить внесенные изменения, щелкните мышью на Стартовом и Завершающем полях G-кода

Если вы задаетесь вопросом, нужно ли вам изучать все команды G-кода, чтобы иметь возможность печатать или фрезеровать модель, не стоит беспокоиться.

G-код для FDM и фотополимерной печати генерируется слайсерами, в которые можно импортировать модели, задать настройки 3D-печати и преобразовать (нарезать!) процесс в G-код для вашего принтера.

Для FDM популярны программы Cura и PrusaSlicer, оба с открытым исходным кодом и поддерживают множество принтеров на рынке. Для печати на основе смолы используются собственные слайсеры, например Chitubox и Lychee Slicer. Как уже говорилось, для FDM-печати существует множество параметров и хотя для фотополимерной 3D-печати их не так много, их все равно достаточно много.

Для фрезерных станков с ЧПУ программное обеспечение для автоматизированной обработки (CAM) может помочь подготовить соответствующий G-код на основе дизайна. Autodesk Fusion включает в себя функции как CAD, так и CAM, что делает его лучшим вариантом для проектов с ЧПУ. Как и ожидалось, существует множество других вариантов, в том числе и бесплатных.

Если вы готовите G-код для станков с ЧПУ или 3D-принтеров, это обычно делается автоматически с помощью вышеупомянутого программного обеспечения. Тем не менее, научиться редактировать G-код вручную может быть очень полезным навыком. Давайте рассмотрим это подробнее.

Редактирование G-кода

Можно редактировать G-код с помощью любого текстового редактора, поддерживающего обычный текст, по вашему выбору
Можно редактировать G-код с помощью любого текстового редактора, поддерживающего обычный текст (Источник: All3DP)

Как уже говорилось, редактирование G-кода может быть полезным навыком. Это связано с тем, что он позволяет настраивать операции печати или обработки больше, чем это позволяет сделать слайсер или CAM, а также корректировать настройки на лету или устранять неполадки.

Редактирование G-кода может быть довольно простым, поскольку обычно любой текстовый редактор, поддерживающий обычный текст, отлично подходит для открытия файлов .gcode. Можно использовать Notepad++, Visual Studio Code или любой другой текстовый редактор по вашему выбору. Однако если вы делаете что-то, выходящее за рамки простых изменений, лучше использовать специализированный редактор G-кода, например Repetier-Host или PrusaSlicer. Они обладают такими полезными функциями, как подсветка синтаксиса и автоматическое обнаружение ошибок, поэтому сложные изменения могут быть выполнены легко и безопасно.

После внесения изменений следует также прогнать G-код через визуализатор, чтобы убедиться в отсутствии ошибок. Например, простая пропущенная цифра в командах перемещения инструментальной головки может привести к тому, что она врежется во что-то и нанесет дорогостоящий ущерб. Большинство слайсеров и CAM-инструментов в наши дни поставляются с собственным просмотрщиком G-кода. Если вы хотите использовать отдельный просмотрщик, вам пригодится программа просмотра G-кода OctoPrint или Repetier-Host.

Каждый файл G-кода уникален

Хотя некоторые из них похожи, разница имеет большое значение
Хотя некоторые из них похожи, различия имеют большое значение (Источник: Reddit)

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

Вот некоторые отличия, встречающиеся в файлах G-кода, созданных для разных принтеров FDM:

  • Технические характеристики: Часто включают в себя уникальные настройки, такие как размер стола, ограничения по осям и смещения инструмента, которые могут варьироваться от модели к модели.
  • Разница в прошивках: Различные прошивки (например, Marlin, Klipper, GRBL) по-разному интерпретируют и поддерживают различные команды G-кода (или не поддерживают их вовсе), что влияет на совместимость.
  • Требования к материалам: G-код включает в себя настройки температуры и скорости, специфичные для используемого материала (например, PLA против ABS). Другой материал может работать плохо или вообще не работать из-за неправильных настроек.
  • Особенности принтера: Принтеры с такими функциями, как два экструдера или автоматическое выравнивание стола, требуют отдельных команд в своем G-коде.

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

Разные варианты (FDM)

Klipper предлагает множество возможностей для настройки с помощью макросов
Klipper предлагает множество возможностей для настройки с помощью макросов (Источник: All3DP)

Как уже говорилось, даже для 3D-принтеров FDM не существует универсального G-кода, который работал бы на всех принтерах (независимо от размера и используемых материалов). Каждый принтер работает с определенной прошивкой (которая может быть изменена). Прошивка «переводит» инструкции G-кода для выполнения принтером. Для разных типов прошивок требуются разные «варианты» G-кода, которые, по сути, адаптированы к специфическим особенностям данной прошивки. Давайте рассмотрим три наиболее распространенных варианта прошивки.

Marlin широко используется в 3D-принтерах потребительского класса и поддерживает множество команд, связанных с экструзией, контролем температуры и перемещением, таких как M600 для смены филамента и G92 для установки положения. Он известен своей гибкостью и большой поддержкой сообщества.

Klipper — это современная прошивка, которая повышает производительность, перекладывая сложные вычисления на компьютер (например, Raspberry Pi) вместо того, чтобы полагаться на плату контроллера 3D-принтера. Она поддерживает такие продвинутые функции, как pressure advance и input shaping, изменяя структуру G-кода с помощью расширенных команд, чтобы обеспечить больший контроль над принтером. В первую очередь он ориентирован на высокоскоростную печать.

Прошивка RepRap, изначально разработанная для проекта 3D-принтера RepRap, поддерживает команды, схожие с Marlin, и пользуется популярностью среди DIY и индивидуальных сборщиков благодаря своей адаптивности. Тем не менее, она считается немного устаревшей по сравнению с Marlin и Klipper.

Как и чем отличается G-код

PrusaSlicer также имеет встроенный просмотрщик G-кода, где вы можете визуализировать G-код.
Вы можете визуализировать G-код в программе просмотра G-кода PrusaSlicer (Источник: All3DP)

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

Из-за различий в ограничениях файлы G-кода Marlin, Reprap и Klipper обычно не совместимы друг с другом. При этом основные команды обычно одинаковы во всех прошивках.

Конвертация между прошивками

Если у вас есть G-код, предназначенный, например, для 3D-принтера под управлением Klipper, но вы хотите использовать его на машине с Marlin, есть несколько способов сделать это.

  • Повторная нарезка модели: Если у вас есть оригинальная модель, всегда лучше выбрать нужный вариант в слайсере и нарезать файл заново, чтобы убедиться, что с G-кодом не возникнет проблем.
  • Ручное редактирование: Для этого нужно открыть G-код в текстовом редакторе, определить команды G-кода, специфичные для прошивки, и при необходимости изменить или удалить неподдерживаемые команды. Например, если есть вызов макроса, реализованного в Klipper, вы должны попытаться найти специфический G-код этого макроса и добавить его отдельно для Marlin. Аналогично, расширенный G-код Klipper должен быть заменен стандартным G-кодом Marlin.

Николай

Я всегда рад вашим комментариям, предложениям или новостям из первых уст.

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