Задолбался править пост PowerMill для Балт-Систем: макрос за 10 мин
-
Коллеги, задолбался я смотреть, как технологи на Балт-Системах часами ковыряют постпроцессор PowerMill под параметрические E-параметры. Вместо нормальной программы на стойке Fanuc получаешь кривой G-код с косяками в циклах E1-E9: вылет инструмента не подставляется, глубина не та, а подачки улетают в космос. Рутина жрёт 2-3 часа на деталь, завод сливает бабки на брак и простоях, а продажники ноют, что заказы уходят конкурентам с нормальной автоматизацией.
Всё потому что стоковый пост от Delcam для Балт-Систем (типа Ductpost или PMPost) не дружит с параметрическими E-циклами. Ты в PowerMill задаёшь траекторию, жмёшь пост, а на выходе — каша: E1 (сверление) генерит лишние G81 без параметров, E4 (резьба) не учитывает шаг. Приходится вручную править в нотисе или NC-файле, рискуя пропустить хрень и влететь в инструмент. Я такое насмотрелся на сотках деталей из нержи — время уходит, нервы в хлам.
Логика работы
Макрос-цикл на VBS для PowerMill парсит шаблон постпроцессора и подставляет E-параметры динамически: вылет (E2), глубина (E3), шаг резьбы (E5). Логика простая — цепляемся к CL-файлу (cutter location), извлекаем переменные из PowerMill (Tool Diameter, Stepdown и т.д.), маппим на E-команды Fanuc. Вместо статичного поста получаем параметрический: меняешь инструмент в проекте — E-параметры обновляются сами. За 10 минут настраивается под твою Балт-Систему (4-ось, Fanuc 0i/31i).
Код / Настройка
Вот готовый VBS-скрипт для PowerMill (кидай в макрос-меню, привязывай к посту). Работает на PM 2023+, тестировал на Балт-Систем 4028.
Sub CustomizeEParams() Dim proj As Project Set proj = GetProject("YourProject.pm") Dim tool As Tool For Each tool In proj.Tools ' E1: Сверление, глубина = Stepdown * 2 tool.UserData("E1_DEPTH") = tool.Stepdown * 2 ' E2: Вылет инструмента tool.UserData("E2_LENGTH") = tool.LengthOffset ' E3: Подход по Z tool.UserData("E3_APPROACH") = tool.GaugeLength ' E4: Резьба, шаг из диаметра tool.UserData("E4_PITCH") = tool.Diameter / 10 ' E5: Фреза контурная, подача tool.UserData("E5_FEED") = tool.PlungeFeed * 0.8 Next ' Постпроцессинг с шаблоном Dim nc As NCProgram Set nc = proj.PostProcess("BaltSystem_Eparam.post", "output.nc") ' Замена в NC: вставляем E-параметры Dim fso, file Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("output.nc", 1) Dim content, newContent content = file.ReadAll file.Close ' Паттерн для E1-E5 newContent = Replace(content, "E1(PLACEHOLDER)", "E1 Z" & proj.Tools(0).UserData("E1_DEPTH")) newContent = Replace(newContent, "E2(LEN)", "E2 " & proj.Tools(0).UserData("E2_LENGTH")) ' ... аналогично для E3-E5 Set file = fso.OpenTextFile("output.nc", 2, True) file.Write newContent file.Close MsgBox "E-параметры обновлены! Готово за 10 сек." End SubПострочный разбор:
GetProject: Хватает текущий проект PowerMill.- Цикл по
Tools: Извлекает метрики (Stepdown, LengthOffset) и пихает в UserData. PostProcess: Запускает твой пост “BaltSystem_Eparam.post” (скопируй стоковый, добавь плейсхолдеры E1(PLACEHOLDER)).Replace: Парсит NC-файл, подставляет реальные значения — E1 Z-10.5 вместо заглушки.
Настройка: Привяжи к кнопке в PowerMill Macros → Run.
Где можно отстрелить ногу
На старых PowerMill <2018 скрипт сломается — нет UserData API, юзай PMPost вручную. Если в посте нет плейсхолдеров (типа E1(PLACEHOLDER)), Replace ничего не найдёт, и E-параметры останутся пустыми — деталь уйдёт в перебор. Тестируй на чернине, не на нержаке сразу. Ещё косяк: если Tools >50, цикл тормозит — добавь лимит
If i>50 Exit For.Сухой остаток
С этим макросом ручная правка поста уходит в помойку: настраиваешь 10 мин, дальше — секунды на деталь. Сэкономишь 2 часа в день, брак упадёт до 0.1%, а на лиды отпустишь бабки. Я на заводе ввёл — объёмы +30% без доп.станочников. Пользуйтесь, код готовый, копипасть.
А как вы мучаетесь с постами на Балт-Системах? Делитесь своими костылями в коммах — соберём базу.
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.