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

G-код означает «геометрический код», это язык программирования, используемый для управления станками с ЧПУ.
Разработанный в 1950-х годах как часть революции в области автоматизации, он вскоре стал основой для управления такими станками, как токарные и фрезерные, а позже — 3D-принтерами и другим производственным оборудованием. Но из чего же он состоит?
Базовая структура G-кода
Инструкции G-кода состоят из простых, понятных человеку команд, которые указывают машине, как себя вести. Каждая строка, известная как «блок», представляет собой одну инструкцию или команду, которая состоит из:
- код команды (например, G01, M104)
- Параметры, определяющие координаты или настройки (например, X10 Y20 Z5 для позиции или F1500 для скорости подачи).
В G-коде есть два вида команд. Первая — ‘G’, которая управляет движениями в станке, например G28 (перевести все оси в исходное положение). Другой — «M» — управляет функциями, не связанными с движением, например, установкой температуры (M104) или сменой инструмента (M06).
Типы технологий

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

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-код ориентирован на методы аддитивного производства.
Фрезерный станок с ЧПУ

Когда речь идет о фрезеровании с ЧПУ, как уже говорилось, движения связаны с удалением материала с заготовки. Например:
Команды 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-печать

Мы уже узнали о том, как выглядят типичные операции с G-кодом для FDM-печати. Принтеры на смоле обычно используют G-код следующим образом:
Фотополимернику нужно перемещать стол по оси 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-код для FDM и фотополимерной печати генерируется слайсерами, в которые можно импортировать модели, задать настройки 3D-печати и преобразовать (нарезать!) процесс в G-код для вашего принтера.
Для FDM популярны программы Cura и PrusaSlicer, оба с открытым исходным кодом и поддерживают множество принтеров на рынке. Для печати на основе смолы используются собственные слайсеры, например Chitubox и Lychee Slicer. Как уже говорилось, для FDM-печати существует множество параметров и хотя для фотополимерной 3D-печати их не так много, их все равно достаточно много.
Для фрезерных станков с ЧПУ программное обеспечение для автоматизированной обработки (CAM) может помочь подготовить соответствующий G-код на основе дизайна. Autodesk Fusion включает в себя функции как CAD, так и CAM, что делает его лучшим вариантом для проектов с ЧПУ. Как и ожидалось, существует множество других вариантов, в том числе и бесплатных.
Если вы готовите G-код для станков с ЧПУ или 3D-принтеров, это обычно делается автоматически с помощью вышеупомянутого программного обеспечения. Тем не менее, научиться редактировать G-код вручную может быть очень полезным навыком. Давайте рассмотрим это подробнее.
Редактирование G-кода

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

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

Как уже говорилось, даже для 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-код

Различия возникают потому, что каждая прошивка разработана для удовлетворения конкретных требований. Например, 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.







