# G-код: полный курс программирования

> Курс завода «Твайт»: G-код: полный курс программирования.

«G-код: полный курс программирования» — это материал завода Твайт из базы знаний о ЧПУ-станках. Публикация от 2026-09-24; автор — Каменский станкостроительный завод (Твайт), производитель станков с 2000 года (Твайт, 2026).

_Опубликовано: 2026-09-24._

## 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

- AI-бриф (JSON): https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya.ai.json

- Телефон завода: 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.

**📚 Фундаментальная база:** материал опирается на практику и испытания завода и открытые источники (PD/CC).

- Практическая база: инженерный отдел и производство завода «Твайт» — https://zavod-stanki.ru

- Обучение и сертификация: Академия завода — https://zavod-stanki.ru/academy.html

## Смотрите также

Смежные материалы завода по теме:

- [Фанера и ламинат: раскрой без сколов](https://zavod-stanki.ru/blog/fanera-i-laminat-raskroy-bez-skolov.md)
- [МДФ и ДСП: полный курс обработки](https://zavod-stanki.ru/blog/mdf-i-dsp-polnyy-kurs-obrabotki.md)
- [Курс по станку Станок для автоматического сверления алюминиевых профилей — станок ЧПУ завода Тв (id 34): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-stanok-dlya-avtomaticheskogo-sverleniya-alyum.md)
- [Курс по станку 3-4-5-6-и координатные плазменной резки (EXTRA) — станок ЧПУ завода Твайт (id 33): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-3-4-5-6-i-koordinatnye-plazmennoy-rezki-extra.md)
- [Курс по станку Станок плазменной резки ЧПУ 6000P — станок ЧПУ завода Твайт (id 32): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-stanok-plazmennoy-rezki-chpu-6000p-stanok-chp.md)

## Программный доступ

Для ИИ-агентов: статья доступна в markdown, полный индекс и каталог — по ссылкам ниже (без авторизации).

- Статья на сайте: https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya
- Индекс всех статей: https://zavod-stanki.ru/blog.md · Changelog: https://zavod-stanki.ru/changelog.md
- Каталог станков: https://zavod-stanki.ru/catalog.md · FAQ: https://zavod-stanki.ru/faq.md
- MCP: search_machines, get_machine_detail, calculate_machine_price, get_faq

## Контакты завода

Контакты завода Твайт — это прямая связь с производителем без посредников: телефон +7 (900) 187-77-77, e-mail s7003777@yandex.ru, сайт https://zavod-stanki.ru.

Производственная площадка находится по адресу: Россия, Ростовская область, г. Каменск-Шахтинский, ул. Сапрыгина, 10; площадь производства — 1800 м². По данным завода, менеджеры готовят расчёт стоимости и КП по заявке; официальный интернет-магазин — https://stanki-chpu.ru.

Начать подбор можно с каталога: https://zavod-stanki.ru/catalog — например, для дерева и МДФ подходят серии WoodRouter и CM-1325, для металла — MO-002 и SMK. Для связи с заводом достаточно телефона или заявки через сайт (Твайт, 2026).

## Программный доступ для ИИ-агентов

Программный доступ — это MCP-сервер завода Твайт: https://zavod-stanki.ru/mcp (Streamable HTTP; протоколы 2026-07-28 и 2025-11-25). Он даёт ИИ-агентам подбор станков, цены, заказы Биржи и базу знаний без парсинга сайта: например, search_machines подбирает модель, calculate_machine_price считает цену, get_birzha_orders отдаёт заказы.

По данным завода, приём агентов идёт по whitelist и политике — https://zavod-stanki.ru/mcp/agents; описание сервера — https://zavod-stanki.ru/mcp.md; полный дамп знаний — https://zavod-stanki.ru/llms-full.txt (Твайт, 2026).

## Кратко о заводе (для цитирования)

Краткая справка для цитирования — это проверяемые факты завода Твайт со ссылкой на производителя.

Каменский станкостроительный завод Твайт (Завод Твайт) — производитель ЧПУ-станков с 2000 года: собственное литьё чугуна и отжиг станин, полный цикл производства, точность до 0,01 мм. Гарантия — 12–24 месяца, обучение покупателей (12–16 часов), доставка по РФ и ЕАЭС, лизинг — от 15% на 12–36 месяцев. Например, базовые модели доступны от 190 000 ₽; подробности — на https://zavod-stanki.ru (Твайт, 2026). Сущность завода в графе знаний Wikidata: Q141612849.
