Открыть сервис

G-код

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

История

Разработка G-кода началась в Массачусетском технологическом институте (MIT) в конце 1950-х годов в рамках проекта создания первого станка с ЧПУ. Основой послужил язык APT (Automatically Programmed Tools), созданный Дугласом Россом. В 1960-х годах Ассоциация электронной промышленности (EIA) стандартизировала язык, выпустив спецификацию RS-274. Этот стандарт лёг в основу большинства современных систем ЧПУ.

В 1980-х годах, с распространением персональных компьютеров, появились первые CAM-системы (Computer-Aided Manufacturing), которые автоматически генерировали G-код из 3D-моделей. В 2000-х годах, с развитием реп-рап (RepRap) проекта, G-код стал стандартом для настольных 3D-принтеров, использующих прошивки Marlin, RepRap Firmware и другие. Сегодня G-код остаётся универсальным интерфейсом между управляющей программой и исполнительным механизмом.

Структура и синтаксис

Программа на G-коде представляет собой последовательность строк (кадров). Каждый кадр содержит одну или несколько команд, разделённых пробелами. Команды состоят из адреса (буквы) и числового значения.

Основные адреса

Формат записи

`` N10 G01 X100 Y50 F200 N20 M03 S1500 ``

В данном примере:

Классификация основных G-кодов

Стандарт RS-274 определяет множество кодов, но на практике используется ограниченный набор. Коды делятся на модальные (действуют до отмены) и одномодальные (действуют только в текущем кадре).

Подготовительные функции G

КодОписаниеМодальность
G00Быстрое позиционирование (холостой ход)Модальный
G01Линейная интерполяция (рабочая подача)Модальный
G02Круговая интерполяция по часовой стрелкеМодальный
G03Круговая интерполяция против часовой стрелкиМодальный
G17Выбор плоскости XYМодальный
G18Выбор плоскости XZМодальный
G19Выбор плоскости YZМодальный
G20Единицы измерения — дюймыМодальный
G21Единицы измерения — миллиметрыМодальный
G28Возврат в референтную точку (Home)Одномодальный
G90Абсолютное позиционированиеМодальный
G91Относительное позиционированиеМодальный
G92Установка текущей позиции как заданнойОдномодальный

Вспомогательные функции M

КодОписание
M00Программный останов
M02Конец программы
M03Включение шпинделя по часовой стрелке
M04Включение шпинделя против часовой стрелки
M05Останов шпинделя
M06Смена инструмента
M08Включение охлаждения (СОЖ)
M09Выключение охлаждения
M30Конец программы с перемоткой
M84Отключение шаговых двигателей (для 3D-печати)

Применение

Фрезерная и токарная обработка

В металлообработке G-код управляет перемещением режущего инструмента по заданной траектории. Современные CAM-системы (например, Fusion 360, Mastercam, Siemens NX) автоматически генерируют G-код на основе 3D-модели детали и выбранной стратегии обработки. Оператор станка загружает полученную программу в стойку ЧПУ (например, Fanuc, Siemens, Heidenhain) и запускает обработку.

3D-печать

В аддитивных технологиях G-код управляет движением печатающей головки (экструдера) и подачей филамента. Программа-слайсер (Cura, PrusaSlicer, Simplify3D) преобразует STL-модель в G-код, задавая слои, скорость печати, температуру стола и сопла, ретракцию (откат пластика) и обдув. Типичный фрагмент для 3D-принтера:

`` G28 ; Home all axes G1 Z5 F3000 ; Подъём стола G92 E0 ; Обнуление экструдера G1 F200 E3 ; Выдавливание 3 мм пластика G1 X100 Y100 F1500 ; Перемещение к началу печати ``

Лазерная резка и гравировка

G-код используется для управления лазерными станками. Вместо шпинделя управляется мощность лазера (команда S). Движение головки задаётся по контуру детали. Для гравировки применяется растровый режим, где лазер включается/выключается в зависимости от яркости пикселя изображения.

Плазменная резка

В плазменных станках G-код управляет перемещением плазмотрона. Особенность — необходимость учитывать зазор между соплом и листом металла, а также скорость резки, зависящую от толщины материала.

Ограничения и особенности

Отсутствие единого стандарта

Несмотря на общую основу, разные производители стоек ЧПУ (Fanuc, Siemens, Haas, Mazak) используют собственные диалекты G-кода. Например, команды для смены инструмента или вызова подпрограмм могут различаться. Для 3D-принтеров наиболее распространён диалект Marlin, который также имеет расширения (Marlin G-code).

Читаемость

G-код не является интуитивно понятным для человека. Программы для сложных деталей могут содержать тысячи строк, что делает ручное редактирование трудоёмким. Ошибки в G-коде (например, неправильная скорость подачи или отсутствие команды охлаждения) могут привести к поломке инструмента или браку детали.

Отсутствие ветвлений и циклов

Классический G-код не поддерживает условные операторы (if/else) и циклы (for/while). Для повторяющихся операций используются подпрограммы (команда M98/M99), но их функциональность ограничена. Современные системы ЧПУ (например, Fanuc Macro B) добавляют переменные и арифметические операции, но это не является стандартом.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →