eksodus

Макросы в Power Mill

377 сообщений в этой теме

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

Показать содержимое  
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 ?

Поделиться сообщением


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

 

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

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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

 

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

5bd575e517817_.png.7c256ba122a2d6ca346447cd03b6bef9.png

 

Изменено пользователем k.sema

Поделиться сообщением


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

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

Изменено пользователем syncomp

Поделиться сообщением


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

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

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

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

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

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

 

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

......????

Поделиться сообщением


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

Уважаемый 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

3 пользователям понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 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

3 пользователям понравилось это

Поделиться сообщением


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

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

Макрос для закраски моделей, можно использовать для удобного выделения моделей через 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  
1 пользователю понравилось это

Поделиться сообщением


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

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

Показать содержимое  
//Полный список в активном 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  
2 пользователям понравилось это

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Сообщения

    • Anat2015
      В мире, в котором мы находимся, существует все, только это надо найти. Ищите  да обрящите. Мануал есть?
    • hubble
      Начинающий. Имею пару вопросов по софту от Swansoft. Первый вопрос. После запуска окна с программой, включаю кнопку аварийного стопа. Далее перевожу станок в ручном режиме в референтную позицию - выбираю кнопку REF. Затем ось Z, затем кнопку +. То самое повторяю для X и Y. (Попутно еще один вопрос. В youtube видел ролики, где после нажатия кнопки любой оси X, Y или Z, станок сразу начинает движение. У меня же еще надо нажать кнопку +. Отчего так? Где-то настраивается?) Но после обнуления Absolute и Relative координаты по Я не обнулились. Так может быть? На рисунке (fanuc_1.gif) видно. Второй вопрос. Не включается шпиндель ни по часовой, ни против часовой стрелки. Положение всех кнопок, отображение на дисплее на момент нажатия кнопок включения шпинделя показано на рисунке fanuc_2.gif. Может тоже где-то что-то надо настроить?   P.S. Версия программы: Swansoft 7.2.2.0. В 7.2.4.0 тоже пробовал - не крутился шпиндель также. Когда изначально была 7.2.2.0, то работало. Затем решил поставить 7.2.4.0 (лучше бы не делал). И перестало работать. Снос и откат на старую версию не помог. После деинсталляции чистил CCleaner`ом.
    • dannykotov
      Спасибо, наборы же будут отображаться в виде цилиндров? Можно сделать, чтобы набору можно было присваивать модель?
    • Slepoy28
      Про зазор понятно. Исправил. А вот насчет шага, я отверстие делал не при помощи функции отверстие под крепеж, а выдавил с внутренним диаметром под резьбу, а потом проставил условное изображение резьбы с нужным значением. Проблем с отображением значения резьбы сделанное путем отверстие под крепеж нет, работает отлично. Просто непонятно, почему в случае использования функции Условное изображение он не проставляет выбранное значение, хотя я выбираю именно М448х2 
    • R_Jr
      можно одну ось убрать. я не совсем корректно нарисовал. задний мост является тележкой поэтому платформа опирается только на две точки. с учетом массы "квадратика" и характеристик площадки, можно принять, что ничего нигде никогда не изгибается. и эпюры не нужны.  все равно сопромат? я не указал еще одно условие: длина стороны "квадратика" и платформы всегда разные, условно берем, что они идеально прилегают друг к другу и квадратик имеет равномерную массу.
    • deflavr
      Здравствуйте. Нужен совет, помощь, подсказка. Есть деталь-матрица, одна штука в одном блоке.  Вопрос первый - Нужно сделать четыре матрицы в одном блоке. Так понимаю нужно скопировать, но не знаю как. Второй - Из матрицы получена деталь, теперь как из детали создать пуансон? (операцией "обьединение" и потом "кок" получил деталь из матрицы)   Заранее спасибо.
    • andrey2147
    • drion
      В создании инструмента "держатель" есть кнопка с окошком " Добавить набор".      
    • ANT0N1DZE
      У вас, мягко говоря, не все известно. Это вам сопромат здесь пригодится, его и гуглите
    • R_Jr
      Приветствую уважаемое сообщество. Помогите найти простейшее решение по быстрому распределению веса по осям. Я сам не конструктор, но на предприятии остальные штатные единицы вообще шарахаются от компьютеров задачу было поручено решать мне. Два часа серфинга по статьям и ютуба решения не дали. Нужна модель, которая позволит при размещении квадратика (на рисунке) получать нагрузки по осям.   и строго говоря на работе стоит автокад. но дома только компас )