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

Макросы в 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 пользователей

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




  • Сообщения

    • alek77
      Да, спасибо, я уже из интереса ее нашел. Еще раз повторю, чтобы не выхватить, сам я такими методами указния размеров не пользуюсь, это самая вредная практика из всех, что встречал. В свое время имел много проблем в автокаде, корректируя чужие чертежи. Но там и отртогональные линии под углом в 0,001 градуса были в норме, и миллион линий одна поверх другой, и незамкнутые отрезки и много всего, от чего волосы дыбом. В солиде, думал, не столкнусь с таким, наивный. Поэтому искал и нашел макрос который косяки размеров подсвечивает. Он вполне рабочий, но не стабильный. В чем причина не разбирался, так как со своей задачей он справляется. Причем отрабатывает и галочки, и замену текста в размере. Хорошо, что @malvi.dp нашел время и что-то корректирует, спасибо отдельное ему за это. Макрос достаточно полезный при работе с чужими документами. И если удастся сохранить все начальные функции этого макроса против изощренных методов вредительства - будет офигенно.
    • Kelny
      Если этой ссылки достаточно для отображения материала и материал уже есть в обозначенной модели, то возможно подойдёт TabBuilder: https://help.solidworks.com/2023/russian/SolidWorks/SWHelp_List.html?id=e68c1877b4fa431483f8c751bd9fcc78&_gl=1*lby1j3*_up*MQ..*_ga*NTEyNjA5NDQ3LjE3MTQxMTU3MzA.*_ga_XQJPQWHZHH*MTcxNDExNTcyOS4xLjEuMTcxNDExNTczNy4wLjAuMA..#Pg0   В старых версиях при написанни ссылок такого радо в некоторых случаях можно было не писать имя файла, а достаточно было вместо имени файла модели оставить ПРОБЕЛ.SLDPRT и имя после этого подставлялось само. Пробовать надо.   Так же можете глянуть макрос по изменению свойств файла (методы и функции там устаревшие, но возможно даже будет работать и можно поковыряться в коде): https://kelnyproject.ucoz.ru/load/6-1-0-8 по програмированию так же есть справка (версию в ссылке поменяйте на свою, что бы справка была актуальна для вашей версии): https://help.solidworks.com/SearchEx.aspx?query=get custom property&version=2010&lang=english,enu&prod=api
    • gudstartup
      только перед обновлением обязательно выполните  все что написано в руководстве и касается сохранения состояния станка и чпу. и обязательно сделайте образ диска и помните что слишком новые версии могут не заработать на вашем чпу относительно безопасно ставить только сервиспаки
    • NordCom
      Большое спасибо! Через это меню удалось зайти в меню. 95148->MOD
    • Danil89nur
      Доброе время суток. Столкнулся с проблемой на новой работе. Много деталей у который в свойствах отсутствует раздел "Материал" и приходится каждый раз вручную заходить туда, создавать раздел и выбирать там ""SW-Material@Name.SLDPRT". Возможно кто-то знает, либо сможет помочь с написанием простенького макроса, при нажатии на который в свойствах детали будет создаваться необходимый раздел и в нем сразу написан выбранный материал (желательно, чтоб там было указано сразу наименование материала, а не формула для его получения ""SW-Material@Name.SLDPRT"). Пытался самостоятельно через ChatGPT, но так как в програмировании я 0, то ничего не получилось)
    • Bot
      Коллеги, Благодарю вас за интерес к проекту электронной энциклопедии в области инженерного программного обеспечения PLMpedia, который более 15 лет развивался группой компаний ЛЕДАС. Представленный ниже скриншот передаёт содержание и структуру базы данных энциклопедии, накопленной за эти годы: именно такую начальную страницу, можно было до сегодняшнего дня увидеть, придя по адресу https://plmpedia.ru/ В последние несколько лет ЛЕДАС особенно интенсивно и результативно вкладывает все ресурсы в развитие своего основного бизнеса: см. ниже «О компании ЛЕДАС». Сегодня я с некоторым сожалением констатирую, что у компании ЛЕДАС более нет возможности отвлекать ресурсы своих сотрудников на некоммерческий (фактически волонтерский) проект PLMpedia. Вся база данных ресурса может быть безвозмездно передана любому юридическому или физическому лицу с единственным условием: наш преемник должен будет публично объявить о состоявшейся передаче и взятии на себя [...] View the full article
    • gudstartup
      @NordCom  у вас наверное это так происходит читайте этот раздел itnc_530.pdf
    • fenics555
      интересный индус. А нового то чего?
    • gudstartup
      откудова качаете мне интересно?
    • ДОБРЯК
      Совсем забыл про собственные вектора       собственный тон частота           0.013                        1   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00       собственный тон частота       15910.75                         2   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2  -7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00        
×
×
  • Создать...