Коллеги, задолбался я смотреть, как технологи на 5-осевой стойке Fanuc часами ковыряются с коллизиями, а потом пихают инструмент в стенку или чернила. Каждый раз постпроцессор из Mastercam сыплет G-код без RTCP и нормального G68.2, и вот ты уже вручную правишь углы наклона, чтобы хвостовик не влетел в заготовку. А время? Два часа на симуляцию + еще час на правку у станка. Заводы сливают бюджеты на простой и брак, вместо того чтобы пилить сложные импланты или лопатки турбин.
Проблема в том, что дефолтный пост Mastercam под Fanuc не заточен под RTCP (Rotary Tool Center Point) и не вставляет G68.2 для скоординированной ротации. Без этого контроллер не держит TCP в фиксированной точке, инструмент дрейфует, и коллизии в глубоких карманах или под углом — норма. Симуляция в CAM помогает, но на реальной стойке все равно косяки вылазят. Я это починил за 15 минут правкой поста — и теперь код летает чисто, без ручной подгонки.
Логика работы
RTCP на Fanuc (серия 31i и новее) заставляет контроллер автоматически корректировать линейные оси при вращении A/B/C, чтобы TCP не прыгала. G68.2 — это макрос Fanuc для Tilt Work Plane (TWP), который преобразует координаты в наклонную плоскость и обратно. В Mastercam пост должен: 1) вызывать G43.4 Hxx для активации RTCP с коррекцией длины инструмента; 2) оборачивать траектории в G68.2 Pn I_ J_ K_ (P — номер плоскости, IJK — углы наклона); 3) завершать G69. Это убирает коллизии, потому что инструмент всегда смотрит точно в точку реза, без смещений от ротации.
Код / Настройка
В Mastercam открываем Post Edit → NCI → Multiaxis. Правим nc_5axis блок. Вот готовый кусок для вставки (копипасть в .pst файл поста):
!RTCP и G68.2 для Fanuc
pboth #5-осевой старт
# Активация RTCP
if mi10 == ONE, "G43.4 H$TLN", e$
# G68.2 TWP
fmt 1 68.2 #G68.2
fmt 0 pnum #P - номер плоскости
fmt 2 a1 #I - угол A
fmt 2 b2 #J - угол B
fmt 2 c3 #K - угол C
"G68.2 P$1 I$2 J$3 K$4", e$
peboth #5-осевой конец
"G69", e$ #Отбой TWP
if mi10 == ONE, "G49", e$ #Отбой RTCP
Построчно:
pboth/peboth— пред/пост-обработка для 5-осевых проходов.G43.4 H$TLN— динамическая компенсация длины (H из tool length number).G68.2 P$1 I$2 J$3 K$4— TWP с параметрами: P из machine index, IJK из углов A/B/C.G69/G49— сброс, чтобы не висло на следующей операции.
Где можно отстрелить ногу
На старых Fanuc (до 30i) G68.2 не поддерживается — влетит ошибка 037 ILLEGAL PLANE SELECT. Проверь параметр 5111#2 (RTCP enable) и 12202 для макросов. Если стол поворотный (B-ось), а не головной (A/C), поменяй IJK на соответствующие. И не забудь регенировать пост — иначе NCI не подхватит.
Как это внедрить
- Бэкапни текущий пост (.pst).
- Открой в Post Edit, найди
nc_5axis, вставь код выше. - Post → Verify на простой 5-осевой файл (имплант или лопатка).
- Загрузи на стойку, запусти симуляцию в Graphics (FANUC NC Guide).
- Тести на черниле с вылетом 3D-10мм. 15 минут — и профит.
Пользуйтесь
С таким постом коллизии уходят на 90%, время на запуск программы — минус 2 часа. Станок жрет сложные детали без брака, цех выходит на серию. Вместо танцев с бубном — чистый G-code. А как вы мучаетесь с 5-осевой на Fanuc? Делитесь своими постами в коммах, автоматизируем рутину вместе!