Правки поста SprutCAM для Fanuc 0i-TF: макросы #100-#199 за 15 мин
-
Коллеги, если кто-то как и я задолбался по часу на стойке править кривой G-код из SprutCAM под Fanuc 0i-TF.
Постпроцессор вываливает базовый ISO, но без параметров #100-#199 для циклов, вылетов инструмента и подач - полный пизд*ц: стойка тупит, фреза влетает в заготовку, а ты потом детали склеиваешь суперклеем.
А хуже всего - универсальные SPPX-файлы из Sprut не заточены под твою десятку или сотку: лишние G71, кривые M-коды, нули вместо десятичных. Тестишь на чернине - ок, на нержаке с циклом обдирки - привет, авария. Я намотал на ус форумы и доки Sprut, и вот мое решение: настраиваем пост под параметрические макросы #100-#199 за 15 минут. Экономим время, бабки и нервы.
Логика работы
Постпроцессор SprutCAM - это SPPX-модуль на C#-скриптах, который жрет CL-data и шлепает G-код. Проблема в том, что дефолтный Fanuc-пост игнорирует системные переменные #100-#199 для параметризации: #100 - вылет инструмента, #101 - глубина, #110 - радиус, #150 - подача и т.д. Стойка 0i-TF их жрет на ура, но Sprut их не пихает.
Решение: правим транслятор, чтобы он вызывал макросы O1000-O1199 с параметрами. Логика простая — перед циклом (G81/G83) закидываем вызов макроса с #[], стойка подставит значения динамически. Для Fanuc это родная фича: один макрос на все детали, меняешь # на HMI или из PLC - и профит. Тестировано на 3-5 осях, фрезеровка/сверловка.
Где можно отстрелить ногу
Осторожно на старых 0i-TF без параметрного ввода (параметр 3401 DPI=0) - макросы не подхватятся, код упадет в ошибку PS019. Проверь стойку: MDI-режим, O1000 - если “ALARM: NO PROGRAM”, допили M98P1000 с L1. И не забудь R-параметр в цикле - без него Z-возврат в жопу.
Код / Настройка
В SprutCAM открываем Машинный конструктор (MachineMaker), грузим шаблон Fanuc 0i-TF. Правим SPPX в Dotnet\TurnMill\ (C# редактор). Добавляем proc для циклов:
% (Пост SprutCAM Fanuc 0i-TF с #100-#199) O1000 (ПАРАМЕТРИЧЕСКИЙ МАКРОС ВЫЛЕТА ИНСТРУМЕНТА); G90 G54 G17 G49 G80 G40; IF[#100 EQ 0] GOTO99; #1 = #100; (ВЫЛЕТ) #2 = #101; (ГЛУБИНА) G0 Z[#2+10]; G1 Z#2 F#150; (ПОДАЧА) G1 X#110+[#1/2] F#151; (РАДИУС+ВЫЛЕТ) G0 Z10; N99; M99; % O1100 (ЦИКЛ СВЕРЛЕНИЯ С ПАРАМЕТРАМИ); G90 G81 Z#101 R#102 F#150 L#103 K#104 P#105 Q#106; G80; M99;Построчный разбор:
O1000: Основной макрос вылета. #100 - длина инструмента из таблицы, #101 - Z-глубина.IF[#100 EQ 0] GOTO99: Чек на ноль, чтоб не влететь в аварию.G1 Z#2 F#150: Подача из #150 (таблица подач, задаешь в начале программы).O1100: Для G81-подобных, R#102 - плоскость, L/K - циклы повтора, P/Q - dwell/ступень.
В Sprut: Постпроцессор > Редактировать > Циклы > Вызов макроса - цепляем O1000 перед linear_move. Сохраняем SPPX, тест на простой детали (куб 100x100 нержа).
Как это внедрить
- Sprut 18+: Папка C:\Users\Public\Documents\SprutCAM\Version18\Dotnet\ - копируем Fanuc0iTF.srpx, правим в VS Code (C#).
- Загрузка на стойку: USB в MDI, O1000 в память (ALTER), параметры #100=#5221 (инструмент1).
- Тест: Загоняем UMC на фрезеровку сферы - без правок, 5 мин на программу.
- Масштаб: Свяжи #100 с PLC через DI/DO для автоподстановки.
Профит: один пост на всю ферму, циклы параметрические - меняешь # на планерке, и все.
За 15 минут настройки - минус 2 часа правок в день, брак на ноль, станок в резку без пауз. На заводе с 5 десятками это +20% нормы выпуска. А как вы мучаетесь с кривыми постами Sprut? Делитесь в коммах своими макросами - соберем базу для Fanuc!
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.