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

Макросы в 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

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

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

 

 

Опять таки у Вас тоже не универсальный расчет. В проекте всегда будет граница 2 и траектория 4? Сначала Вы прислали макрос с траекторией 1 и границей 1.

Прикрепляю новый макрос, надеюсь Вас устроит данный вариант. В нем нет никаких "привязок" к определенному имени траектории. Перед запуском данного макроса активируйте инструмент, которым будете выполнять обработку.

 

обработка плоскости.mac

Изменено пользователем Павел1
Ссылка на сообщение
Поделиться на других сайтах

Спасибо, очень хороший макрос. Если не сложно, объясните как сделали траекторию не 4, а универсальной. Мне это важно понять для других траекторий

 

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

Этот макрос для первого слоя, где в проекте всегда будет граница 2 и траектория 4. Потом, когда буду разбираться в написании макросов лучше, хотел создать на основе этого универсальный -для следующих слоев. Этот макрос выравнивает 40-ю фанеру, под слой 37мм. модель мы набираем слоями, к примеру модель высотой 222мм -будет из 6 слоев фанеры.

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

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

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

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

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

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

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

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

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

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

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



×
×
  • Создать...