Перейти к публикации

Макросы в Power Mill


Рекомендованные сообщения

6 часов назад, Arhgeo сказал:

 Была проблема с выбором пути сохранения Nc папки - сохранял рандомно в любое место.

В PM есть такой файлик pmstartup.mac, находится он обычно в C:\Program Files\Delcam\PowerMILL ххххх\lib\macro.

Вы можете в него добавлять разные простые команды, в том числе и предпочтения для NC-файлов, только вместо $dir, укажите реальный путь к папке в " ", куда необходимо записывать УП. И каждый раз, при запуске PM у Вас данные настройки предпочтений уже будут заполнены. Создаете NC-файл, все настройки уже готовы, записываете, и она направляется в указанную вами папку.

Просто PM сохраняет не все настройки, которые вы сделали в "Опциях", поэтому приходится прибегать к помощи данного файлика.

А так, конечно, тут уже каждый сам себе хозяин. Кому как удобно. 

Ссылка на сообщение
Поделиться на других сайтах


Здравствуйте, снова нужна помощь в доработке макроса. Макрос обрезает модель по высоте 37мм. Для этого создается граница,  плоскость и удаляется модель, после чего происходит вычисление траектории и модель восстанавливается из корзины. Проблема в том что в макросе указана модель с конкретным именем "test". В другом проекте он будет искать ту же модель "test" .

FORM BLOCK
EDIT BLOCK ZMIN "37"
EDIT BLOCK ZMIN LOCK
EDIT BLOCK ZMAX "39"
EDIT BLOCK ZMAX LOCK
EDIT BLOCK RESETLIMIT "20"
EDIT BLOCK RESET
BLOCK ACCEPT
CREATE BOUNDARY ; SILHOUETTE FORM BOUNDARY
EDIT BOUNDARY "1" TOLERANCE "0,05"
EDIT BOUNDARY "1" PRIVATE NO
EDIT BOUNDARY "1" CALCULATE
EDIT BOUNDARY "1" ACCEPT BOUNDARY ACCEPT
CREATE PLANE ; FROM BLOCK
"37"
EXPLORER SELECT Model "Model\Planes" NEW
EXPLORER SELECT Model "Model\test" NEW
DELETE MODEL "test"
FORM STRATEGYSELECTOR
STRATEGYSELECTOR STRATEGY "Finishing/Raster-Flat-Finishing.ptf" NEW

IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "Finishing/Raster-Flat-Finishing.ptf"

EDIT PAR 'CutDirection' 'any'
EDIT PAR 'Tolerance' "0,05"
EDIT PAR 'RadialDepthOfCut.UserDefined' '1' Edit Par 'Stepover' "7"
EDIT TPPAGE SWPointDistrb
EDIT TOOLPATH POINTDIST 'Filter.Type' 'arcfit'
EDIT TOOLPATH POINTDIST 'Filter.Factor' "0,05"
EDIT TPPAGE SWLeadsLinks
EDIT TPPAGE SWLeadIn
EDIT TOOLPATH LEADS LEADIN RAMP
EDIT TPPAGE SWLink
EDIT TOOLPATH "1" CALCULATE
FORM ACCEPT SFRasterFlat
SPLITTER TABRECYCLER
EDIT RECYCLER RECOVER Model "test"
EXPLORER SELECT Model "Model\Planes" NEW
DELETE MODEL "Planes"

пытался вставить в макрос такой кусок кода. Отдельно он удаляет модель, в макросе не работает.

// имя проекта
        STRING proj = project.name
        // путь к модели 
        STRING ModelPath = folder('Model')[0].Path
        // название модели (без формата) 
        STRING ModelName = folder('model')[0].Name
        // поиск позиции $ModelName в строке $ModelPath (0-начало) 
        REAL Pos = position($ModelPath, $ModelName)
        // отнимаем от пути к модели имя модели
        STRING path = substring($ModelPath, 0, $Pos)

        DELETE model $ModelName

Ссылка на сообщение
Поделиться на других сайтах
19.07.2024 в 14:18, Arhgeo сказал:

Здравствуйте, снова нужна помощь в доработке макроса. Макрос обрезает модель по высоте 37мм. Для этого создается граница,  плоскость и удаляется модель, после чего происходит вычисление траектории и модель восстанавливается из корзины. Проблема в том что в макросе указана модель с конкретным именем "test". В другом проекте он будет искать ту же модель "test" .

 

Могу предложить Вам макрос без удаления детали в корзину. 

Можно выделением всех поверхностей детали "test" занести их в окно "переменный припуск" - режим обработки "Игнорировать".

Макрос проверен, работает в PM2016. Поэтому некоторые команды могут быть отличные от "новых" версий PM, но принцип одинаковый.

 

DIALOGS ERROR OFF
DIALOGS MESSAGE OFF

 

FORM BLOCK
EDIT BLOCK ZMIN "37"
EDIT BLOCK ZMIN LOCK
EDIT BLOCK ZMAX "39"
EDIT BLOCK ZMAX LOCK
EDIT BLOCK RESETLIMIT "20"
EDIT BLOCK RESET
BLOCK ACCEPT
CREATE BOUNDARY ; SILHOUETTE FORM BOUNDARY
EDIT BOUNDARY "1" TOLERANCE "0,05"
EDIT BOUNDARY "1" PRIVATE NO
EDIT BOUNDARY "1" CALCULATE
EDIT BOUNDARY "1" ACCEPT BOUNDARY ACCEPT
CREATE PLANE; "37"
EDIT MODEL "test" SELECT SURFACE
FORM STRATEGYSELECTOR
STRATEGYSELECTOR STRATEGY "Finishing/Raster-Flat-Finishing.ptf" NEW
IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "Finishing/Raster-Flat-Finishing.ptf"
EDIT TOOLPATH THICKNESS LIST UPDATE 7 NEW
EDIT TOOLPATH ; THICKNESS ACQUIRE
EDIT TOOLPATH ; THICKNESS COMPONENTS IGNORE
THICKNESS APPLY
THICKNESS ACCEPT
EDIT PAR 'CutDirection' 'any'
EDIT PAR 'Tolerance' "0,05"
EDIT PAR 'RadialDepthOfCut.UserDefined' '1' Edit Par 'Stepover' "7"
EDIT TPPAGE SWPointDistrb
EDIT PAR 'Filter.Type' 'arcfit'
EDIT PAR 'Filter.Factor' "1"
EDIT TOOLPATH "1" CALCULATE
FORM ACCEPT SFRasterFlat
DELETE MODEL "Planes"

 

DIALOGS ERROR On
DIALOGS MESSAGE On

Ссылка на сообщение
Поделиться на других сайтах

Довольно интересный способ, учусь использовать его. Ваш макрос в одном из проектов не сработал. Скопировал кусок кода где он запнулся.

EDIT TPPAGE SWPointDistrb
EDIT PAR 'Filter.Type' 'arcfit'
EDIT PAR 'Filter.Factor' "1"
[EDIT TOOLPATH "1" CALCULATE

Ошибка: Нельзя вычислить неактивную траекторию.

FORM ACCEPT SFRasterFlat

Ссылка на сообщение
Поделиться на других сайтах

 

Понял свою ошибку, у вас расчёт не универсальный, в макросе указана конкретная модель, траектория, граница. у меня же граница 2, траектория 4. Переделал модель тест на универсальное указание модели, вставив костыль из другого макроса. Всё заработало.

EDIT BOUNDARY "2" CALCULATE
EDIT BOUNDARY "2" ACCEPT BOUNDARY ACCEPT
CREATE PLANE; "37"


STRING proj = project.name
        // путь к модели 
        STRING ModelPath = folder('Model')[0].Path
        // название модели (без формата) 
        STRING ModelName = folder('model')[0].Name
        // поиск позиции $ModelName в строке $ModelPath (0-начало) 
        REAL Pos = position($ModelPath, $ModelName)
        // отнимаем от пути к модели имя модели
        STRING path = substring($ModelPath, 0, $Pos)  


EDIT MODEL $ModelName SELECT SURFACE
FORM STRATEGYSELECTOR
STRATEGYSELECTOR STRATEGY "Finishing/Raster-Flat-Finishing.ptf" NEW
IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "Finishing/Raster-Flat-Finishing.ptf"
EDIT TOOLPATH THICKNESS LIST UPDATE 7 NEW
EDIT TOOLPATH ; THICKNESS ACQUIRE
EDIT TOOLPATH ; THICKNESS COMPONENTS IGNORE
THICKNESS APPLY
THICKNESS ACCEPT
EDIT PAR 'CutDirection' 'any'
EDIT PAR 'Tolerance' "0,05"
EDIT PAR 'RadialDepthOfCut.UserDefined' '4' Edit Par 'Stepover' "7"
EDIT TPPAGE SWPointDistrb
EDIT PAR 'Filter.Type' 'arcfit'
EDIT PAR 'Filter.Factor' "4"
EDIT TOOLPATH "4" CALCULATE
FORM ACCEPT SFRasterFlat
DELETE MODEL "Planes"

 

DIALOGS ERROR On
DIALOGS MESSAGE On

 

Понял свою ошибку, у вас расчёт не универсальный, в макросе указана конкретная модель, траектория, граница. у меня же граница 2, траектория 4. Переделал модель тест на универсальное указание модели, вставив костыль из другого макроса. Всё заработало.

 

DIALOGS ERROR OFF
DIALOGS MESSAGE OFF

 

FORM BLOCK
EDIT BLOCK ZMIN UNLOCK
EDIT BLOCK ZMAX UNLOCK
EDIT BLOCK ZMIN "37"
EDIT BLOCK ZMIN LOCK
EDIT BLOCK ZMAX "39"
EDIT BLOCK ZMAX LOCK
EDIT BLOCK RESETLIMIT "20"
EDIT BLOCK RESET
BLOCK ACCEPT
CREATE BOUNDARY ; SILHOUETTE FORM BOUNDARY
EDIT BOUNDARY "2" TOLERANCE "0,05"
EDIT BOUNDARY "2" PRIVATE NO

EDIT BOUNDARY "2" CALCULATE
EDIT BOUNDARY "2" ACCEPT BOUNDARY ACCEPT
CREATE PLANE; "37"


STRING proj = project.name
        // путь к модели 
        STRING ModelPath = folder('Model')[0].Path
        // название модели (без формата) 
        STRING ModelName = folder('model')[0].Name
        // поиск позиции $ModelName в строке $ModelPath (0-начало) 
        REAL Pos = position($ModelPath, $ModelName)
        // отнимаем от пути к модели имя модели
        STRING path = substring($ModelPath, 0, $Pos)  


EDIT MODEL $ModelName SELECT SURFACE
FORM STRATEGYSELECTOR
STRATEGYSELECTOR STRATEGY "Finishing/Raster-Flat-Finishing.ptf" NEW
IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "Finishing/Raster-Flat-Finishing.ptf"
EDIT TOOLPATH THICKNESS LIST UPDATE 7 NEW
EDIT TOOLPATH ; THICKNESS ACQUIRE
EDIT TOOLPATH ; THICKNESS COMPONENTS IGNORE
THICKNESS APPLY
THICKNESS ACCEPT
EDIT PAR 'CutDirection' 'any'
EDIT PAR 'Tolerance' "0,05"
EDIT PAR 'RadialDepthOfCut.UserDefined' '4' Edit Par 'Stepover' "7"
EDIT TPPAGE SWPointDistrb
EDIT PAR 'Filter.Type' 'arcfit'
EDIT PAR 'Filter.Factor' "4"
EDIT TOOLPATH "4" CALCULATE
FORM ACCEPT SFRasterFlat
DELETE MODEL "Planes"

 

DIALOGS ERROR On
DIALOGS MESSAGE On

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Сообщения

    • gudstartup
      @mrVladimir Cпасибо за ответ он во многом прояснил  ситуацию с заменой компонентов чпу хорошо бы все не забывали об описании результатов ремонта.
    • lsanek99
      Может кто-то показать пример указания моментов затяжки на сборочном чертеже (хотя-бы 1), если не сложно
    • Maze
      если вы храните КД В ЛОЦМАН, то и используйте его инструментарий для создания, а именно группы замены.  Если у вас есть ЛОЦМАН, то есть и доступ к Сквозная 3D-технология АСКОН. Методология (КОМПЛЕКС АСКОН 22) Там расписано подробно работа с 3Д для замены.
    • mrVladimir
      Заменили материнскую плату. Залили сохраненный SRAM_bak - все пошло, все заработало. Спасибо всем за помощь и за участие.
    • maxx2000
      @amateur2009 да тебе пока ступкой не протолчешь  ты и не поймешь. Ну вот сам себе ответь, неужели так тяжело было найти в справке настройки отвечающие за привязки (геометрические ограничения). Я же тебе сразу про это и сказал, а ты вместо того чтобы это сделать начал втирать дичь как ты привык  в Крео и Автокаде при этом требуя чтобы тебе это показали гуру NX которые возможно про Автокад и Крео только слышали и понятия не имеют как это реализовано в них.
    • amateur2009
      Еще одним бесполезным сообщением больше. Надеюсь, ты понимаешь, что все эти формальные ответы в общем то известны. Так что прибереги свои советы для тех, кто достоин, а я не в этом списке. )) Ты же сам знаешь, ты сам писал выше.
    • maxx2000
      не, не ну его на хрен. Ты уже показал скилуху. 
    • FreierMann
      Добрый вечер! Хотелось бы ещё уточнить, как лучше делать полный бэкап на стойке NEWAY Fanuc i Series plus (никаких других обозначений нет)? Станок модели VM1150S. Есть здесь какие-то особенности?   Это какой-то особенный Fanuc с китайской оболочкой? Можно ли как-то модель стойки посмотреть в меню самой стойки? Или достаточно посмотреть ее название, напечатанное на самой стойке сверху?    
    • maxx2000
      для этого надо как минимум прочитать справочную систему, там есть 99% ответов на все твои вопросы касательно озвученной тобой проблемы при переходе в NX. Оставшийся 1% это твоё тупое желание работать в NX как в CREO. Это всё равно что пересесть с автомата на механику. Всё что ты можешь взять с собой в NX это методику построения 3D моделей и попытаться её адаптировать к новым условиям. Бобышки везде строятся одинаково.  
    • tangous
      Какой халявы?  Maxx2000 фу! Не бери гадость в рот. Выплюнь. Для меня MTD обыденность. Вас ещё поучу.   Нет 4х осевого который примет power mill. Ваше упрямство граничит с глупостью. Или это она и есть?   И как обычно. Хоть бы что по делу. Mannul, а точно Манул? Сначала подумал шпиц. Ан нет. Ошибся. :)). :))
×
×
  • Создать...