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

Макросы в Power Mill


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

В 25.01.2019 в 10:48, scorpion1007 сказал:

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

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

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


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

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

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

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

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

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

 

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

 

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

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

sdxOptExplodeSolids False

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

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

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

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

Exchange/sys/shemas/resources

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

 

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

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

 

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

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

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

 

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

 

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

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

 

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

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

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

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

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

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

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

 

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

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

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

Изменено пользователем oat
Ссылка на сообщение
Поделиться на других сайтах
В 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 файлов?

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

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

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
В 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  
Изменено пользователем Konstantin_VP
Ссылка на сообщение
Поделиться на других сайтах
В 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" - справа.
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
В 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 уже не работает.

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

 

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

Изменено пользователем syncomp
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
  • 2 недели спустя...
В 27.04.2019 в 19:40, Konstantin_VP сказал:
Показать содержимое

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

Константин а не могли бы вы подсказать как переименовывать траектории принадлежащие установам, причём так чтобы именно в активном установе

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

Доброго времени! Подскажите как обратиться к типу заготовки

IF <заготовка==Блок> {

Изменено пользователем kvint62
Ссылка на сообщение
Поделиться на других сайтах
В 28.08.2019 в 10:33, sssdos сказал:

как переименовывать траектории принадлежащие установам

Если речь о траекториях в активной папке, то:

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

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

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

STRING $FolderName = ACTIVE_FOLDER() //определяет путь по активной папке

STRING $T_Folder = substring($FolderName, 0, 8) //отображает строчку с позиции 0 до 8

//Если нет активной папки в "Toolpath"
If $T_Folder !='Toolpath' {
$FolderName = 'Toolpath'
}

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

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • davidovka
      Выкладывайте свои, посмотри что не работает.
    • Anat2015
      А что, бывает по другому, программисты и операторы сразу сознаются?
    • fenics555
      так пока кто-то пользуется кнопкой "сделайкрасиво" он набивает номенклатуру, библиотеку изделий, с уже неправильно указанными параметрами. И вдальнейшем другим конструкторам пользоваться штатными средствами никак не получится, кроме как открыть КАЖДЫЙ файл, добавить нужные парметры (тут можно импортом из шаблона)  и лапками подправить. КАЖДЫЙ! И сборки. Все. Еще с булками разобраться. Иначе без этой DLLки выводиться будет ерунда. ДАЖЕ СРАНЫЙ ЧЕРТЕЖ ОБЫЧНОЙ ДЕТАЛИ! И никто другой даже не додумается, в чем же дело. Ну вот возьмет он (Конструктор с кнопочкой умной) и уволится от неразделенной любви, или по дороге на работу разобьется. Ну фактор человеческий. Бывает. Он работал, получал ЗП за то, что делал "вроде правильно", но любой другой придет- и не сможет сразбегу "в красоту"! И Бос такой, затягивая сигару: "Эх, салага, вот Стас был- да! ..." Ну там, слеза скупая, всё такое. И не объяснить, что он х8йню делал. Поэтому я стараюсь работу работать так, чтоб после меня "Фен -просто красавчик" сказал тот, кто будет после.
    • M_u_x_a
      Уважаемые Господа @fenics555 и @-stas- ! Каждый из вас по-своему прав. Пользоваться или нет дополнительными приложениями при возможности реализации штатными средствами - это выбор каждого инженера. Тут влияет ещё и специфика работы, взаимодействие с другими инженерами и тд. Лично я, пожалуй, вижу в конкретно этом инструменте скорее положительное, нежели бесполезное. В списке дополнительных приложений запущено и работает. Дело в том, что тот релиз, на который я жаловался, был под Creo 1. С этим мне помог уважаемый @davidovka , за что мой ему поклон. Однако, желаемого результата достичь не удалось, несмотря на правку графы таблицы согласно инструкции-мануалу. Теперь там просто пусто, не заполняет. Прошу кинуть в мою сторону шаблон детали и форматку с которыми оно точно работает. Успехов всем в делах и делишках.
    • Сергей Кочев
      При разборе полётов, все утверждали, что программа отлажена и её ни кто не менял и сделали по ней две детали. Ну вот зашёл в свойства файла программы и увидел, что программу редактировали именно в день аварии. Сздана 11.10 Изменена 30.10. Был в отпуске хотел посмотреть Action Log к сожалению уже данные перезаписались.
    • Даниил_91
      спасибо, просто по поиску не нашел конкретной темы кстати надо попробовать, об этом даже не подумал, спасибо
    • Onizuka
      Удалите параметр DRAWN_BY и создайте снова. Список должен обновиться после этого
    • semsv
      Вам с этим вопросом сюда: https://cccp3d.ru/forum/28-creo/
    • fenics555
      именно так и должно быть. И работать будет штатно точь в точь как внёс, а не как кому-то взбрело перенести/ разбить. так в чем проблема настроить шаблоны один раз правильно и потом всю жизнь пользоваться? ну так может оно тогда и не нужно так создавать? Есть особенность КАД, ну так и объясните её и примите тот формат документа, который делается штатными средствами. Если это прям проблема, что будет выводиться вначале и потом. в таблице выводится ровно так, как Вы укажите. Какой первый параметр, какой второй. И сортировку каждой области данных можно настроить отдельно. Штатно. а зачем она универсальная? Если она нужна для "примечание_для_детали", так и назовите и так и выводите, нужно для "примечание_для_исполнений" - так и пишите. Нужно для "для компонента" - сделайте и его! И вписывайте что нужно туда, куда нужно. Всё же просто как валенки.   А то придумают какой-то универсаный параметр, а что же не универсальный размер, который может и в диаметр, и в прямолинейный, и в периметр  и в угол ... ?!
    • RokiSIA
      За более чем 15 лет работы чтобы ЧПУ самостоятельно что то делало такого не было никогда, а слышу я что оно само поехало само врезалось это каждый день. Иногда даже опытные операторы не осознают что они что сделали не так просто человеческий фактор и случайность. Обычно врезы идут когда налаживается новая деталь если у вас все отлажено самопроизвольное поведение исключено. Можно конечно смотреть логи и прочие но это жуткая морока у нас пытались, но быстро поняли что быстрее обкатать станок и продолжить работу. За все время работы упомню только один случай когда "оно само". Во время работы отключалась эмульсия, пластину ломало а дальше если оператор прощелкал ломало еще парочку резцов. Причиной была неисправная кнопка на пульте, были ложные срабатывания, дребезг во время работы, искали месяц.
×
×
  • Создать...