Jump to content

Макросы в Power Mill


eksodus

Recommended Posts

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

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

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

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

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

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

Link to post
Share on other sites


Arhgeo

Здравствуйте, снова нужна помощь в доработке макроса. Макрос обрезает модель по высоте 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

Link to post
Share on other sites
Павел1
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

Link to post
Share on other sites
Arhgeo

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

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

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

FORM ACCEPT SFRasterFlat

Link to post
Share on other sites
Arhgeo

 

Понял свою ошибку, у вас расчёт не универсальный, в макросе указана конкретная модель, траектория, граница. у меня же граница 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

Link to post
Share on other sites
Павел1
12 часов назад, Arhgeo сказал:

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

 

 

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

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

 

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

Edited by Павел1
Link to post
Share on other sites
Arhgeo

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

 

Link to post
Share on other sites
Arhgeo

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Клиент
      Ага, и пост сварганить под другой кам. Первая мысль, какая приходит в голову- это не соответствующе расположена деталь в кам и на станке. Но, ведь, 2 другие стороны ровные, на что вы и обратили внимание. Разгадку не знаю, но, все-таки, предполагаю, что дело не в программе. Контроль rtcp происходит на станке или в кам?
    • Ветерок
      очередная фигня. Не могу вставить в заметку символы. Пишет, что нет файла gtol.sym. А такого файла действительно нету. Есть gtol97.sym. Скопировал его в достпную папку, переименовал. Путь к папке прописан. Всё равно ругается.  А недавно проблемы не было.
    • Viktor2004
      это специально для теста 5-тиосевой обработки сделано   самодельные я туда поставил
    • lem_on
      Какой конченый программист, деталь простая как лапоть, а делается через одновременную обработку. Зачем там 5 осей, непонятно.  Цикл обкатки шарика на станке то есть?  Если там все норм, то пинать программиста с особой жестокостью. 
    • ak762
      глядя на ваше видео, впечатление что проблемма в программе а не в станке, почему там такие паузы вместо движения по простому контуру давным давно что то подобное делал на 5х микроне так все было плавно если НЦ код сгенерирован правильно и фрезу не отжимало на заготовке с HRC55       Mikron_5_axis_clip_1.MOV
    • Viktor2004
      к сожалению политику определяю не я. Мне моими политиками указано не сопротивляться.
    • fantom.ul
    • Ветерок
      Разобрался с помощью Ютуба. Оказывается в этой таблице всё не так. Там это не над столбцом, а слева, где дерево. Я туда и не смотрел (дисплей слишком большой ). И сортировка этой таблицы возможна только по одному столбцу, а не разным, как в спецификации.
    • Ветерок
      Вот про то и речь. Не кликается, не выбирается. И иконка выбора свойств неактивна.   Насколько я понял, в таблицу идет по умолчанию (и только так) значение Desription. И надо каким-то образом связать его с Наименованием чтобы не вводить вручную.
    • gudstartup
      тогда езжайте спокойно на следующий объект и думайте в поезде под стук колес а они пусть работают в 3+2 если план горит!!
×
×
  • Create New...