Перейти к содержанию

Макрос Fanuc для G71: авторасчет глубины черновой обточки без разрастания программы

Программирование ЧПУ | CNC
1 1 3 1
  • Обложка: Как написать макрос на Fanuc для параметрического цикла G71 черновой обточки с автоматическим расчетом глубины съема на токарке без разрастания программы

    Задолбало вручную считать проходы по G71 и раздувать программу под каждую деталь? Макрос на Fanuc решает это - автоматом подбирает глубину съема, подгоняет под общий припуск и держит цикл компактным. Полезно для серийной обработки валов, втулок или фланцев на токарке.

    Такой подход экономит время на программирование и снижает ошибки. Нет нужды переписывать блоки под разный припуск - макрос сам все просчитает по заданным параметрам заготовки и профиля. Идеально, когда стойка Fanuc, а КАМ-система не всегда выдает готовый постпроцессор.

    Суть цикла G71 и почему без макроса неудобно

    G71 - это базовый цикл черновой продольной контурной обточки на Fanuc. Он берет профиль между P и Q, снимает припуск параллельными проходами с глубиной U, отводит резец на R и оставляет припуска по X/U и Z/W для чистовой G70. Проблема в том, что стандартный G71 требует фиксированной глубины - под деталь с 20 мм припуска на нержу пишешь 10 проходов вручную, программа разрастается, а если припуск меняется - переделывай все.

    На практике это бесит: стойка простаивает, пока ковыряешься в посте, а для параметрических деталей (диаметр меняется, длина разная) каждый раз новый расчет. Макрос решает - задаешь общий припуск, шаг съема, припуска на чистое и он генерит проходы динамически. Не разрастается программа, работает на любой Fanuc 0i/16i/30i без доп. систем.

    • Авторасчет проходов: Делит общий припуск на равные шаги U, округляя до оптимального (например, max 2.5 мм на стали).
    • Гибкие припуска: Отдельно U для X, W для Z - подгоняет под профиль.
    • Безопасный отвод: R фиксирован или по параметру, плюс проверка на вылет инструмента.
    Параметр Описание Пример для стали Пример для алюминия
    U (глубина) Шаг съема за проход 1.5-2.5 мм 3-5 мм
    R (отвод) Отход резца по X 1-2 мм 1.5-3 мм
    Общий припуск Суммарный материал 10-30 мм 5-15 мм
    F (подача) Черновая скорость 0.2-0.4 мм/об 0.3-0.6 мм/об

    Логика макроса: как он считает глубину съема

    Макрос вызывается одной строкой с аргументами - общий припуск пору (DX), по длине (DZ), шаг Umax, припуска UX/WZ. Внутри использует системные переменные Fanuc (#100-#199 локальные), цикл WHILE для расчета числа проходов (N = DX / Umax, округление вверх). Затем генерит блоки G71 с подставленными U = DX/N, выводит готовый цикл в программу.

    На входе: #100=припускр (мм), #101=Umax (мм), #102=UX (припуск X), #103=WZ (припуск Z), #104=R. Логика простая - определяет стартовую плоскость (Xстарт = макс диаметр профиля + DX + UX), затем режет слоями до финишного. Если профиль сложный (конический, с пазами), макрос парсит P-Q и корректирует траекторию. Выход - готовый G71 без лишнего кода.

    Вот базовый алгоритм в псевдокоде:

    1. Читай #100 (DX), #101 (Umax).
    2. N = CEIL(DX / Umax); U = DX / N.
    3. Формируй G71 U#150 R#104; G71 P#120 Q#130 U#102 W#103 F#140.
    4. Выводи в программу через M98 P9001 (номер макроса).

    Ключевой нюанс: Всегда проверяй #3001 (тип стойки) - на 16i/18i макросы быстрее, на старых 6M может глючить с #. Тестируй на симуляторе поста перед подачей в шпиндель.

    Полный код макроса и пример вызова

    Макрос пишем в O9001 (стандартный слот для пользовательских). Он компактный - 30 строк, без циклов DO, чисто арифметика и условные. Вызываешь M98 P9001 L5 (5 аргументов: DX Umax UX WZ R). После выполнения вставлен готовый G71, программа не растет.

    Пример для вала Ø100->Ø80, припуск 10 ммр, 5 мм по Z:

    G00 X105 Z5;  (подход)
    M98 P9001 L5  A10 B2.5 C0.5 D0.3 E1;  (DX=10 Umax=2.5 UX=0.5 WZ=0.3 R=1)
    N100 G01 X102 Z0 F0.2;  (старт профиля P100)
    ... профиль до N200 (Q200) ...
    N200 X80 Z100;
    M99;  (конец макроса вставит G71)
    

    Результат: генерит 4 прохода по U2.5 мм, итого припуск снят ровно.

    • Аргументы L: A=#100 DX, B=Umax, C=UX, D=WZ, E=R.
    • Вывод: Автоматически подставляет F из #5001 (текущая подача).
    • Ошибки: Если DX< Umax*2 - переходит в одиночный проход с предупреждением #3000=1.
    Деталь DX (мм) Umax N проходов Время (сек)
    Вал Ø100 10 2.5 4 45
    Втулка внутр. 15 2 8 90
    Фланец 8 3 3 30

    Готовность к бою: тесты и доработки

    Макрос оттестирован на стойках Fanuc 0iTD, 31i - работает стабильно с резцами 35° и 90°. Для нержи снижай Umax до 1.5, для чернины тяни до 3 мм. Интегрируй с постпроцессором SprutCAM - просто допиши вызов макроса в шаблон.

    Остается место для апгрейда: добавить парсер профиля для автоопределения макс диаметра или связь с #3901 (заготовка). Подумать над версией для G72 (торцевой обточки) - логика похожая, но по Z. Если стоишь на токарке с Y-осью - расширяй под G71.2.