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

Макросы в Power Mill


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

Макрос для создания и активации СК по заготовке

Показать содержимое  
ECHO OFF DCPDEBUG UNTRACE COMMAND ACCEPT //отключение эхо

DIALOGS ERROR OFF
DIALOGS MESSAGE OFF

int $WPsize = size(folder('WORKPLANE')) //счётчик СК

int $j = $WPsize

MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK //создание СК по заготовке

While $WPsize==$j {

//ожидание новой СК

$j = size(folder('WORKPLANE'))

}

int $i = $j - 1

STRING LIST $WP = extract(folder('WORKPLANE'), 'name') //список СК

ACTIVATE Workplane $WP[i]

DIALOGS ERROR ON
DIALOGS MESSAGE ON

 

Hide  
Определяется текущее количество СК, появляется окошко выставления СК по заготовке и в цикле ожидается появление новой СК, при появлении новой СК создаётся полный список всех СК и активируется последняя
Изменено пользователем Konstantin_VP
Ссылка на сообщение
Поделиться на других сайтах


В 24.05.2017 в 13:59, eksodus сказал:

если добавить в настройках Панели состояния в пользовательские поля функцию


limits('toolpath','')[4]

то получим минимальное Z активной траектории

если 4 заменить на 5 - максимальное Z

мне удобно, может и ещё кому пригодится...

 

Zmin.png.d8fc6a6de587667393377803bd188f59.png

Здравствуйте. Это именно то что мне надо, но к сожалению я работаю в Piwermill Pro 10.0 , а там это не работает. Может вы знаете как реализовать это же в Piwermill Pro 10.0 ?

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 22.03.2017 в 13:52, k.sema сказал:

 

Затем для вызова макроса назначил удобное мне сочетание клавиш, всё отлично работает, спасибо!

Подскажите где или начаная с какой версии можно назначать сочетания клавиш на макрос.

Работаю в 2014 R2, не нашёл.

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

Здравствуйте Eksodus.

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

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

Подскажите где или начаная с какой версии можно назначать сочетания клавиш на макрос.

Работаю в 2014 R2, не нашёл.

Я перешёл с версии 2010 сразу в 2016 и там это уже было)

 

Скрытый текст

5bd575e517817_.png.7c256ba122a2d6ca346447cd03b6bef9.png

 

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

Всем доброго дня. Подскажите пожалуйста. Работаю в РМ2017. Есть набор отверстий. Мне нужно  все отверстия этого набора сместить  по X и Y. Не могу найти, как определить координаты центра отверстий. В принципе это и нужно - положить в одну переменную координату X, а в другую координату Y.

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

Доброго времени суток!

Коллеги, подскажите пожалуйста формат команды, для проверки создан ли карман с именем в переменной $karman в подпапке  с именем d переменной  $FeatureGroup1

Нужен вызов  процедуры доработки кармана, если карман создан в предыдущей черновой обработке

Что-то я смотрю в толмуд по макросам , как баран на новые вороты, с гугл -переводчиком курю, не могу добиться результата

Тыкаюсь методом тыка, не могу понять  формат команды, какие вводные данные ему нужны?

 

int obr2 = size(filter(folder($FeatureGroup1), 'position(Name,$karman) == 0')) 
IF  $obr2 != 1 {

......????

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

Уважаемый Eksodus, в макросе Holes3 ,диаметр центровки у меня всегда получается 3,9. Это так задумано, или я что-то не так делаю? Благодарю за ответ.

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

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

Макрос - это обычный текстовый файл. Откройте его любым текстовым редактором и исправьте как вам нужно.

В 23.11.2018 в 21:10, igor2511 сказал:

Holes3 ,диаметр центровки у меня всегда получается 3,9. Это так задумано, или я что-то не так делаю?

Я задал такой диаметр чтобы центровка не конфликтовала если вдруг будут отверстия 4,0

Как бы мне думается - что отверстия 4,0 чаще встречаются чем 3,9

В самом же макросе происходит проверка существующего инструмента по типу инструмента (в данном случае Сверло) и по его диаметру

и если у вас вдруг будут отверстия диаметром 4,0 при центровке 4,0 - то сверло 4,0 не будет создаваться и будет использоваться эта центровка

Вот поэтому центровка и имеет диаметр 3,9

Но вы конечно можете открыть макрос в текстовом редакторе и изменить диаметр на любой нужный.

В 11.11.2018 в 02:16, syncomp сказал:

Есть набор отверстий. Мне нужно  все отверстия этого набора сместить  по X и Y. Не могу найти, как определить координаты центра отверстий. В принципе это и нужно - положить в одну переменную координату X, а в другую координату Y.

1) Сместить нужно все отверстия в наборе на одинаковое расстояние ?

2) И обязательно ли вам нужно задавать это через переменные ?

3) И обязательно ли нужны координаты ?

 

Я вроде нашел как это сделать через обычные диалоговые окна самого милла, ну а подставить в цикл это будет делом техники.

 

В 17.10.2018 в 08:19, RadN сказал:

Это именно то что мне надо, но к сожалению я работаю в Piwermill Pro 10.0 , а там это не работает. Может вы знаете как реализовать это же в Piwermill Pro 10.0 ?

Никак. Язык макросов сильно начали улучшать с 2012 милла.

Только поставить новую версию милла.

 

В 27.10.2018 в 19:11, raffnec сказал:

Подскажите где или начаная с какой версии можно назначать сочетания клавиш на макрос.

Работаю в 2014 R2, не нашёл.

Эта возможность появилась в PowerMILL 2015 R2.

 

В 15.11.2018 в 00:20, scorpion1007 сказал:

подскажите пожалуйста формат команды, для проверки создан ли карман с именем в переменной $karman в подпапке  с именем d переменной  $FeatureGroup1

с каким именем карман ? как задаются переменные $karman и  $FeatureGroup1 ? и какая логика самого макроса ?

может лучше выложить сам макрос ? и повермилл - какая версия ?

 

 

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

1) Сместить нужно все отверстия в наборе на одинаковое расстояние ?

2) И обязательно ли вам нужно задавать это через переменные ?

3) И обязательно ли нужны координаты ?

 

Я вроде нашел как это сделать через обычные диалоговые окна самого милла, ну а подставить в цикл это будет делом техники.

Я сам знаю, как в диалоговых окнах изменить координаты центра отверстий. Но если их 40? И все изменить нужно? И не на одинаковое расстояние, причем заранее неизвестное, а высчитанное в процессе работы макроса.

Расскажу что я хочу сделать и зачем мне это нужно.

На работе, мы крепим заготовку к  фанерной плите и прикручиваем ее саморезами. Часто в заготовке заложены несколько моделей. Я в Солиде собираю сборку из моделей, а потом импортирую  в РМ как модель. Так проще, не надо каждую импортированную в РМ модель перемещать и устанавливать на свое место. Так вот , когда закончится обработка ,на столе остаются несколько готовых моделей, прикрученные саморезами к плите. Потом, саморезы выкручиваются и остаются обработанные модели и сама плита. Но чтобы знать куда закручивать саморезы, чтобы фреза не попала на него при работе мы составляем таблицу. Подводим мышку к примерному месту и переписываем координаты, причем округляя их до целых.  Ошибки неизбежны. Я и задумал автоматизировать этот процесс. Именно для этого я и спрашивал раньше о команде PICK. Как было бы удобно! Щелкнул мышкой в нужном месте и тебе в файл записались бы координаты точки куда нужно закручивать саморезы! Потом распечатал его и отдал оператору...

Но так как команду PICK использовать не получается, то я решил узнать эту инфу через создание набора отверстий. РМ в любом случае содержит информацию о радиусе/диаметре и центре всех отверстий. Только надо знать где и как получить эту информацию. Получить в переменой, обработать (округлить) и воспользовавшись командой POSITION X/Y переместить в эту точку. ну и записать координаты  в файл...

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

Но если их 40? И все изменить нужно? И не на одинаковое расстояние, причем заранее неизвестное, а высчитанное в процессе работы макроса.

ну так я про это и спрашиваю как раз

 

тогда возникает еще пара вопросов:

4)  как создаются отверстия ДО их перемещения ?

5)  как задаются сами перемещения отверстий по XY ?

вы вручную для каждого отверстия будете вводить координаты смещения ?

или какой алгоритм тут должен быть на ваш взгляд ?

 

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

Добрый вечер всем!

 

Доработал макрос для сверления, и надеюсь больше к нему возвращаться не буду.

Что изменилось:

- немного почистил от мусорных символов

- убрал функцию проверки активной папки, ибо папка и так создается и становится активной в данном макросе

- добавил вопрос - Сверлить ВСЕ отверстия от ВЕРХА Заготовки?

Verh.png.edc1eb47a64e768913c05930a4d2b7d7.png

 

Это для тех случаев - когда отверстия расположены не с самого верха детали, а чуть ниже в понижении

чтобы был выбор - пофрезеровать понижение и потом сверлить или сначала сверлить

 

- уменьшил с 2 до 1 мм высоту включения рабочей подачи и с 1 до 0,5 мм начало цикла сверления

- исправил ошибку в задании режимов резания, - теперь можно спокойно загрузить ДО запуска макроса свои сверла с предзаданными режимами,

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

- сделал 2 версии макроса - для 2016 и 2019 повермилла

отличие только в том - что в 2019 версии убран вопрос - "Сверлить отверстия насквозь ?"

макрос автоматически определяет тип отверстия и в зависимости от типа ставит тип сверления "Сквозное" или "Глухое"

к сожалению, это не работает в 2016 милле, поэтому вопрос "Сверлить отверстия насквозь ?" в макросе для 2016 милла остается

- теперь после запуска макроса в Проводнике сворачиваются ветки Траектории, Инструменты и Отверстия, чтобы макрос выполнялся быстрее

в конце макроса они разворачиваются опять

 

Все остальное без изменений.

И сам макрос, точнее два его варианта, с тестовой моделькой внутри:

 

 

Sverlenie.zip

Ссылка на сообщение
Поделиться на других сайтах
В 26.11.2018 в 14:22, eksodus сказал:

4)  как создаются отверстия ДО их перемещения ?

А вы не знаете как создать набор отверстий в РМ?

Блин! Мне всего-то надо получить данные из раздела положение отверстия. Помечено красным.

1.JPG

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

А вы не знаете как создать набор отверстий в РМ?

причем тут что знаю я ? способов-то создания отверстий - вагон и маленькая тележка, и какой вариант выбрали вы я без понятия

 

3 часа назад, syncomp сказал:

Блин! Мне всего-то надо получить данные из раздела положение отверстия. Помечено красным.

вот пример, выводит XYZ

COPY FEATURESET ; SELECTED
RENAME Featureset # "feature_XYZ"
ACTIVATE Featureset "feature_XYZ"

REAL LIST WP_X = extract($components(entity('featureset','')),'WPPoint[0]')
REAL LIST WP_Y = extract($components(entity('featureset','')),'WPPoint[1]')
REAL LIST WP_Z = extract($components(entity('featureset','')),'WPPoint[2]')

INT $index = 0
WHILE $index < SIZE(WP_X) {
	STRING TEXT = WP_X[$index] + ';' + WP_Y[$index] + ';' + WP_Z[$index]
	PRINT $TEXT
	$index = $index + 1
}

DELETE FEATURESET "feature_XYZ"

 

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

Добрый день !

Порылся по своим макросам, вот нашел еще один полезный.

Закрывает выбранные отверстия.

 

Вначале спрашивает:

403.png.7b96b0a601028e504110715120455d71.png

 

Если нажимаем ДА, то макрос становится на паузу с запросом -

 

Выберите ВНУТРЕННИЕ верхние
элементы Отверстий!

 

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

Подходит для плит или для отверстий на ровных участках типа :

401.png.b0d156188dd67ac4899c1b922a67d5da.png

 

Сама плоскость может быть под любым углом повернута по отношению к Z !

Главное - чтобы была именно плоскость.

 

Если же на первый вопрос ответить НЕТ, то опять появится запрос для выделения поверхностей.

Повторяем все как и в первом случае, только в конце нужно будет еще выбрать поверхность по которой проходит верхний компонент отверстия

 

А этот способ уже подходит для криволинейных поверхностей, например вот таких:

 

402.thumb.png.e36b2ba51ddee8e26a7e17da15e1ae78.png

 

Ну и сам макрос:

 

CapHoles.zip

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

Может кому пригодится. 

Макрос для закраски моделей, можно использовать для удобного выделения моделей через ctrl+alt+left click (выбор всех поверхностей по общему цвету).

Показать содержимое  
REAL ARRAY R[] = {1,     0,     0,     0,     1,     1,     1,     0} // красный
REAL ARRAY G[] = {1,     0,     1,     1,     0,     0,     1,     0} // зелёный
REAL ARRAY B[] = {1,     1,     0,     1,     0,     1,     0,     0} // синий

int $ModelSize = size(FOLDER('model'))
int $i = 0
int $j = 0
string $ModelName = ''

IF $ModelSize > 1 {

While $i<$ModelSize {

$ModelName = FOLDER('model')[$i].Name
EDIT MODEL $ModelName COLOUR RGBSELECT
if $j<size($R) {
RGB ${R[$j]} ${G[$j]} ${B[$j]}
} else {

$j=1

}

$i=i+1
$j=j+1
}


}

 

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

Получение списков всех основных компонентов:

Показать содержимое  
//Полный список в активном StockModel
STRING LIST $list1 = extract((entity('StockModel','').States), 'name')


//Список траекторий в активном StockModel
STRING LIST $list2 = extract(filter(entity('StockModel','').States,"Type=='Toolpath'"), 'name')


//Список траекторий в активном ncprogram
STRING LIST $list3 = extract(filter(components(entity('ncprogram','')), "RootType=='nctoolpath'"), 'name')


//Список траекторий в Toolpath
STRING LIST $list4 = extract(folder('Toolpath'), 'name')


//Список траекторий в активной группе
STRING LIST $list5 = EXTRACT(FILTER((components($entity('group', ''))), "roottype=='toolpath'"), "name")


//Список инструмента в Tool
STRING LIST $list6 = extract(FOLDER('Tool'),'name')


//Список инструмента(с повторами) в ncprogram
STRING LIST $list7 = extract(filter(components(entity('ncprogram',entity('ncprogram','').Name)), "RootType=='nctoolpath'"), 'tool.name')


//Список СК в workplane
STRING LIST $list8 = extract(FOLDER('workplane'),'name')


//Список СК(Промежуточные и точка смены) в активном ncprogram
STRING LIST $list9 = extract(filter(components(entity('ncprogram','')), "RootType=='ncworkplane'"), 'name')


//список станков в MachineTool
STRING LIST $list10 = extract(FOLDER('MachineTool'),'name')


//список УП в ncprogram
STRING LIST $list11 = extract(FOLDER('ncprogram'),'name')


//Список шаблонов в Pattern
STRING LIST $list12 = extract(FOLDER('Pattern'),'name')


//Список границ в Boundary
STRING LIST $list13 = extract(FOLDER('Boundary'),'name')


//Список 2D моделей в featureset
STRING LIST $list14 = extract(FOLDER('featureset'),'name')


//список слоёв и наборов в Level
STRING LIST $list15 = extract(FOLDER('Level'),'name')


//Список моделей в model
STRING LIST $list16 = extract(FOLDER('model'),'name')


//Список моделей материала в stockModel
STRING LIST $list17 = extract(FOLDER('stockModel'),'name')

 

Hide  
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

1) Господа, может кто найдёт способ помочь с макросом, который будет перемещать на одну плоскость Z все детали раскроя.
Прикрепляю проект с примером раскроя и макрос, который использую (в макросе ничего интересного нет, просто записанные действия).

В примере правая верхняя деталь по Z расположенная на -28 мм, относительно остальных.
2) Может есть у кого макросы или наработки, которые используются для раскроя?

stapel_rascroy.zip

Ссылка на сообщение
Поделиться на других сайтах
В 23.01.2019 в 23:08, raffnec сказал:

1) Господа, может кто найдёт способ помочь с макросом, который будет перемещать на одну плоскость Z все детали раскроя.
Прикрепляю проект с примером раскроя и макрос, который использую (в макросе ничего интересного нет, просто записанные действия).

В примере правая верхняя деталь по Z расположенная на -28 мм, относительно остальных.
2) Может есть у кого макросы или наработки, которые используются для раскроя?

stapel_rascroy.zip

 Скорее всего никак. Проще выровнять все детали в CADe.

Ссылка на сообщение
Поделиться на других сайтах
В 23.01.2019 в 22:08, raffnec сказал:

может кто найдёт способ помочь с макросом, который будет перемещать на одну плоскость Z все детали раскроя

1) у вас все модели идут в STEP ?

2) каждая модель всегда содержит несколько разных деталей ?

3) повермилл всегда используется только для таких типов моделей ?

4) повершейп установлен ?

5) имеет ли значение если каждая деталь станет отдельной моделью ?

6) нужно ли вам выделять поверхности для какой либо обработки в данных моделях/деталях ? или всё делаете макросом где выделение поверхностей не используется ?

 

PS: вы в макросе разворачиваете отверстия - не совсем понял с какой целью это делается, можете кратко разъяснить ?

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
    • mactepnew
      Вот я тоже так думал, пока не столкнулся с обратным) Как еще столкнусь, пришлю скриншот. Хаос еще в том, что порядок в дереве построения весьма условный. операция, которая стоит перед групой, имеет бОльший timestamp(пардон, не знаю как это в переводе), чем эта группа, и выполняется позже. При этом все операции в группе имеют timestamp на пару сотен меньше и выполняются раньше, чем две группы, стоящие перед ней. Логика?  Если в эскизе все элементы определены, то можно поставить еще один размер (хочешь переопределить эскиз - да пожалста!), изменить его - и NX самостоятельно выберет, какой размер или ограничение отпустить и весь эскиз летит к чертям. Это ли не хаос?   Назовете хоть один CAD, которым можно пользоваться так? Любой из встреченных мной имеет много неочевидных нюансов, которые конечно не проявляются при выполнении университетского или базового курса. В Creo я на протяжении 5 лет находил всё новые фишки, которые не прописаны в документации. Огромная благодарность Ruslan за пояснения тонкостей. Даже Компас и Solidworks, которые считаются самыми дружественными, оказалось непросто обуздать, когда проходил собеседования и делал тестовые. А ведь университетский курс знал на отлично!   Возвращаясь к NX - вот сегодняшний пример. Утром деталь была оранжевая, единая. Изменил пару уклонов и толщин, стала желтая с элементами оранжевого и частично твердотельной, частично листовой. Я даже не знаю, как сформулировать вопрос в поддержку. 
    • Mikhail_Podgornyj
      Добрый день, кто может поделиться SKF Bearing V1.6 (ANSYS App)? Заранее благодарен!
    • kkk
      Короче, как сделать автоматом не нашел. Раскрасил нужные грани нужными цветами. Затем на вкладке с цветом модели можно выбирать нужный цвет, тогда в модели выбираются грани, покрашенные этим цветом. Можно еще сохранить выбор этих граней, но смысла не вижу, т.к. все легко выбирается по цвету. Затем либо в инструменте Измерить смотрим площадь и как-то ее используем, либо можно макросом (что выкладывал Kir95 ) внести площадь в свойства (на вкладку Конфигурации). Можно еще внести выбранные грани в датчики, но как использовать их в свойствах не нашел.    Макрос прикрепляю.     Площадь выбранных граней в свойства.swp
    • IgnatvKudrin
      Для нашего производства требуются постоянно инструментальные пружины для штампов. Сейчас заказы обрабатываются довольно долго - до 2-х месяцев. А у нас сроки на штампы 1-2 месяца с испытанием, доработкой и т.п. Хотелось бы найти поставщика, у которого уже есть склад с данными пружинами или кто может доставить за 1 месяц.   Пружины стандартные по ISO, но на всякий случай приложил каталог. Вот список пружин, которые нужны очень срочно:   LR 32 x 44 - 1 шт. LR 25 x 51 - 2 шт. LB 63 x 89 - 7 шт. LB 32 x 102 - 10 шт. LB 32 x 89 - 20 шт. LB 32 x 76 - 12 шт. LB 32 x 51 - 6 шт. LB 25 x 127 - 9 шт.   Готов выслушать все предложения. Возможно даже есть те, кто сможет изготовить подобные пружины с такими же параметрами. 20231101.pdf
    • bubblyk
      Знатоки форума, подскажите, как смоделировать простую (на первый взгляд) задачу термомеханики в упругой постановке.   Есть брусок правильный формы ака кирпич, в котором генерируется НЕРАВНОМЕРНОЕ удельное тепловыделение (HGEN). Задняя и передняя поверхности конвективно охлаждаются с известными (но различными) коэффициентами теплоотдачи и температурами жидкости/газа. Свойства кирпича (теплофизика + механика) принимаются зависящими от температуры. Постановка - стационарная Собственно вопрос : как грамотно смоделировать температурное поле в кирпиче с учетом температурного расширения?   Исходный код приложил.     Надеюсь на коллективный разум и опыт! EPTH2D.mac p.s.   Если есть опыт решения этой задачи в Ansys WB, тоже можно сюда приложить командные вставки.
    • OutXL
      Это было давно использовал NC-Link  и данную инструкцию. The Maho.docx
    • Mikhail_Podgornyj
      Добрый день, кто может поделиться SKF Bearing V1.6 (ANSYS App)? Заранее благодарен!
    • alexqwq10
      В данных корпусах ничего лишнего быть не должно. Максимум шпильки заземления, в количестве предусмотренном для конкретного корпуса. Рассматривал очень много подобных корпусов разных производителей и данная проблема актуальна для подавляющего большинства.
    • MFS
      Коллеги, приветствую, нужно штамповать на горячую из алюминиевого сплава (АК6 или около того) заготовки размером 280*180*12. Подскажите, пожалуйста, параметры пресса для такой заготовки - размеры, усилия. А есл дадите пример такой марки и модели, более менее подходящей для этой работы (нашего или импортного), то будет и еще лучше. Заранее спасибо!
×
×
  • Создать...