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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...