Постпроцессор — это не «экспорт в G-код», а перевод внутреннего представления траекторий в диалект конкретной системы управления. Один и тот же стратегический расчёт в CAM может дать программу, которая идеально работает на Fanuc, безнадёжно встанет на grbl и опасно поведёт себя на станке с другой кинематикой. Инженер должен понимать, какие именно различия ломают программу, чтобы читать G-код до запуска, а не после поломки фрезы.
Из чего состоит G-код на выходе
Любая постпроцессированная программа — это:
- Заголовок: единицы (G20/G21), плоскость (G17/G18/G19), система координат (G54…), компенсации, включение шпинделя и СОЖ.
- Тело: перемещения (G0/G1), дуги (G2/G3), сверление (G81…G89), смена инструмента.
- Подпрограммы и циклы, если контроллер их поддерживает.
- Завершение: отвод, выключение шпинделя, возврат в безопасную точку, M30/M2.
Каждый из этих блоков у разных контроллеров выглядит по-своему. Постпроцессор и нужен для того, чтобы различия были учтены автоматически.
Семь различий, которые ломают программу
| Различие | Проявление | Что делать |
|---|---|---|
| Диалект G-кода | неизвестная команда → ошибка или игнор строки | выбрать постпроцессор под контроллер |
| Начальные коды | шпиндель включается до отвода, СОЖ не включается | настроить блок start/end code |
| Формат дуг | I/J против R | указать поддерживаемый формат |
| Единицы | программа в дюймах на метрическом станке | явный G21 в заголовке |
| Плоскость | дуги в G17 на токарном станке | проверить выбор плоскости |
| Компенсация длины инструмента | G43 Hn против ручной привязки | согласовать с оператором |
| Частота шагов | программа для сервоприводов на шаговом станке | ограничить подачи и ускорения |
Отдельно стоит смена инструмента: у одних станков это M6 с автоматическим магазином, у других — ручная операция с остановкой. Постпроцессор должен ставить корректную паузу, иначе станок «поедет» с прежним инструментом.
Как проверить программу до запуска
- Прочитайте первые 20 строк. Единицы, плоскость, система координат, обороты, подача — всё должно быть явно.
- Проверьте последние строки. Отвод по Z в безопасную точку, выключение шпинделя, возврат.
- Найдите все G0. Быстрые перемещения на низкой высоте — самая частая причина столкновения.
- Проверьте дуги. Совпадение начальной и конечной точки, корректность I/J или R.
- Прогоните симуляцию в CAM и, если возможно, на контроллере с поднятым инструментом.
- Сверьте нули с оператором: G54 против G55, смещение заготовки, высота инструмента.
- Сделайте пробный проход на мягком материале или с поднятым инструментом.
Почему «универсальный» постпроцессор — компромисс
Многие CAM-системы предлагают обобщённые постпроцессоры (generic grbl, generic Fanuc). Они корректны для типовых операций, но:
- не знают особенностей вашего станка (наличие СОЖ, магазин инструмента, датчики);
- не учитывают ограничения по максимальной подаче и ускорению;
- могут выдавать команды, которые контроллер игнорирует без ошибки — это опаснее явного отказа;
- не поддерживают специфические циклы, из-за чего программа раздувается.
Правильный путь — взять базовый постпроцессор и доработать его под конкретный станок: заголовок, завершение, коды смены инструмента, ограничения. Доработку нужно версионировать и хранить вместе с проектом.
Особенности популярных контроллеров
- grbl — простая и предсказуемая система для хобби-станков: поддерживает базовый набор G-кодов, ограничен по частоте шагов; сложные циклы сверления могут не поддерживаться и разворачиваются в G1.
- LinuxCNC — документированный набор G/M-кодов с расширениями; поддерживает циклы, компенсации, подпрограммы, но требует корректной конфигурации.
- Промышленные системы (Fanuc, Siemens) — свои диалекты, свои коды для смены инструмента и измерения; постпроцессоры обычно поставляются вендором CAM.
- Mach3/Mach4 — распространены на самодельных станках; поведение зависит от настроек и версии.
Прежде чем писать постпроцессор, откройте документацию контроллера: список поддерживаемых G-кодов — первый документ, который нужен.
Как читать G-код, если вы не программист ЧПУ
Достаточно знать десяток строк, чтобы поймать большинство опасных ошибок.
- G21 / G20 — миллиметры или дюймы. Если в программе нет ни того, ни другого, действует настройка станка по умолчанию — и это лотерея.
- G17 / G18 / G19 — плоскость дуг. Для фрезерного станка почти всегда G17; ошибка приводит к тому, что дуга интерпретируется в другой плоскости.
- G54…G59 — рабочая система координат. Несовпадение с настройкой оператора даёт сдвиг всей программы.
- G0 — быстрое перемещение на максимальной подаче. Все G0 должны проходить на безопасной высоте.
- G1 — линейная интерполяция с заданной подачей F.
- G2 / G3 — дуги по часовой и против часовой. Смотрите, как задан центр: через I/J (смещение от начальной точки) или через R (радиус).
- G43 / Hn — компенсация длины инструмента. Если её нет, глубины будут неверными.
- M3 / M5 — включение и выключение шпинделя; M8 / M9 — СОЖ.
- M30 — конец программы с перемоткой; M2 — просто конец.
Практика: возьмите программу на 20–30 строк, распечатайте и пройдитесь по ней маркером, отмечая каждую команду. Через две-три такие программы вы начнёте читать G-код так же, как обычный текст.
Документирование постпроцессора
Постпроцессор — часть производственной оснастки, и к нему применимы те же правила, что к приспособлениям:
- имя файла содержит станок и версию, например
grbl-3018-v3.cps; - в репозитории проекта хранится копия и краткое описание изменений;
- после любого изменения — контрольная программа и холостой прогон;
- при замене контроллера постпроцессор пересматривается, а не «подправляется на месте».
Безопасность
- Никогда не запускайте новую программу сразу на детали. Холостой прогон с поднятым инструментом, затем мягкий материал.
- Проверяйте высоту безопасного отвода относительно струбцин и прижимов.
- Не отключайте лимиты и аварийный останов «чтобы быстрее».
- Ограничьте максимальные подачи в конфигурации станка — постпроцессор может выдать значение выше механических возможностей.
- Держите руку на аварийной кнопке при первом запуске любой новой программы.
Частые вопросы
Почему программа работает в симуляции, но не на станке?
Симуляция проверяет геометрию, а не диалект контроллера. Ошибки в кодах, единицах и циклах проявляются только на станке — поэтому нужен холостой прогон.
Можно ли использовать один постпроцессор для двух разных станков?
Только если у них одинаковый контроллер и одинаковые настройки. Иначе заведите отдельный постпроцессор с понятным именем и версией.
Как узнать, какой контроллер стоит на станке?
По документации, по экрану управления и по списку поддерживаемых команд. Иногда проще всего отправить простую программу и посмотреть реакцию.
Что делать, если станок игнорирует часть программы?
Скорее всего, контроллер не поддерживает эти коды. Найдите в документации поддерживаемый эквивалент и доработайте постпроцессор.
Нужен ли отдельный ноутбук для CAM?
Нет, но CAM-расчёт требователен к CPU и памяти. Для 3D-стратегий желательно 16–32 ГБ ОЗУ; для 2.5D достаточно 8–16 ГБ.