eksodus

Макросы в Power Mill

395 posts in this topic

ID: 361   Posted (edited)

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

Показать содержимое  
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  
Определяется текущее количество СК, появляется окошко выставления СК по заготовке и в цикле ожидается появление новой СК, при появлении новой СК создаётся полный список всех СК и активируется последняя
Edited by Konstantin_VP

Share this post


Link to post
Share on other sites


В 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 ?

Share this post


Link to post
Share on other sites
В 22.03.2017 в 13:52, k.sema сказал:

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

ID: 365   Posted (edited)

16 часов назад, raffnec сказал:

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

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

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

 

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

5bd575e517817_.png.7c256ba122a2d6ca346447cd03b6bef9.png

 

Edited by k.sema

Share this post


Link to post
Share on other sites

ID: 366   Posted (edited)

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

Edited by syncomp

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

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

......????

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

ID: 369   Posted (edited)

В 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 ? и какая логика самого макроса ?

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

 

 

Edited by eksodus

Share this post


Link to post
Share on other sites
13 часа назад, eksodus сказал:

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

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

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

 

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

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

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

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

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

Share this post


Link to post
Share on other sites
1 час назад, syncomp сказал:

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

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

 

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

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

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

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

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

 

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

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

Verh.png.edc1eb47a64e768913c05930a4d2b7d7.png

 

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

 

 

Sverlenie.zip

3 people like this

Share this post


Link to post
Share on other sites

ID: 373   Posted (edited)

В 26.11.2018 в 14:22, eksodus сказал:

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

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

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

1.JPG

Edited by syncomp

Share this post


Link to post
Share on other sites

ID: 374   Posted (edited)

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"

 

Edited by eksodus

Share this post


Link to post
Share on other sites

Добрый день !

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

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

 

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

403.png.7b96b0a601028e504110715120455d71.png

 

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

 

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

 

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

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

401.png.b0d156188dd67ac4899c1b922a67d5da.png

 

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

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

 

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

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

 

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

 

402.thumb.png.e36b2ba51ddee8e26a7e17da15e1ae78.png

 

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

 

CapHoles.zip

4 people like this

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

stapel_rascroy.zip

Share this post


Link to post
Share on other sites
В 23.01.2019 в 23:08, raffnec сказал:

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

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

stapel_rascroy.zip

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

Share this post


Link to post
Share on other sites

ID: 380   Posted (edited)

В 23.01.2019 в 22:08, raffnec сказал:

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

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

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

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

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

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

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

 

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

Edited by eksodus

Share this post


Link to post
Share on other sites
В 25.01.2019 в 10:48, scorpion1007 сказал:

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

В PowerMill тоже это можно поправить через Модель->Правка->Трансформация, но хочется волшебную кнопку чтобы само:)

Share this post


Link to post
Share on other sites

ID: 382   Posted (edited)

В 25.01.2019 в 22:04, eksodus сказал:

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

1) Бывает SPEP, бывает DGK.
2) Для одного раскроя листа всегда 1 модель с несколькими деталями.
3) В повермилле делается много разных работ, не только раскрой, но и гравировка и фрезеровка, в том числе и 5-и осевая.
4) Нет
5) не имеет
6) Все делается через макрос без выделения. Если сразу понятно, что макрос не сделает правильно, то вручную приводим к результату, чтобы макрос сработал.
7) Изначально в макросе было прописано распознавать отверстия смотрящие вниз. Но в таком случае, отверстия смотрящие вверх игнорировались. Если распознавать в обоих направлениях, то в одной траектории оказывались смотрящие вверх и вниз, а потом их приходилось разворачивать в ручную.
Сейчас отдельно распознаются смотрящие вниз, отдельно смотрящие вверх - их переворачиваем и объединяем вместе.

Edited by raffnec

Share this post


Link to post
Share on other sites

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

там все отверстия сразу создаются смотрящими вверх

 

ну в общем - попробовал немного, не получается поделить 1 деталь= 1 модель

 

так что пока могу предложить примерно такой порядок действий:

а) в файле импорта ресурсов Exchange добавьте внизу строку

sdxOptExplodeSolids False

и в настройках импорта в PM уберите галочку "Разбивать тела"

(можно в макросе в начале снять галочку и в конце вернуть)

теперь каждая деталь будет как цельное твердое тело, а не как набор поверхностей

если импортируете модели как STEP - значит в файле ресурсов Step.rsc по адресу:

Exchange/sys/shemas/resources

если другой формат - значит в другом формате тоже

 

можно договориться например, для таких деталей скидывали чтобы всегда в одном формате - STEP

а для других деталей в других форматах, чтобы постоянно не редактировать файл ресурсов

 

б) в макросе для PM поставить паузу с запросом - выберите деталь

клацнув на деталь она выберется вся, потом ПКМ - Правка - Трансоформировать

ну или забить в макрос команду на перемещение детали по Z

 

в) потом продолжить макрос

 

PS: я точно не знаю как, и возможно ли без шейпа поделить деталь на модели

если разобраться как - то теоретически можно будет все макросом забить

 

Share this post


Link to post
Share on other sites

Привет народ.

Задал вопрос на англоязычном форуме, пока нет ответа. Может кто из нашенских знает, как победить ошибку.

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

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

 https://forums.autodesk.com/t5/powermill-forum/use-command-to-automatic-move-the-start-point-part2/m-p/8640208/highlight/false#M15649 

Буду рад любой помощи

 

Share this post


Link to post
Share on other sites

ID: 385   Posted (edited)

@Konstantin_VP , по поводу макроса по переименованию траекторий:

а если требуется переименовать траектории просто в "1","2","3" и т.д, разумеется с проверкой на существование одноименных траекторий? Очень бы желателен такой  макрос. К сожалению, сам в языках программирования ничего не смыслю.

Edited by oat

Share this post


Link to post
Share on other sites
В 18.05.2017 в 14:21, eksodus сказал:

Нашёл макрос для выведения общей статистики NC файла

 


IF (ENTITY_EXISTS('ncprogram','')) {
//Calculate ncprogram time
ENTITY tpath = entity('ncprogram','')
REAL $total_time = $tpath.statistics.leadsandlinks.times.rapid
$total_time = total_time + $tpath.statistics.leadsandlinks.times.plunge
$total_time = total_time + $tpath.statistics.leadsandlinks.times.ramp
$total_time = total_time + $tpath.statistics.leadsandlinks.times.others
$total_time = total_time + $tpath.statistics.cuttingmoves.times.linear
$total_time = total_time + $tpath.statistics.cuttingmoves.times.arcs
STRING $msg = string(round($total_time,2))
//MESSAGE INFO "Total Time $Msg mn"
$total_time = INPUT "Total Time NC Time Mn"
} ELSE {
MESSAGE INFO "NO ACTIVE ncprogram"
}

 

И ещё один макрос - выводит координаты центра отверстия.

Отверстие нужно предварительно выделить.

 


EDIT BLOCKTYPE CYLINDER
EDIT BLOCK RESET
REAL $CENTERX = $block.centre.x
REAL $CENTERY = $block.centre.y
$CENTERX = ROUND($CENTERX, 3)
$CENTERY = ROUND($CENTERY, 3)
MESSAGE INFO "CENTER X = $CENTERX" +CRLF+ "CENTER Y = $CENTERY"

 

Как можно вывести статистику с выбранных NC файлов?

Share this post


Link to post
Share on other sites

Как можно включить коррекцию у выбранных траекторий (в дереве NC) в активном NC файле?

Share this post


Link to post
Share on other sites
7 часов назад, NickEL1000 сказал:

Как можно вывести статистику с выбранных NC файлов?

через селектор выбора (пример есть в макросе сверления)

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

Как можно включить коррекцию у выбранных траекторий (в дереве NC) в активном NC файле?

коррекция включается в NC файле для всех траекторий содержащихся в нем, а не для некоторых

Share this post


Link to post
Share on other sites

ID: 389   Posted (edited)

В 22.04.2019 в 13:50, oat сказал:

а если требуется переименовать траектории просто в "1","2","3" и т.д,

Показать содержимое  
FUNCTION MAIN {

ECHO OFF DCPDEBUG UNTRACE COMMAND ACCEPT //отключение эхо

STRING $nmb = '1' //счётчик

FOREACH t IN folder ('Toolpath') {
STRING $OneName = $t.Name              //имя активной траектории
//Вызов функции
CALL TolpathCount($OneName, $nmb, $OneName)
}

FOREACH t IN folder ('Toolpath') {
STRING $OneName = $t.Name
IF int(position($OneName, "_")) > 0 {
STRING $Line = substring($OneName, (position($OneName, "_")), length($OneName) )
STRING $Name = replace($OneName, $Line, "") //убирает со строки $Name "_"
RENAME TOOLPATH $OneName $Name
}
}

RESET LOCALVARS // очистить временные переменные


} //FUNCTION MAIN


//счётчик траекторий
FUNCTION TolpathCount (STRING OneName, output STRING nmb, STRING OneName) {

string $newname=$nmb
string $uline = '_'

//Сравнение оригинальной и полученной траектории
IF $newname != $OneName {

//проверка наличия дубликатов
IF entity_exists('Toolpath',$newname) {

While entity_exists('Toolpath',$newname) == 1 {
$newname = $newname+$uline
}

RENAME TOOLPATH $OneName $newname

} else {
RENAME TOOLPATH $OneName $newname
}

} else {
//ничего не делать если названия совпадают
}

$nmb =  int (nmb) + 1 //счётчик траекторий

}

 

Hide  
Edited by Konstantin_VP
1 person likes this

Share this post


Link to post
Share on other sites
В 25.04.2019 в 16:00, NickEL1000 сказал:

Как можно включить коррекцию у выбранных траекторий (в дереве NC) в активном NC файле?

Показать содержимое  
//Включение корректора на траекториях с латинской приставкой '_RL или _RR' В названии

string $LEFT = "_rl" //корректор слева
string $RIGHT = "_rr" //корректор справа
int $Item = 0 //счётчик траекторий

STRING NCName  = entity('ncprogram','').Name //Активный NC

FOREACH ncitem IN components(entity('ncprogram', $NCName)) {

// Проверка траекторий в NC-файле
IF lcase(ncitem.RootType) == 'nctoolpath' {

// Получение имени в Нижнем регистре
STRING $lcaseName = lcase(ncitem.Name)

// Проверка, содержит ли имя $LEFT
IF position($lcaseName, $LEFT) > 0 {

EDIT NCPROGRAM ; ITEM $Item COMPONENT ${($Item)*1000}

COMP_CODE LEFT //корректор слева

// Проверка, содержит ли имя $RIGHT
} elseIf position($lcaseName, $RIGHT) > 0 {

EDIT NCPROGRAM ; ITEM $Item COMPONENT ${($Item)*1000}

COMP_CODE RIGHT //корректор справа

}

$Item = Item + 1

}

}

 

Hide  
Если в названии траектории есть "_RL" включится корректор слева в активном NC , "_RR" - справа.
2 people like this

Share this post


Link to post
Share on other sites

@Konstantin_VP , огромная благодарность!!!!

Share this post


Link to post
Share on other sites
В 10.11.2017 в 20:24, impact сказал:

string filename = ""
$filename = fileselect "Open project"
project recovery open ${dirname(filename)}

Сохраняем этот макрос, в такое место чтобы путь не содержал пробелов.

 

Потом редактируем в файлах Powemill\sys\hci\powermill.ndb\source\table\menu и Powemill\sys\hci\powermill.ndb\source\table\form

ищем текст "PROJECT RECOVERY OPEN PROJSELECTOR"

и заменяем на "MACRO ВАШ\ПУТЬ\ДО\МАКРОСА.mac".

Рекомендую сделать резервные копии этих файлов.

 

Чтобы открыть проект выбираем любой файл в папке проекта.

Такое работало в РМ2017. В 2018 уже не работает.

Share this post


Link to post
Share on other sites
В 16.06.2019 в 19:24, syncomp сказал:

Такое работало в РМ2017. В 2018 уже не работает.

Работает. Только строка не первая найденная, а вторая, если открывается через ленту или через Ctrl+O

полностью строка

 OPEN             10347     260 1824      10070  0       1      0 8498 0 0 "FILEPATU" "" "" "" 0 "PROJECT RECOVERY OPEN PROJSELECTOR" 15

Если же через "Файл->Открыть", то там другая строка, но принцип тот же.

Project          10425     260 1811      10161  0       1      0 0 0 0 "OPENPROJ" "" "" "" 0 "FORM RIBBON BACKSTAGE CLOSE BackstageOpen PROJECT RECOVERY OPEN PROJSELECTOR" 15

 

Share this post


Link to post
Share on other sites

ID: 394   Posted (edited)

В 25.06.2019 в 21:41, impact сказал:

Работает. Только строка не первая найденная, а вторая, если открывается через ленту или через Ctrl+O

полностью строка


 OPEN             10347     260 1824      10070  0       1      0 8498 0 0 "FILEPATU" "" "" "" 0 "PROJECT RECOVERY OPEN PROJSELECTOR" 15

Если же через "Файл->Открыть", то там другая строка, но принцип тот же.


Project          10425     260 1811      10161  0       1      0 0 0 0 "OPENPROJ" "" "" "" 0 "FORM RIBBON BACKSTAGE CLOSE BackstageOpen PROJECT RECOVERY OPEN PROJSE

Я вышел из положения по-другому. В ленте на своей панели создал кнопку Макроса и выполняю тот макрос, который был дан для РМ2017. Все прекрасно работает.

Edited by syncomp
1 person likes this

Share this post


Link to post
Share on other sites

syncomp интересное решение_ :smile:

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.