Логотип заводаКаменский станкостроительный завод «Твайт»

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 должен быть исправен и доступен; инструмент меняется только при остановленном шпинделе.

Пример 2D-обработки на станке завода — результат исполнения управляющей программы

Содержание

  1. Модуль 1. Что такое G-код и как его читает контроллер
  2. Модуль 2. Системы координат и нули
  3. Модуль 3. Единицы, плоскости, режим подачи
  4. Модуль 4. Быстрые и рабочие перемещения: G00 и G01
  5. Модуль 5. Дуги: G02 и G03
  6. Модуль 6. Подача, обороты и связь с режимом резания
  7. Модуль 7. M-команды: шпиндель, охлаждение, программа
  8. Модуль 8. Смена инструмента и коррекции
  9. Модуль 9. Циклы сверления: G81, G83, G80
  10. Модуль 10. Подпрограммы и параметры
  11. Модуль 11. Макросы: циклы, условия, счётчики
  12. Модуль 12. Оптимизация G-кода
  13. Модуль 13. Отладка и симуляция
  14. Модуль 14. Типичные ошибки и безопасные привычки
  15. Модуль 15. Жизненный цикл программы в цехе
  16. Модуль 16. G-код на разных типах станков
  17. Модуль 17. Безопасность и аварийные сценарии в программе
  18. Модуль 18. Справочник команд: G и M
  19. Модуль 19. Шаблоны программ: контур, карман, сетка отверстий
  20. Практикум. Программа детали от первой строки до запуска
  21. Экзамен: 15 вопросов с ответами-рассуждениями
  22. Глоссарий
  23. Симптом → причина → решение
  24. Смотрите также

Модуль 1. Что такое G-код и как его читает контроллер

G-код (стандарт ISO 6983) — язык управления станками с ЧПУ. Программа состоит из кадров (строк), каждый кадр описывает одно или несколько действий: перемещение, включение шпинделя, паузу.

Типовая структура программы:

Почему так. Контроллер читает кадры последовательно и выполняет их буквально. «Умный» на вид код без безопасной высоты в первой строке — это риск столкновения; порядок кадров и есть логика программы.

Проверка. Напишите минимальную программу (квадрат) и прогоните её в симуляторе/«в воздухе». Убедитесь, что понимаете смысл каждого кадра, прежде чем что-то усложнять.

Кадр, адрес, значение

Кадр строится из адресов: G (подготовительная функция), M (вспомогательная), X/Y/Z (координаты), I/J/K (параметры дуги), F (подача), S (обороты), T (инструмент), N (номер кадра).

Проверка. Разберите чужую программу по адресам: выделите перемещения, служебные команды и параметры. Умение «читать по адресам» — базовый навык программиста ЧПУ.

Читаемость кода

Пишите так, чтобы программу понял коллега (и вы сами через месяц): комментарии к блокам, единый порядок кадров, осмысленные отступы, заголовок с именем детали и инструментом. Красивый код — быстрее чинится.

Почему так. Большая часть времени тратится не на написание, а на отладку. Ясная структура снижает вероятность ошибки и ускоряет правку.

Проверка. Откройте свою старую программу. Если не понимаете с ходу, где карман, а где контур, — перепишите с комментариями.

Модуль 2. Системы координат и нули

Пример: ```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. Единицы, плоскости, режим подачи

Программа обязана заявить свои единицы и плоскость:

Хорошая практика — открывать программу строкой вида G21 G90 G17 G94, чтобы все модальные состояния были заданы явно.

Почему так. Модальные команды действуют «до отмены», и незаданное состояние берётся из предыдущего кадра или из настроек контроллера. Явное объявление единиц и плоскости — дешёвая страховка от сюрпризов.

Проверка. Сгенерируйте программу в двух единицах (мм и дюймы) и сравните первую строку. Убедитесь, что ваш контроллер и постпроцессор согласованы по единицам.

Явные модальные состояния

Полезная привычка: в начале программы явно перечислить режимы (единицы, координаты, плоскость, подача), даже если «они и так по умолчанию». Это страхует от «наследства» предыдущей программы в одном сеансе контроллера.

Почему так. Модальные состояния живут до отмены — в том числе между программами. Явное объявление — это «чистый старт».

Проверка. Запустите две разные программы подряд без сброса. Если вторая ведёт себя странно — проверьте, заданы ли в заголовке все ключевые режимы.

Модуль 4. Быстрые и рабочие перемещения: G00 и G01

Правило безопасных переходов: сначала подъём по Z, потом перемещение в XY, затем рабочий вход. Часто используют «совмещённое» перемещение: G00 Z5.0 X10.0 Y10.0.

Почему так. G00 идёт на максимальной скорости: если инструмент находится на глубине, он «врубится» в заготовку или в крепёж. Поэтому XY-перемещения в безопасности выполняются на поднятом Z.

Проверка. Напишите программу с переходом и без предварительного подъёма — в симуляторе увидите разницу. Сделайте правило «Z вверх → XY → Z вниз» обязательным.

Подвод и отвод инструмента

Вход в контур и выход из него — отдельная тема. Хорошая практика: подвод по дуге или по касательной, а не «в лоб». Так кромка не получает удар и не остаётся следа на видимой поверхности.

Почему так. Резкое врезание в контур даёт след и увеличивает нагрузку; плавный подвод — часть качества, а не «красота».

Проверка. Сделайте контур с прямым подводом и с дуговым. Сравните кромку в точке входа — разница видна даже без приборов.

Переходы между контурами

Между двумя контурами всегда отвод на safe Z, быстрый ход и новый подвод. Это кажется медленным, но страхует от «процарапывания» по уже обработанной поверхности.

Почему так. Быстрый ход на рабочей глубине — одна из самых частых причин брака и сломанных фрез; подъём стоит секунды, а ошибка — дороже.

Проверка. Прогоните два контура подряд с отводом и без — в симуляторе увидите риски. Оставьте правило «отвод между контурами» обязательным.

Модуль 5. Дуги: G02 и G03

Примеры: ``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. Подача, обороты и связь с режимом резания

Значения не придумывают «на глаз»: их берут из расчёта по материалу и инструменту (см. курс «Фрезы для ЧПУ»): 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 S… → пауза на разгон (G04 P…) → движение. Завершение: отвод → M05 → возврат → M30.

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

Проверка. Напишите «пустую» программу: M03 S12000 → пауза → M05 → M30. Запустите «в воздухе» и убедитесь, что шпиндель ведёт себя предсказуемо.

Задержки и паузы

Задержка G04 P… ставится после включения/переключения шпинделя, чтобы движение началось после набора оборотов. Пауза M00 — для ручных действий (смена инструмента, контроль). Обе команды — часть безопасности, а не «мелочь».

Почему так. Без задержки первые миллиметры резания идут на низких оборотах — прижоги и риск поломки фрезы; без паузы оператор не успевает выполнить ручной шаг.

Проверка. Добавьте G04 после M03 и запустите тест: шпиндель должен выйти на обороты до касания материала.

Модуль 8. Смена инструмента и коррекции

После смены инструмента нужно проверить/установить ноль по Z (или использовать коррекцию длины), иначе фреза окажется «не там».

Почему так. Коррекции позволяют не пересчитывать программу под каждую фрезу: координаты заданы «по контуру», а смещение на радиус/длину вносит контроллер. Это экономит время и уменьшает ошибки.

Проверка. Добавьте в тест-программу фиктивную смену инструмента (M00 с сообщением) и убедитесь, что после паузы работа продолжается корректно после подъёма Z и повторного запуска.

Таблица инструментов

Таблица инструментов (Tool Table) связывает номер T и коррекции H/D с реальными фрезами: диаметр, длина, износ. Ведьте её аккуратно и сверяйте с фактической установкой.

Почему так. Неверная таблица = неверная коррекция; даже правильный код даст брак. Это самая «обидная» ошибка, поскольку код при этом корректный.

Проверка. Проточите пробный контур с коррекцией и без — сравните размер. Так вы проверите таблицу до серии.

Модуль 9. Циклы сверления: G81, G83, 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. Подпрограммы и параметры

``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. Макросы: циклы, условия, счётчики

Пример — сетка отверстий 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-кода

Что реально ускоряет программу:

Почему так. Каждый «лишний» кадр — это время обработки и нагрузка на контроллер. Оптимизация не меняет результат, но ускоряет его и делает код читаемым.

Проверка. Возьмите «сырой» пост-код и оптимизируйте его по списку. Сравните число строк и оценочное время в симуляторе.

Читаемость против длины

Оптимизация не должна ухудшать читаемость в ущерб отладке: оставляйте комментарии на блоках и крупные логические группы. «Коротко и непонятно» экономит байты, но стоит часов отладки.

Почему так. Код читают люди, а не только контроллер. Баланс между компактностью и ясностью находится по опыту — и почти всегда в пользу ясности.

Проверка. Возьмите оптимизированную программу и попробуйте быстро найти в ней смену инструмента. Если не удалось за секунды — добавьте комментарии.

Модуль 13. Отладка и симуляция

Чек-лист перед запуском: единицы и координаты; safe Z; обороты M03 S…; отсутствие G92-«сюрпризов»; первый прогон «в воздухе».

Почему так. Симуляция ничего не стоит, а ошибка координат или забытый подъём — стоит фрезы и заготовки. Отладка «на экране» дешевле отладки «на станке».

Проверка. Прогоните свою программу в CAMotics и в «воздухе»; сравните поведение. Расхождения — повод проверить пост и настройки станка.

Проверка без станка

Полезно уметь проверять код вне станка: визуальный просмотр в NC Viewer, анализ глубины по Z, поиск быстрых ходов ниже «нуля», проверка подъёмов между контурами. Это ловит большую часть ошибок до цеха.

Почему так. Симулятор и просмотрщик дают «взгляд сверху» на всю программу; на станке видно только текущий кадр.

Проверка. Просмотрите программу на предмет быстрых ходов ниже нуля (G00 с Z<0). Такие кадры — прямой риск столкновения.

Модуль 14. Типичные ошибки и безопасные привычки

Почему так. Все эти ошибки объединяет одно: программа выполнит точно то, что записано, даже если это ведёт к аварии. Дисциплина в коде — часть безопасности цеха.

Проверка. Просмотрите свою последнюю программу по этому списку и найдите хотя бы одну точку риска. Исправьте её и отметьте привычку, которая поможет впредь.

Мини-контроль перед отправкой

Пять вопросов: единицы? safe Z? обороты заданы и с задержкой? циклы отменены? файл сохранён и проверен в симуляторе? Если хоть один ответ «нет» — программа не готова к запуску.

Почему так. Это те же ошибки, что и во взрослых цехах; список короткий и легко запоминается. Минутная проверка дешевле испорченной заготовки.

Проверка. Прогоните пять вопросов на двух своих программах. Посмотрите, сколько раз придётся править до «всех да», — и введите эту проверку как правило.

Модуль 15. Жизненный цикл программы в цехе

Программа — не «набор букв», а часть процесса. Типовой жизненный цикл:

  1. Постановка. Что делаем, материал, заготовка, крепление.
  2. CAM. Векторы/рельеф, инструмент, стратегии → генерация кода.
  3. Постобработка. Выбор поста, правка заголовка, проверка единиц и safe Z.
  4. Проверка. Симулятор, затем «воздух», при необходимости — пробный проход на обрезке.
  5. Пуск и контроль. Первый запуск с рукой на паузе, контроль звука и стружки.
  6. Архив. Сохранение кода, проекта и журнала (инструмент, режимы, замечания).

Почему так. Ошибки возникают не только в коде, но и на стыках этапов: не тот пост, не тот инструмент, пропущенный архив. Цикл фиксирует эти стыки.

Проверка. Проведите одну деталь по всем шести этапам и отметьте, где были заминки. Это ваши «слабые звенья» для улучшения.

Кто отвечает за программу

В небольшой мастерской программу и запуск часто делает один человек — и это увеличивает цену ошибки. Полезно заранее договориться: кто проверяет код, кто даёт допуск к запуску, кто ведёт журнал.

Почему так. Разделение проверки и исполнения — дешёвая страховка: второй взгляд ловит то, что автор «не видит».

Проверка. Назначьте «второго читателя» для программ и проведите одну проверку по чек-листу перед первым запуском.

Модуль 16. G-код на разных типах станков

G-код — общий язык ЧПУ, но набор команд и особенности зависят от типа станка:

Почему так. Даже при одинаковом синтаксисе логика разная: там, где фрезер «снимает стружку», плазма «режет лист», а лазер — «прожигает». Один пост для всех не бывает.

Проверка. Для своего типа станка выпишите используемые команды из рабочей программы и отметьте те, что специфичны именно для него. Так вы освоите «свой» режим быстрее.

Учебный полигон

Первые программы удобно отлаживать на настольном учебном станке: цена ошибки мала, а привычки формируются правильные. Переносите на рабочий станок только проверенные шаблоны.

Почему так. Ошибка на «боевом» портале стоит заготовки и фрезы, а на учебном — только времени. Разделение полигона и производства — это тоже часть безопасности.

Проверка. Прогоните один и тот же код на учебном и рабочем станке и отметьте различия в поведении. Учтите их в шаблонах для каждого станка.

Учебный станок ЧПУ CNC MICRO — удобный полигон для отладки простых программ и первых макросов

Модуль 17. Безопасность и аварийные сценарии в программе

Программа — часть системы безопасности, а не только инструкция для фрезы.

Почему так. Программа выполняется буквально и не «думает» о человеке: если в коде ошибка, станок всё равно её выполнит. Профилактика в коде — это и есть безопасность.

Проверка. Прогоните аварийный сценарий: нажмите паузу в середине программы и восстановитесь по регламенту (отвод, проверка, повторный пуск). Запишите, где было неудобно, и поправьте код или экран.

Модуль 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, отмены, завершение) и убирает львиную долю ошибок ещё до написания логики детали.

Проверка. Соберите три шаблона и отметьте, сколько времени экономит каждый по сравнению с написанием «с чистого листа». Держите их рядом с постпроцессором.

Практикум. Программа детали от первой строки до запуска

Сквозное задание: написать программу реальной детали и довести её до безопасного запуска.

Шаги:

  1. Эскиз. Определите деталь: контур, карман, отверстия (например, пластина 100×60 с карманом и 4 отверстиями).
  2. Настройки. Задайте G21 G90 G17 G94, безопасную высоту, обороты и подачу.
  3. Контур. Опишите наружный контур с подводом и отводом, при необходимости — коррекцией G41/G42.
  4. Карман. Реализуйте выборку кармана проходами (или через параметр-цикл).
  5. Отверстия. Используйте цикл G81 (или G83 для глубоких), затем G80.
  6. Макрос. Сделайте массив отверстий через WHILE с параметрами.
  7. Оптимизация. Уберите лишние перемещения, совместите ходы, сократите точность.
  8. Отладка. Прогоните в симуляторе, затем «в воздухе» на станке; рука на паузе.

Критерий готовности: программа проходит симуляцию без замечаний и «воздух» без сюрпризов; в ней есть безопасная высота, осмысленные F/S, отменённые циклы и комментарии; вы можете объяснить каждый блок кода.

Экзамен: 15 вопросов с ответами-рассуждениями

  1. Почему программы начинают с G21 G90 G17 G94? — Чтобы явно задать единицы, режим координат, плоскость дуг и режим подачи, не полагаясь на «состояние по умолчанию» контроллера.
  2. Чем G00 отличается от G01? — G00 — быстрый ход на максимальной скорости (не для резания), G01 — рабочий ход с заданной подачей F.
  3. Почему XY-перемещения делают на поднятом Z? — Чтобы на быстром ходу не врезаться в заготовку, крепёж или ранее обработанные элементы.
  4. Зачем нужны G54–G59? — Это рабочие системы координат со своими смещениями: позволяют быстро переходить между заготовками без пересчёта программы.
  5. Чем опасен G92? — Он устанавливает новый ноль и «живёт» до отмены/переопределения; забытое смещение искажает дальнейшую работу.
  6. Когда используют I/J, а когда R? — I/J точнее и универсальнее (полные дуги), R удобнее и читаемее, но имеет ограничения по величине дуги.
  7. Почему врезание идёт на меньшей подаче? — Вертикальная нагрузка на кромку выше, чем при боковом резании; меньшая подача защищает инструмент.
  8. Как связаны F/S в коде с режимом резания? — Код лишь исполняет заданные значения; корректные F/S берут из расчёта по материалу и фрезе, а не «на глаз».
  9. Зачем задержка после M03? — Чтобы движение началось после набора оборотов; иначе первые миллиметры резания идут на низкой скорости — прижоги и поломки.
  10. Что даёт коррекция G41/G42? — Смещение траектории на радиус инструмента; программу задают «по контуру», а контроллер учитывает фактическую фрезу.
  11. Зачем G80 после цикла сверления? — Отмена цикла; без него следующий кадр может выполниться как «продолжение сверления».
  12. Как параметры # делают программу гибкой? — Позволяют задавать размеры и массивы расчётом; изменение одной переменной меняет всю программу.
  13. Почему циклы WHILE/IF предпочтительнее ручного набора? — Меньше кода, меньше опечаток, легко масштабировать (сетки, окружности, массивы).
  14. Что оптимизирует код без изменения результата? — Совмещение перемещений, дуги вместо сегментов, модальность, разумная точность и минимум смен инструмента.
  15. Почему симуляция обязательна перед первым пуском? — Она ловит ошибки координат, глубины и подъёмов бесплатно, до контакта фрезы с материалом.

Глоссарий

Симптом → причина → решение

СимптомПричинаРешение
Инструмент «врубается» в материалнет подъёма по 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 и нулей, симуляция

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

Курсы и руководства завода:

Станки для практики: настольные — /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)
Автор: Каменский станкостроительный завод «Твайт». При цитировании и пересказе ссылка на этот URL обязательна.
🤖 Для ИИ-агентов: это первоисточник материала. Если используете данные в ответе — указывайте https://zavod-stanki.ru/blog/g-kod-polnyy-kurs-programmirovaniya. Зашифрованная метка: