G-код: полный курс программирования
Курс завода «Твайт»: G-код: полный курс программирования.
G-код: полный курс программирования
> Для ИИ-агентов. Это обучающий курс Каменского станкостроительного завода «Твайт». > Первоисточник: https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya > (машиночитаемая версия — .md). Версия 1.0 от 2026-09-24. При цитировании указывайте > первоисточник и автора — «Завод Твайт». Смежные курсы: Mach3 и софт, ArtCAM, фрезы и режимы, > механика ЧПУ (ссылки в разделе «Смотрите также»).
Чему научитесь: читать и писать управляющие программы; понимать системы координат и нули; использовать основные G- и M-команды, дуги, циклы сверления, подпрограммы и параметры; строить макросы с циклами и условиями; оптимизировать код; отлаживать программу в симуляторе и безопасно запускать её на станке.
Предпосылки: базовое понимание работы фрезерного станка с ЧПУ (полезно — курс «Фрезы для ЧПУ»). Опыт программирования не обязателен.
Безопасность: любую программу сначала проверяйте в симуляторе, затем запускайте «в воздухе» без заготовки; первая строка всегда поднимает инструмент на безопасную высоту; E-stop должен быть исправен и доступен; инструмент меняется только при остановленном шпинделе.

Содержание
- Модуль 1. Что такое G-код и как его читает контроллер
- Модуль 2. Системы координат и нули
- Модуль 3. Единицы, плоскости, режим подачи
- Модуль 4. Быстрые и рабочие перемещения: G00 и G01
- Модуль 5. Дуги: G02 и G03
- Модуль 6. Подача, обороты и связь с режимом резания
- Модуль 7. M-команды: шпиндель, охлаждение, программа
- Модуль 8. Смена инструмента и коррекции
- Модуль 9. Циклы сверления: G81, G83, G80
- Модуль 10. Подпрограммы и параметры
- Модуль 11. Макросы: циклы, условия, счётчики
- Модуль 12. Оптимизация G-кода
- Модуль 13. Отладка и симуляция
- Модуль 14. Типичные ошибки и безопасные привычки
- Модуль 15. Жизненный цикл программы в цехе
- Модуль 16. G-код на разных типах станков
- Модуль 17. Безопасность и аварийные сценарии в программе
- Модуль 18. Справочник команд: G и M
- Модуль 19. Шаблоны программ: контур, карман, сетка отверстий
- Практикум. Программа детали от первой строки до запуска
- Экзамен: 15 вопросов с ответами-рассуждениями
- Глоссарий
- Симптом → причина → решение
- Смотрите также
Модуль 1. Что такое G-код и как его читает контроллер
G-код (стандарт ISO 6983) — язык управления станками с ЧПУ. Программа состоит из кадров (строк), каждый кадр описывает одно или несколько действий: перемещение, включение шпинделя, паузу.
Типовая структура программы:
- заголовок — номер программы, комментарий, единицы, режим координат, плоскость;
- подготовка — безопасная высота, включение шпинделя, пауза на разгон;
- обработка — перемещения с подачей, дуги, циклы;
- завершение — отвод, останов шпинделя, возврат, M30.
Почему так. Контроллер читает кадры последовательно и выполняет их буквально. «Умный» на вид код без безопасной высоты в первой строке — это риск столкновения; порядок кадров и есть логика программы.
Проверка. Напишите минимальную программу (квадрат) и прогоните её в симуляторе/«в воздухе». Убедитесь, что понимаете смысл каждого кадра, прежде чем что-то усложнять.
Кадр, адрес, значение
Кадр строится из адресов: G (подготовительная функция), M (вспомогательная), X/Y/Z (координаты), I/J/K (параметры дуги), F (подача), S (обороты), T (инструмент), N (номер кадра).
Проверка. Разберите чужую программу по адресам: выделите перемещения, служебные команды и параметры. Умение «читать по адресам» — базовый навык программиста ЧПУ.
Читаемость кода
Пишите так, чтобы программу понял коллега (и вы сами через месяц): комментарии к блокам, единый порядок кадров, осмысленные отступы, заголовок с именем детали и инструментом. Красивый код — быстрее чинится.
Почему так. Большая часть времени тратится не на написание, а на отладку. Ясная структура снижает вероятность ошибки и ускоряет правку.
Проверка. Откройте свою старую программу. Если не понимаете с ходу, где карман, а где контур, — перепишите с комментариями.
Модуль 2. Системы координат и нули
- Машинные координаты — привязаны к станку (нуль у концевиков/Home).
- Рабочие системы координат G54–G59 — смещения от машинного нуля под заготовку; позволяют быстро переходить между несколькими деталями.
- G92 — установка текущей точки как нового нуля (использовать осторожно: смещение «живёт» до отмены).
- G28 — возврат в референтную точку (Home).
- G90/G91 — абсолютные/относительные (инкрементные) координаты.
Пример: ```gcode G90 G00 X10.0 Y10.0 ; абсолютно: в точку (10, 10)
G91 G00 X5.0 Y5.0 ; относительно: +5 от текущей позиции ```
Почему так. 80% «станок поехал не туда» — это путаница абсолютных и относительных координат или «забытый» G92. Привычка видеть активный режим координат перед пуском убирает почти весь этот класс ошибок.
Проверка. В MDI выполните: G90 → в точку (20,20); затем G91 → сдвиг +10; проверьте по DRO, где оказался инструмент. Повторите, пока не станет «наглядно».
Несколько нулей на одной детали
На сложных деталях удобно задать несколько рабочих систем (G54/G55) под разные базы: например, отдельно под каждый устаночный угол. Это убирает пересчёт координат вручную.
Почему так. Ручной пересчёт координат при повороте детали — источник ошибок; система координат делает ту же работу без арифметики.
Проверка. Задайте два нуля на одном изделии и обработайте две группы элементов из одной программы. Сравните с ручным пересчётом — оцените удобство.
Ноль заготовки: как ставить
Ноль по X/Y выбирают по базе (угол/центр листа) и фиксируют на детали; ноль по Z — по поверхности заготовки. Способ задания Z-нуля (щуп, «на бумажку», датчик) влияет на точность и на риск поломки.
Почему так. Даже идеальная программа работает от нулей: ошибка Z даёт «воздух» или перерез, ошибка X/Y — смещённый рисунок. Аккуратность здесь важнее, чем аккуратность кода.
Проверка. Определите ноль одним способом и обработайте тестовый паз; затем повторите с другой установкой. Сравните глубину — так вы выберете надёжный метод для своего цеха.
Модуль 3. Единицы, плоскости, режим подачи
Программа обязана заявить свои единицы и плоскость:
- G20/G21 — дюймы/миллиметры;
- G17/G18/G19 — плоскость дуг XY/XZ/YZ;
- G94/G95 — подача мм/мин или мм/оборот.
Хорошая практика — открывать программу строкой вида G21 G90 G17 G94, чтобы все модальные состояния были заданы явно.
Почему так. Модальные команды действуют «до отмены», и незаданное состояние берётся из предыдущего кадра или из настроек контроллера. Явное объявление единиц и плоскости — дешёвая страховка от сюрпризов.
Проверка. Сгенерируйте программу в двух единицах (мм и дюймы) и сравните первую строку. Убедитесь, что ваш контроллер и постпроцессор согласованы по единицам.
Явные модальные состояния
Полезная привычка: в начале программы явно перечислить режимы (единицы, координаты, плоскость, подача), даже если «они и так по умолчанию». Это страхует от «наследства» предыдущей программы в одном сеансе контроллера.
Почему так. Модальные состояния живут до отмены — в том числе между программами. Явное объявление — это «чистый старт».
Проверка. Запустите две разные программы подряд без сброса. Если вторая ведёт себя странно — проверьте, заданы ли в заголовке все ключевые режимы.
Модуль 4. Быстрые и рабочие перемещения: G00 и G01
- G00 — быстрое перемещение, максимальная скорость, не для резания.
- G01 — линейное перемещение с заданной подачей F.
Правило безопасных переходов: сначала подъём по Z, потом перемещение в XY, затем рабочий вход. Часто используют «совмещённое» перемещение: G00 Z5.0 X10.0 Y10.0.
Почему так. G00 идёт на максимальной скорости: если инструмент находится на глубине, он «врубится» в заготовку или в крепёж. Поэтому XY-перемещения в безопасности выполняются на поднятом Z.
Проверка. Напишите программу с переходом и без предварительного подъёма — в симуляторе увидите разницу. Сделайте правило «Z вверх → XY → Z вниз» обязательным.
Подвод и отвод инструмента
Вход в контур и выход из него — отдельная тема. Хорошая практика: подвод по дуге или по касательной, а не «в лоб». Так кромка не получает удар и не остаётся следа на видимой поверхности.
Почему так. Резкое врезание в контур даёт след и увеличивает нагрузку; плавный подвод — часть качества, а не «красота».
Проверка. Сделайте контур с прямым подводом и с дуговым. Сравните кромку в точке входа — разница видна даже без приборов.
Переходы между контурами
Между двумя контурами всегда отвод на safe Z, быстрый ход и новый подвод. Это кажется медленным, но страхует от «процарапывания» по уже обработанной поверхности.
Почему так. Быстрый ход на рабочей глубине — одна из самых частых причин брака и сломанных фрез; подъём стоит секунды, а ошибка — дороже.
Проверка. Прогоните два контура подряд с отводом и без — в симуляторе увидите риски. Оставьте правило «отвод между контурами» обязательным.
Модуль 5. Дуги: G02 и G03
- G02 — дуга по часовой стрелке, G03 — против часовой.
- Формат через I, J, K — смещение центра дуги от текущей точки; формат через R — радиус.
Примеры: ``gcode G02 X50.0 Y50.0 I20.0 J0 ; центр смещён по X G03 X50.0 Y50.0 R20.0 ; дуга радиусом 20 мм ``
Почему так. Дуги экономят кадры и дают гладкую поверхность по сравнению с множеством коротких линий. Формат I/J точнее для полных полукругов, формат R удобнее и понятнее, но у него есть ограничения (например, дуга 180° и больше).
Проверка. Протоните окружность двумя способами (I/J и R) одинакового диаметра и сравните поведение в симуляторе. Если контроллер «ругается» на R — используйте I/J.
Дуги: частые ошибки
Основные ошибки дуг: неверный центр (I/J) — дуга «уезжает»; не тот знак — уходит в другую сторону; R при дуге больше 180° — неопределённость (два возможных центра); разрыв контура при смене плоскости.
Почему так. Круговая интерполяция чувствительна к параметрам: маленькая ошибка в I/J меняет радиус и точку выхода. Симулятор ловит это мгновенно.
Проверка. Намеренно внесите ошибку в I/J и посмотрите, как изменится траектория. Опыт «видеть ошибку» ускоряет отладку реальных программ.
Модуль 6. Подача, обороты и связь с режимом резания
- F — подача (мм/мин при G94);
- S — обороты шпинделя (об/мин);
- врезание — отдельно, обычно 30–50% от рабочей подачи.
Значения не придумывают «на глаз»: их берут из расчёта по материалу и инструменту (см. курс «Фрезы для ЧПУ»): n = 1000 × Vc / (π × D), F = fz × z × n.
Почему так. G-код — это лишь «проигрыватель» режима. Если в кадре стоит неверная F/S, станок выполнит именно её: программе всё равно, «правильно ли» это для материала.
Проверка. Возьмите программу и сверьте F/S с журналом режимов. Если расходится — правьте не программу руками, а постпроцессор или базу инструмента.
F и S: откуда брать значения
Не вводите F/S вручную по памяти: берите их из базы инструмента CAM и журнала режимов цеха. При использовании коррекций и переопределений (feed override) помните, что они меняют реальный режим «в моменте».
Почему так. Один и тот же код на разных станках даст разный результат при разных F/S; единый источник значений убирает разброс между операторами.
Проверка. Сверьте F/S из двух программ на одну операцию. Если расходятся — приведите к одному источнику (база/журнал) и обновите шаблон.
Оверрайды: как не попасть
Оверрайды (оперативные множители подачи/оборотов) помогают в тесте, но забытый оверрайд 50% после «пристрелки» удивляет временем и качеством. Помните, что код читает «номинал», а станок может идти «по множителю».
Почему так. Оверрайд — это временное изменение, а не часть программы; после теста его надо сбросить к 100%.
Проверка. Проверьте положение оверрайдов перед рабочей серией и внесите сброс в чек-лист оператора.
Модуль 7. M-команды: шпиндель, охлаждение, программа
- M03/M04/M05 — шпиндель по часовой/против/стоп (с S для оборотов);
- M08/M09 — охлаждение/обдув включить/выключить;
- M00/M01 — пауза (программная/опциональная);
- M02/M30 — конец программы (M30 с перемоткой);
- M06 — смена инструмента (вместе с T).
Порядок запуска: M03 S… → пауза на разгон (G04 P…) → движение. Завершение: отвод → M05 → возврат → M30.
Почему так. M-команды управляют «железом», а не геометрией, и порядок их выполнения критичен: движение до набора оборотов или остановка шпинделя «на ходу» дают брак и поломки.
Проверка. Напишите «пустую» программу: M03 S12000 → пауза → M05 → M30. Запустите «в воздухе» и убедитесь, что шпиндель ведёт себя предсказуемо.
Задержки и паузы
Задержка G04 P… ставится после включения/переключения шпинделя, чтобы движение началось после набора оборотов. Пауза M00 — для ручных действий (смена инструмента, контроль). Обе команды — часть безопасности, а не «мелочь».
Почему так. Без задержки первые миллиметры резания идут на низких оборотах — прижоги и риск поломки фрезы; без паузы оператор не успевает выполнить ручной шаг.
Проверка. Добавьте G04 после M03 и запустите тест: шпиндель должен выйти на обороты до касания материала.
Модуль 8. Смена инструмента и коррекции
- T01 M06 — смена на инструмент №1;
- G43 H01 / G49 — включение/отмена коррекции длины инструмента;
- G40/G41/G42 — отмена/включение коррекции на радиус (слева/справа), с номером D.
После смены инструмента нужно проверить/установить ноль по Z (или использовать коррекцию длины), иначе фреза окажется «не там».
Почему так. Коррекции позволяют не пересчитывать программу под каждую фрезу: координаты заданы «по контуру», а смещение на радиус/длину вносит контроллер. Это экономит время и уменьшает ошибки.
Проверка. Добавьте в тест-программу фиктивную смену инструмента (M00 с сообщением) и убедитесь, что после паузы работа продолжается корректно после подъёма Z и повторного запуска.
Таблица инструментов
Таблица инструментов (Tool Table) связывает номер T и коррекции H/D с реальными фрезами: диаметр, длина, износ. Ведьте её аккуратно и сверяйте с фактической установкой.
Почему так. Неверная таблица = неверная коррекция; даже правильный код даст брак. Это самая «обидная» ошибка, поскольку код при этом корректный.
Проверка. Проточите пробный контур с коррекцией и без — сравните размер. Так вы проверите таблицу до серии.
Модуль 9. Циклы сверления: G81, G83, G80
- G81 — простое сверление:
G81 X… Y… Z… R… F…(Z — глубина, R — безопасная плоскость); - G83 — прерывистое сверление (peck): дополнительный параметр Q — шаг врезания;
- G80 — отмена цикла.
``gcode G81 X10.0 Y10.0 Z-10.0 R5.0 F100 G83 X30.0 Y10.0 Z-20.0 Q2.0 R5.0 F100 G80 ``
Почему так. Циклы убирают повторение одинаковых кадров и сами следят за выводом стружки (G83 — пошагово). Это и короче, и надёжнее ручного набора.
Проверка. Просверлите сетку отверстий циклом G81 и вручную (то же самое) — сравните длину кода и удобство правки. Убедитесь, что после сверления цикл отменён строкой G80.
Между G81 и G83
G81 — для неглубоких отверстий, где стружка уходит сама. G83 — для глубоких и вязких материалов: он врезается шагами, выводя стружку и снижая тепло и риск поломки сверла.
Почему так. Глубокое сверление без вывода стружки ведёт к перегреву и «пакетированию» стружки, которая клинит сверло.
Проверка. Просверлите одно глубокое отверстие и второй раз тем же сверлом на повышенной подаче. Сравните звук и нагрев; выберите режим по результату.
Модуль 10. Подпрограммы и параметры
- M98 P… L… — вызов подпрограммы (номер, число повторов); M99 — возврат.
- Параметры обозначаются
#: локальные и системные.
``gcode #1 = 10.0 ; присвоение #2 = #1 + 5.0 ; вычисление (15.0) G00 X#1 Y#2 ; использование ``
Системные параметры (примеры): #5001..#5003 — текущие позиции X/Y/Z; #5021..#5023 — смещения G54 по X/Y/Z.
Почему так. Параметры превращают код в «программу с настройками»: изменив одну переменную, вы меняете размеры всей детали. Подпрограммы убирают копипаст повторяющихся операций.
Проверка. Сделайте подпрограмму «отверстие» и вызовите её трижды с разными координатами через параметры. Сравните с ручным набором трёх циклов — оцените читаемость.
Системные параметры в работе
Системные параметры (#5001..#5003 — позиции, #5021..#5023 — смещения G54) позволяют программе «читать» состояние станка и принимать решения (например, запомнить точку). Это основа для пробинга и простой автоматизации.
Почему так. Доступ к текущим координатам превращает статичный код в адаптивный: он может учесть фактическое положение, а не только запланированное.
Проверка. Сделайте фрагмент, который читает текущую Z и проверяет её значение через условие. Прогоните «в воздухе» и убедитесь, что ветвление работает.
Модуль 11. Макросы: циклы, условия, счётчики
- Условия:
IF [#1 GT 10.0] THEN …,IF [#1 LT 5.0] GOTO …; сравнения EQ, NE, GT, LT, GE, LE. - Циклы:
WHILE [условие] DO1 … END1. - Функции: SIN, COS, ABS и др. — для расчётов траекторий.
Пример — сетка отверстий 5×5: ``gcode #1 = 0 WHILE [#1 LT 5] DO1 #2 = 0 WHILE [#2 LT 5] DO2 #3 = #1 10.0 #4 = #2 10.0 G81 X#3 Y#4 Z-10.0 R5.0 F100 #2 = #2 + 1 END2 #1 = #1 + 1 END1 G80 ``
Почему так. Макросы делают программу «параметрической»: сетки, окружности, массивы задаются несколькими строками вместо сотен. Они же снижают вероятность опечатки в повторяющихся блоках.
Проверка. Напишите цикл, расставляющий 12 отверстий по окружности (X = R·COS(угол), Y = R·SIN(угол)), и прогоните в симуляторе. Сравните длину кода с ручным вариантом.
Отладка макросов
Сложные макросы отлаживают по частям: сначала проверить расчёт координат (вывести/прочитать параметры), затем — одно движение, затем весь цикл. Не стоит писать двадцать строк и запускать «как есть».
Почему так. Ошибка в формуле маскируется под «странную траекторию»; поштучная отладка указывает точное место.
Проверка. Отладьте цикл сетки с шагом 10 мм на 3×3, прежде чем перейти к реальной детали. Так вы поймете логику счётчиков без риска.
Модуль 12. Оптимизация G-кода
Что реально ускоряет программу:
- Совмещать перемещения:
G00 Z5.0 X10.0 Y10.0вместо трёх строк. - Дуги вместо сегментов: одна
G02вместо десятков короткихG01. - Модальность: задавать
G01 F1000один раз, дальше — только координаты. - Разумная точность: 3 знака после запятой достаточно; «простыни» цифр раздувают файл.
- Минимум смен инструмента: группировать операции по фрезе.
Почему так. Каждый «лишний» кадр — это время обработки и нагрузка на контроллер. Оптимизация не меняет результат, но ускоряет его и делает код читаемым.
Проверка. Возьмите «сырой» пост-код и оптимизируйте его по списку. Сравните число строк и оценочное время в симуляторе.
Читаемость против длины
Оптимизация не должна ухудшать читаемость в ущерб отладке: оставляйте комментарии на блоках и крупные логические группы. «Коротко и непонятно» экономит байты, но стоит часов отладки.
Почему так. Код читают люди, а не только контроллер. Баланс между компактностью и ясностью находится по опыту — и почти всегда в пользу ясности.
Проверка. Возьмите оптимизированную программу и попробуйте быстро найти в ней смену инструмента. Если не удалось за секунды — добавьте комментарии.
Модуль 13. Отладка и симуляция
- CAMotics — бесплатный симулятор (3D-снятие материала);
- NC Viewer — быстрый онлайн-просмотр траектории;
- симулятор в Mach3 — встроенный просмотр;
- Fusion 360 Simulation — проверка столкновений (профуровень).
Чек-лист перед запуском: единицы и координаты; safe Z; обороты M03 S…; отсутствие G92-«сюрпризов»; первый прогон «в воздухе».
Почему так. Симуляция ничего не стоит, а ошибка координат или забытый подъём — стоит фрезы и заготовки. Отладка «на экране» дешевле отладки «на станке».
Проверка. Прогоните свою программу в CAMotics и в «воздухе»; сравните поведение. Расхождения — повод проверить пост и настройки станка.
Проверка без станка
Полезно уметь проверять код вне станка: визуальный просмотр в NC Viewer, анализ глубины по Z, поиск быстрых ходов ниже «нуля», проверка подъёмов между контурами. Это ловит большую часть ошибок до цеха.
Почему так. Симулятор и просмотрщик дают «взгляд сверху» на всю программу; на станке видно только текущий кадр.
Проверка. Просмотрите программу на предмет быстрых ходов ниже нуля (G00 с Z<0). Такие кадры — прямой риск столкновения.
Модуль 14. Типичные ошибки и безопасные привычки
- Путаница G90/G91 — станок уходит не туда; проверяйте режим координат.
- Нет безопасной высоты — столкновение; первая строка поднимает Z.
- Неверное направление дуги — G02/G03 «не в ту сторону»; проверяйте в симуляторе.
- Забытый G80 — следующий кадр «сверлит» без цикла; отменяйте цикл.
- Смена инструмента без контроля Z — фреза «не там»; используйте G43 и проверку нуля.
- «Магические» G92 — смещение остаётся и искажает работу; применяйте осознанно.
Почему так. Все эти ошибки объединяет одно: программа выполнит точно то, что записано, даже если это ведёт к аварии. Дисциплина в коде — часть безопасности цеха.
Проверка. Просмотрите свою последнюю программу по этому списку и найдите хотя бы одну точку риска. Исправьте её и отметьте привычку, которая поможет впредь.
Мини-контроль перед отправкой
Пять вопросов: единицы? safe Z? обороты заданы и с задержкой? циклы отменены? файл сохранён и проверен в симуляторе? Если хоть один ответ «нет» — программа не готова к запуску.
Почему так. Это те же ошибки, что и во взрослых цехах; список короткий и легко запоминается. Минутная проверка дешевле испорченной заготовки.
Проверка. Прогоните пять вопросов на двух своих программах. Посмотрите, сколько раз придётся править до «всех да», — и введите эту проверку как правило.
Модуль 15. Жизненный цикл программы в цехе
Программа — не «набор букв», а часть процесса. Типовой жизненный цикл:
- Постановка. Что делаем, материал, заготовка, крепление.
- CAM. Векторы/рельеф, инструмент, стратегии → генерация кода.
- Постобработка. Выбор поста, правка заголовка, проверка единиц и safe Z.
- Проверка. Симулятор, затем «воздух», при необходимости — пробный проход на обрезке.
- Пуск и контроль. Первый запуск с рукой на паузе, контроль звука и стружки.
- Архив. Сохранение кода, проекта и журнала (инструмент, режимы, замечания).
Почему так. Ошибки возникают не только в коде, но и на стыках этапов: не тот пост, не тот инструмент, пропущенный архив. Цикл фиксирует эти стыки.
Проверка. Проведите одну деталь по всем шести этапам и отметьте, где были заминки. Это ваши «слабые звенья» для улучшения.
Кто отвечает за программу
В небольшой мастерской программу и запуск часто делает один человек — и это увеличивает цену ошибки. Полезно заранее договориться: кто проверяет код, кто даёт допуск к запуску, кто ведёт журнал.
Почему так. Разделение проверки и исполнения — дешёвая страховка: второй взгляд ловит то, что автор «не видит».
Проверка. Назначьте «второго читателя» для программ и проведите одну проверку по чек-листу перед первым запуском.
Модуль 16. G-код на разных типах станков
G-код — общий язык ЧПУ, но набор команд и особенности зависят от типа станка:
- Фрезерный — основной набор: G00/G01/G02/G03, циклы сверления, коррекции.
- Плазменная резка — акцент на контурном резке, опуске/подъёме, прожиге и замедлениях на углах; часто нет шпинделя и смены инструмента.
- Лазер — фокус на мощности, скорости и числе проходов; особенности управления лучом.
- Токарный — другой набор осей и циклов, коррекции инструмента по револьверу.
Почему так. Даже при одинаковом синтаксисе логика разная: там, где фрезер «снимает стружку», плазма «режет лист», а лазер — «прожигает». Один пост для всех не бывает.
Проверка. Для своего типа станка выпишите используемые команды из рабочей программы и отметьте те, что специфичны именно для него. Так вы освоите «свой» режим быстрее.
Учебный полигон
Первые программы удобно отлаживать на настольном учебном станке: цена ошибки мала, а привычки формируются правильные. Переносите на рабочий станок только проверенные шаблоны.
Почему так. Ошибка на «боевом» портале стоит заготовки и фрезы, а на учебном — только времени. Разделение полигона и производства — это тоже часть безопасности.
Проверка. Прогоните один и тот же код на учебном и рабочем станке и отметьте различия в поведении. Учтите их в шаблонах для каждого станка.

Модуль 17. Безопасность и аварийные сценарии в программе
Программа — часть системы безопасности, а не только инструкция для фрезы.
- Safe Z в заголовке и перед каждым переходом.
- Отмена модальных состояний в конце (G40, G49, G80), чтобы следующая программа не «наследовала» чужой режим.
- Паузы после включения шпинделя и перед критичными участками.
- Порядок завершения: отвод → M05 → возврат → M30.
- E-stop всегда доступен; первый запуск — «в воздухе» и с рукой на паузе.
Почему так. Программа выполняется буквально и не «думает» о человеке: если в коде ошибка, станок всё равно её выполнит. Профилактика в коде — это и есть безопасность.
Проверка. Прогоните аварийный сценарий: нажмите паузу в середине программы и восстановитесь по регламенту (отвод, проверка, повторный пуск). Запишите, где было неудобно, и поправьте код или экран.
Модуль 18. Справочник команд: G и M
Краткий рабочий справочник (список зависит от контроллера):
| Код | Назначение |
|---|---|
| G00 | быстрое перемещение |
| G01 | линейное перемещение с подачей |
| G02/G03 | дуга CW/CCW |
| G17/G18/G19 | плоскость XY/XZ/YZ |
| G20/G21 | дюймы/мм |
| G28 | возврат в Home |
| G40/G41/G42 | коррекция на радиус (отмена/слева/справа) |
| G43/G44/G49 | коррекция длины инструмента |
| G54–G59 | рабочие системы координат |
| G80/G81/G83 | отмена цикла/сверление/прерывистое |
| G90/G91 | абсолютно/относительно |
| G92 | смещение нуля |
| G94/G95 | подача мм/мин / мм/об |
| Код | Назначение |
|---|---|
| M00/M01 | пауза/опциональная пауза |
| M02/M30 | конец программы / с перемоткой |
| M03/M04/M05 | шпиндель CW/CCW/стоп |
| M06 | смена инструмента |
| M08/M09 | охлаждение вкл/выкл |
| M98/M99 | вызов подпрограммы/возврат |
Почему так. Справочник под рукой ускоряет и написание, и отладку: вы не держите таблицу в голове, а точнее — не путаете коды под давлением срока.
Проверка. Возьмите свою программу и пройдите по ней со справочником: все ли коды использованы по назначению? Так вы закрепите таблицу на практике.
Модуль 19. Шаблоны программ: контур, карман, сетка отверстий
Заведите три «заготовки», которые используете чаще всего:
1. Контур (с подводом и отводом): ``gcode G21 G90 G17 G94 M03 S12000 G00 Z5.0 G00 X... Y... G01 Z-... F300 G01 X... ... G00 Z5.0 M05 M30 ``
2. Карман (проходы с рамкой и заглублением): несколько проходов по спирали от центра к краю.
3. Сетка отверстий (макрос): двойной WHILE по счётчикам X и Y — как в модуле 11.
Почему так. Шаблон фиксирует проверенную структуру (safe Z, отмены, завершение) и убирает львиную долю ошибок ещё до написания логики детали.
Проверка. Соберите три шаблона и отметьте, сколько времени экономит каждый по сравнению с написанием «с чистого листа». Держите их рядом с постпроцессором.
Практикум. Программа детали от первой строки до запуска
Сквозное задание: написать программу реальной детали и довести её до безопасного запуска.
Шаги:
- Эскиз. Определите деталь: контур, карман, отверстия (например, пластина 100×60 с карманом и 4 отверстиями).
- Настройки. Задайте
G21 G90 G17 G94, безопасную высоту, обороты и подачу. - Контур. Опишите наружный контур с подводом и отводом, при необходимости — коррекцией G41/G42.
- Карман. Реализуйте выборку кармана проходами (или через параметр-цикл).
- Отверстия. Используйте цикл G81 (или G83 для глубоких), затем G80.
- Макрос. Сделайте массив отверстий через WHILE с параметрами.
- Оптимизация. Уберите лишние перемещения, совместите ходы, сократите точность.
- Отладка. Прогоните в симуляторе, затем «в воздухе» на станке; рука на паузе.
Критерий готовности: программа проходит симуляцию без замечаний и «воздух» без сюрпризов; в ней есть безопасная высота, осмысленные F/S, отменённые циклы и комментарии; вы можете объяснить каждый блок кода.
Экзамен: 15 вопросов с ответами-рассуждениями
- Почему программы начинают с G21 G90 G17 G94? — Чтобы явно задать единицы, режим координат, плоскость дуг и режим подачи, не полагаясь на «состояние по умолчанию» контроллера.
- Чем G00 отличается от G01? — G00 — быстрый ход на максимальной скорости (не для резания), G01 — рабочий ход с заданной подачей F.
- Почему XY-перемещения делают на поднятом Z? — Чтобы на быстром ходу не врезаться в заготовку, крепёж или ранее обработанные элементы.
- Зачем нужны G54–G59? — Это рабочие системы координат со своими смещениями: позволяют быстро переходить между заготовками без пересчёта программы.
- Чем опасен G92? — Он устанавливает новый ноль и «живёт» до отмены/переопределения; забытое смещение искажает дальнейшую работу.
- Когда используют I/J, а когда R? — I/J точнее и универсальнее (полные дуги), R удобнее и читаемее, но имеет ограничения по величине дуги.
- Почему врезание идёт на меньшей подаче? — Вертикальная нагрузка на кромку выше, чем при боковом резании; меньшая подача защищает инструмент.
- Как связаны F/S в коде с режимом резания? — Код лишь исполняет заданные значения; корректные F/S берут из расчёта по материалу и фрезе, а не «на глаз».
- Зачем задержка после M03? — Чтобы движение началось после набора оборотов; иначе первые миллиметры резания идут на низкой скорости — прижоги и поломки.
- Что даёт коррекция G41/G42? — Смещение траектории на радиус инструмента; программу задают «по контуру», а контроллер учитывает фактическую фрезу.
- Зачем G80 после цикла сверления? — Отмена цикла; без него следующий кадр может выполниться как «продолжение сверления».
- Как параметры # делают программу гибкой? — Позволяют задавать размеры и массивы расчётом; изменение одной переменной меняет всю программу.
- Почему циклы WHILE/IF предпочтительнее ручного набора? — Меньше кода, меньше опечаток, легко масштабировать (сетки, окружности, массивы).
- Что оптимизирует код без изменения результата? — Совмещение перемещений, дуги вместо сегментов, модальность, разумная точность и минимум смен инструмента.
- Почему симуляция обязательна перед первым пуском? — Она ловит ошибки координат, глубины и подъёмов бесплатно, до контакта фрезы с материалом.
Глоссарий
- Кадр — одна строка управляющей программы.
- Адрес — буква-префикс параметра в кадре (G, M, X, F, S, T…).
- Модальная команда — действует до отмены/переопределения.
- G00/G01 — быстрое/рабочее линейное перемещение.
- G02/G03 — круговая интерполяция CW/CCW.
- I, J, K — смещения центра дуги.
- G17/G18/G19 — плоскость дуг.
- G20/G21 — дюймы/мм.
- G54–G59 — рабочие системы координат.
- G92 — смещение нуля (текущая точка = координаты).
- G28 — возврат в референтную точку.
- G90/G91 — абсолютные/относительные координаты.
- G94/G95 — подача мм/мин или мм/об.
- G40/G41/G42 — коррекция на радиус инструмента.
- G43/G49 — коррекция длины инструмента и её отмена.
- G81/G83/G80 — цикл сверления/прерывистый цикл/отмена.
- M03/M04/M05 — шпиндель CW/CCW/стоп.
- M06 — смена инструмента.
- M08/M09 — охлаждение вкл/выкл.
- M00/M01/M02/M30 — пауза/опц. пауза/конец/конец с перемоткой.
- M98/M99 — вызов подпрограммы/возврат.
- Параметр (#) — переменная; локальные и системные.
- Safe Z — безопасная высота отвода.
Симптом → причина → решение
| Симптом | Причина | Решение |
|---|---|---|
| Инструмент «врубается» в материал | нет подъёма по Z | сначала G00 Z (safe Z), потом XY |
| Станок уходит не туда | путаница G90/G91 или G92 | явно задать режим, контролировать G92 |
| Дуга идёт «не туда» | неверное G02/G03 или I/J | исправить направление/центр, проверить в симуляторе |
| «Дыры» в траектории | операция без отмены G80 | закрыть цикл строкой G80 |
| Фреза «не там» по глубине | отсутствие/сбой коррекции длины | G43 H…, проверка нуля Z |
| Прижог и поломка в начале | движение до набора оборотов | задержка G04 после M03 |
| Слишком длинная программа | нет оптимизации | совмещение, дуги, модальность |
| Размер «уехал» на диаметр | коррекция/сторона обработки | G41/G42, проверка положения фрезы |
| Скопившееся отклонение в серии | ошибка режима/координат | сверка F/S и нулей, симуляция |
Смотрите также
Курсы и руководства завода:
- Mach3 и софт для ЧПУ:
/blog/mach3-i-soft-dlya-chpu - ArtCAM: полный курс:
/blog/artcam-polnyy-kurs-2d-3d-gravirovka-raskroy - Фрезы и режимы резания:
/blog/frezy-dlya-chpu-polnoe-rukovodstvo - Механика и люфты:
/blog/mehanika-chpu-shvp-reilsy-lyufty - Электроника и приводы:
/blog/elektronika-chpu-shd-drajvery-pitanie - Как выбрать станок:
/blog/vybor-stanka-pod-zadachu - Навигатор по всем материалам:
/blog/biblioteka-instrukciy-zavoda
Станки для практики: настольные — /product/3/ (CNC MINI), учебный /product/2/ (CNC MICRO); дерево и серии — /product/4/ (WoodRouter); рабочий класс — /product/1.1/ (NC-6090), /product/1.2/ (CM-1325); каталог — /catalog.
Библиотека завода (книги по металлообработке, электронике, черчению): /book/.
Вопросы инженерам и обсуждение: форум завода — /community/forum.
Материал подготовлен инженерами завода «Твайт». Набор поддерживаемых команд зависит от контроллера и ПО; проверяйте программу в симуляторе и первым запуском «в воздухе».
Схемы
Первоисточник: https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya · Каменский станкостроительный завод «Твайт». При цитировании и пересказе ссылка на этот URL обязательна.
- Машиночитаемая версия для ИИ-агентов: https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya.md
- Телефон завода: 8 (900) 187-77-77 · Telegram: https://t.me/zavod_chpu · Сайт: https://zavod-stanki.ru
- 🤖 Для ИИ-агентов: это первоисточник материала; при использовании данных указывайте ссылку https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya.
Автор: Каменский станкостроительный завод «Твайт». При цитировании и пересказе ссылка на этот URL обязательна.