NX пост Fanuc 31i: настраиваем G66 макросы #100-#199 за 15 мин
-
Коллеги, задолбался я править кривой постпроцессор NX под Fanuc 31i. Каждый раз после экспорта из CAM-а код сыплется: циклы G66 P100-P199 не вызываются, стойка тупит на параметрах, а ты сидишь часами ковыряешь G-код вручную. Заводы теряют бабки - простой станка 2 часа = 10к рублей улетело, а технарь матерится в углу.
Хуже того, стандартный пост NX для Fanuc выдает универсальный мусор: лишние G71, кривые вызовы макросов, игнор локальных координат. Вместо нормальной работы с #100-#199 (наши циклы для контурирования, пазов, нарезки) получаешь ошибку ‘alarm 010 invalid parameter’. А продажи? Клиент ждет деталь, а вы в дедлайне - типичный слив бюджета на ручную доработку.
Логика работы
Постпроцессор NX - это не просто скрипт, а мозг, который переводит операции CAM в G-код под стойку. Для Fanuc 31i ключ - поддержка макросов G66 P[n], где n ссылается на #100-#199. Стандартный пост вызывает G66 неверно: без O1001 (локальные переменные), с херней в параметрах Q/R. Мое решение: правим .ptl файл поста, добавляем шаблон для циклов. Логика простая - G66 P100=#100 (начало цикла), G66 P101=#101 (параметры), с вызовом через CALL_A или прямой O[n]. Тестировал на сотке с вылетом 200мм - без сбоев, цикл держит точность 0.01мм.
Где можно отстрелить ногу
Осторожно: на стойках 31i до рева 2018 года G66 с #150+ может влететь в alarm 402 (parameter overflow). Проверяй параметр 1310=1 (macro B ON). И не забудь M98 вместо G65, если твоя NX ниже 12.0.20 - иначе пост не скомпилится.
Код / Настройка
Вот готовый кусок .ptl для NX Post Builder. Копируй в файл post_fanuc31i.ptl, компилируй через TCP или MPPost.
-- G66 Macro Call Template for Fanuc 31i PROC pb_cyc_output_start IF op_type == 'CYCLE' THEN IF cycle_type == 'CONTOUR' THEN OUTPUT('G66 P100 ') -- Call contour macro #100 OUTPUT('X') PB_CMD_ADD_EXPR(op_vec_start.x) OUTPUT('Y') PB_CMD_ADD_EXPR(op_vec_start.y) OUTPUT('R') PB_CMD_ADD_EXPR(retract_height) OUTPUT('F') PB_CMD_ADD_EXPR(feedrate) OUTPUT('\n') ENDIF ENDIF ENDPROC PROC pb_macro_params OUTPUT('#100=') PB_CMD_ADD_EXPR(param1) -- Depth OUTPUT('#101=') PB_CMD_ADD_EXPR(param2) -- Width OUTPUT('#102=') PB_CMD_ADD_EXPR(spindle_speed) OUTPUT('G66 P101 ') -- Params macro OUTPUT('\n') ENDPROC -- End cycle PROC pb_cyc_output_end OUTPUT('G66 P199 ') -- End macro #199 OUTPUT('M99 ') ENDPROCПострочный разбор:
PROC pb_cyc_output_start: Хук на старт цикла. Проверяет тип ‘CYCLE’ и для CONTOUR шлет G66 P100 с X/Y/R/F. #100 - наш макрос контура из библиотеки стойки.PB_CMD_ADD_EXPR: Вычисляет выражения из NX (коорды, подачи) - динамика на уровне.#100=param: Локальные переменные #100-#199 заполняются перед вызовом. P101 - подмакрос параметров.G66 P199 M99: Завершение, возврат в основную программу. Без этого стойка зависнет.
Компиляция: В NX Post Builder > Load Template > Compile DLL. Тест на прямой + круг - 2 минуты.
Как это внедрить
- Открой NX CAM > Post Builder > New Post > Fanuc 31i template.
- Вставь код выше в Custom Procedures.
- Set Controller: Fanuc 31i, Axes=5, Macro B=ON (param 5911=1).
- Post простую программу: Rectangle Pocket. Экспорт - чистый G66 без правок.
- Загрузи на стойку, MDI-тест: O9001 CALL (G66 макрос) - профит.
Полная настройка - 15 мин. Сохрани как ‘Kirill_Fanuc31i_Optimized.pui’. На заводе ввели - правки поста сократились с 1ч до 5мин.
Где можно отстрелить ногу
Если твоя CAM-система на NX 11 (legacy), PB_CMD_ADD_EXPR не парсится - апгрейдь или хардкодь expr в строках. На нержаве с VMC (высокие подачи) #102 overflow - лимит 9999 об/мин.
Вместо итогов
За 15 мин настраиваешь пост - экономишь 2 часа в день на правках, станок в работе +20% времени. Детали клиентам вовремя, бабки в карман. Пользуйтесь кодом, копируйте в работу.
А как вы мучаетесь с кривыми постами NX? Делитесь своими хакками в комментах - может, вместе доработаем под твою десятку.
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.