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

Макросы в Power Mill


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

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

а для отдельной в списке это сложновато будет

а почему не подходит сразу для всех траекторий ? почему именно по одному нужно ?

 

и если только по одному, то там по сути всего 2 кнопки нажать - ПКМ-Создать NC файл, и потом ПКМ на NC файле - записать, зачем для 2 кнопок ещё макрос писать ?

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


1 час назад, eksodus сказал:

а почему не подходит сразу для всех траекторий ? почему именно по одному нужно ?

 

Проекты чаще всего огромные, обработка с разных сторон, несколько СК, в проводнике обычно несколько папок с кучей траекторий (часто больше 50), соответственно также много границ и инструментов, которые приходится постоянно открывать\закрывать и прокручивать вверх-вниз для того, чтобы увидеть самый верх с NC-файлами, это неудобно. А удобно было бы жмакнуть сочетание клавиш, без прокрутки проводника, и NC-файл уже залетел на флешку)).  Записать сразу все траектории нет смысла, я за смену столько не сделаю)) 

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

Снимок.JPG

 

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

симпатичный пуансон )

у меня получился такой вот вариант, только сначала нужно активировать траекторию

STRING activename = Toolpath.name
CREATE NCPROGRAM $activename
EDIT NCPROGRAM $activename
APPEND TOOLPATH $activename
KEEP NCPROGRAM ;

TEXTINFO ACCEPT

последняя строчка закрывает окно результатов постпроцессирования

если нужно видеть результат - нужно удалить последнюю строчку

 

и если NC  файл с таким именем уже существует - макрос остановится с ошибкой

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

@eksodus  Спасибо огромное! Уже второй раз выручаешь) Всё отлично работает, прям то, что надо)

 

 

4 часа назад, eksodus сказал:

а для отдельной в списке это сложновато будет

 

эх, недооцениваешь ты себя)

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

k.sema

 

Опять же, если хочется спостпроцессировать сразу несколько, то слегка доработав макрос с помощью цикла FOREACH, получим:

 

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

 

ENTITY LIST $Selected_Toolpaths = INPUT ENTITY MULTIPLE toolpath "Выберите траектории"

FOREACH $tp in $Selected_Toolpaths {

ACTIVATE TOOLPATH $tp.Name

STRING activename = Toolpath.name
CREATE NCPROGRAM $activename
EDIT NCPROGRAM $activename
APPEND TOOLPATH $activename
KEEP NCPROGRAM ;

TEXTINFO ACCEPT

}

 

 

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

Спасибо за помощь. Сделал сам. Но остался вопросик. А как сохранить значение переменной в буфере обмена?

Ссылка на сообщение
Поделиться на других сайтах
В 23.04.2017 в 10:19, syncomp сказал:

Как округлять числа? Нужно рассчитать размер заготовки с определенным припуском.

 

В 10.05.2017 в 15:14, syncomp сказал:

Спасибо за помощь. Сделал сам. Но остался вопросик. А как сохранить значение переменной в буфере обмена?

Поделишься?

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

Конечно, только не оптимизирован, хотя работает. У меня стояла задача: Округлить заготовку до 5мм и дать припуск 10 мм на сторону по Х У. Удобнее всего было конвертировать число в строку, сделать с ней манипуляции, снова конвертировать в число и прибавить 20...

Размер заготовки.mac

Подскажите пожалуйста. Как узнать имя модели? Нужно перевернуть модель и назначить ей другую СК.  Что я делаю не так?

FOREACH md IN folder  ('model') {
String my_model = md.Name
}
Print  $my_model

 

При выполнении макроса выдается ошибка " Неправильное имя" в строке Print.

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

При выполнении макроса выдается ошибка " Неправильное имя"

Знак равно поставьте после Print

и поменяйте местами со строкой с закрывающей скобкой

 

PS: только по сути это ни к чему, вам надо модель крутить, а у вас макрос на вывод имён всех моделей получился

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

Не всегда правильно считает))

для своих нужд порезал до такого состояния

 

Размер заготовки2.mac

Ссылка на сообщение
Поделиться на других сайтах
В 15.05.2017 в 14:31, eksodus сказал:

PS: только по сути это ни к чему, вам надо модель крутить, а у вас макрос на вывод имён всех моделей получился

Так и надо было имя. Чтобы закрутить модель надо знать ее имя. Операции с ней производить буду. А это только часть макроса, которая печатает имя модели. У меня в заготовке бывает по 20 моделей стоит. Но потом оказалось, что делал немного не то. Мне нужно было повернуть все на 180 градусов по оси Y. Вроде как выполнить команду Rotate. Я и сейчас не знаю, как это сделать.

20 часов назад, sssdos сказал:

Не всегда правильно считает))

Я заметил. Но считает неправильно, если нет никакой СК. Установил СК, запустил макрос. Все работает.

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

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

Так и надо было имя. Чтобы закрутить модель надо знать ее имя. Операции с ней производить буду. А это только часть макроса, которая печатает имя модели.

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

5 часов назад, syncomp сказал:

У меня в заготовке бывает по 20 моделей стоит. Но потом оказалось, что делал немного не то. Мне нужно было повернуть все на 180 градусов по оси Y. Вроде как выполнить команду Rotate. Я и сейчас не знаю, как это сделать.

как раз повернуть все модели по оси Y - это несложно оператором FOREACH

поэтому, во-вторых - опишите что вам нужно получить в результате

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

 

5 часов назад, syncomp сказал:

Может кто знает как передать данные в буфер обмена.

ну если бы можно было уточнить, что вы называете в PowerMILL-е буфером обмена...

я просто первый раз сталкиваюсь с таким термином в отношении PowerMILL, интересно узнать

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

 

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

в какой файл? , если в NC программу, то в пмпосте есть соответствующие параметры Block Max X ...

 

если просто в файл, то проще подцепиться  "vbasikom"  (VB) или "шарпом" (С#).

 

 

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

Нашёл макрос для выведения общей статистики 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"

 

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

Мы изготавливаем деревянные модели для литейного производства. заготовки делаем исходя из габаритных размеров модели +20мм припуска, по 10 на сторону. Толщина, высота по Z. в данном контексте не важна... Бывает так и часто, что ошибаемся в задании размеров заготовки. Вот я и решил написать макрос, чтобы он сам рассчитал размеры заготовки и выдал их в Message info. Потом пошел дальше, хочу чтобы размер заготовки не перепесывался  в ручную,а сохранялся в файле, например "Заготовка.txt". Для передачи данных, служит буфер обмена Windows, CTRL+C, а не РМ!!! Чтобы затем его можно было вставить в файл CTRL+V.

В основном у нас детали делаются за один установ. Но бывает, что и за два. Мы переворачиваем заготовку на 180 градусов и продолжаем обрабатывать с обратной стороны. Хочу сделать макрос, чтобы установил СК1,сделал нужные мне обработки, потом перевернул деталь на 180 градусов вдоль У и установил СК2 для обработки 2-й сторооны...

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

хорошо, теперь хоть понятно что нужно сделать

50 минут назад, syncomp сказал:

хочу чтобы размер заготовки не перепесывался  в ручную,а сохранялся в файле, например "Заготовка.txt".

файловые операции  - это мне надо почитать последнее руководство по макросам

в 2012 версии этого ещё не было

52 минуты назад, syncomp сказал:

Хочу сделать макрос, чтобы установил СК1,сделал нужные мне обработки, потом перевернул деталь на 180 градусов вдоль У и установил СК2 для обработки 2-й сторооны...

а это как раз не сложно сделать

модели ж всегда у вас параллелепипедные ?

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

хорошо, теперь хоть понятно что нужно сделать

Идей у меня много. Пользуюсь около 30-ти макросами. Даже создал свою панель инструментов.  Не хватает  инфы по макросам. Да и разработчики "языка", создается впечатление не сильно парятся на удобством. Строковые Функции такие бедные! Перевод числа в строку есть, даже два раза упоминается, а вот обратной ни разу...  пока сам сообразил применить ту же функцию...

Заготовки у нас паралеллепипедные. Но бывают и цилиндрические, это когда вырезаем, и остаются остатки

Изменено пользователем syncomp
Ссылка на сообщение
Поделиться на других сайтах
В 18.05.2017 в 14:23, syncomp сказал:

Хочу сделать макрос, чтобы установил СК1,сделал нужные мне обработки, потом перевернул деталь на 180 градусов вдоль У и установил СК2 для обработки 2-й сторооны...

Вот макрос, который создаёт новую СК, поворачивает её на 180 градусов по Y, задаёт ноли:

- по Z - верхняя плоскость

- по XY - середина заготовки (детали)

 

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

Единственное условие - убедиться перед запуском, что активная СК, или если её нет - Глобальная СК, - имеет ось Z  перпендикулярной к нужной плоскости XY.

 

(Так как этот макрос как раз и требуется на вторую сторону обработки - то понятно что активная СК перед его запуском уже имеет правильное расположение оси Z)

// Создание и поворот СК на 180 град по Y
STRING WP1=new_entity_name('workplane')
CREATE WORKPLANE ; EDITOR
MODE WORKPLANE_EDIT START $WP1
MODE WORKPLANE_EDIT TWIST Y
MODE WORKPLANE_EDIT TWIST "180"
WPETWIST ACCEPT
MODE WORKPLANE_EDIT FINISH ACCEPT

// Задание заготовки
ACTIVATE Workplane $WP1
EDIT MODEL ALL DESELECT ALL
EDIT BLOCK COORDINATE WORKPLANE
EDIT BLOCKTYPE BOX
EDIT BLOCK ALL UNLOCK
EDIT BLOCK TOLERANCE ".001"
EDIT BLOCK RESETLIMIT "0"
EDIT BLOCK LIMITTYPE MODEL
EDIT BLOCK RESET

// Перемещение Z0 на верхнюю плоскость, XY -  центр
REAL $x0 = ($block.limits.xmax+$block.limits.xmin)/2
REAL $y0 = ($block.limits.ymax+$block.limits.ymin)/2
REAL $z0 = $block.limits.zmax
MODE WORKPLANE_EDIT START ;
MODE WORKPLANE_EDIT POSITION
MODE POSITION CARTESIAN X $x0
MODE POSITION CARTESIAN Y $y0
MODE POSITION CARTESIAN Z $z0
POSITION APPLY
MODE WORKPLANE_EDIT FINISH ACCEPT

// Отрисовка СК, Модели и Заготовки
UNDRAW Workplane $WP1
DEACTIVATE Workplane
ACTIVATE Workplane $WP1
EDIT BLOCK RESET
DRAW BLOCK
ROTATE TRANSFORM ISO1
ZOOM DOUBLE

 

теперь примерный порядок действий такой:

1) Ваш макрос, или другой макрос, или вручную, - создаёт СК (если нужно)

2) Второй макрос на создание и просчёт траекторий

3) Третий макрос - из этого сообщения, он создаёт и поворачивает СК на 180 гр по Y

4) Последний макрос на просчёт траекторий с обратной стороны

 

Ну или всё это собрать в один макрос. Но перед сборкой в один макрос - я бы протестировал всё это как отдельные 4 макроса, и только потом всё вместе.

 

В 18.05.2017 в 14:23, syncomp сказал:

хочу чтобы размер заготовки не перепесывался  в ручную,а сохранялся в файле, например "Заготовка.txt".

а к этому давайте вернёмся через недельку примерно

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

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

Размер заготовки.mac

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Guhl
      И не лень тебе, дурачку, писать такую простыню было? Иди, лучше, образование получи
    • aleksejj
      Здравствуйте в принципе вопрос закрыт нашел способы. Уже все на чпу отработали и отшлифовали.
    • BASH_HD
      Здравия желаю, знатоки Фанука, покинувшего Россию. Опишу свою проблему: Имеем станок fanuc robodrill 2008 год.   стойка 31i-А.   4 непрерывные оси имеем.   необходимо еще добавить индексную ось. Ладдер имеет подготовку под 5 ось.  Но он видимо универсальный под все рободриллы, а они есть пятиосевые. по дескрипшенам на стойку она поддерживает до 20 осей (4 непрерывных)  и то и другое это опции.   опция расширения от 3 базовых до 4 очевидно уже установлена. но в описании два варианта:   1 вариант:  Controllable axes expansion (each path) (including PMC axes and Cs axes)   2 вариант   Simultaneously controlled axes expansion (each path)   непонятно установлены оба пакета или последний. как они работают взаимо-дополняют друг друга или исключают. Никакой документации по названию опций и как определить какие именно опции установлены в станке я не нашел.   прикладываю информацию, которая может говорить о установленных опциях:   % SYSTEM CONFIGURATION    1.HARDWARE CONFIGURATION      NAME           ID-1     ID-2   SLOT +-------------+----------+--------+----+   MAIN BOARD       MAIN BOARD   00321 30 0                   CPU CARD     0041E 40 0 70000203          SERVO CARD   0010B 20 1                   PMC MODULE   00700 30 0                   FROM/SRAM    C3/03                       DISPLAY          DISP ID      1010                        OTHERS           MDI ID       02                           B.UNIT ID    00                           2.SOFTWARE CONFIGURATION      SYSTEM     SERIES  EDITION  +------------+--------+--------+   CNC(BASIC)     G143     07.0      CNC(OPT A1)    G143     07.0      CNC(OPT A2)    G143     07.0      CNC(OPT A3)    G143     07.0      CNC(MSG ENG)   G143     07.0      CNC(OPT A21)   G143     07.0      CNC(OPT A22)   G143     07.0      BOOT           60W2     0002      PMC(SYSTEM)    40A2     04.0      PMC(LADDER1)   472I       04      PMC(LADDER2)   472L       02      PMC(LAD DCS)   472J       04      SERVO          90ED     0014      SERVO          90E3     0001      SPINDLE-1      9D80     0008      GRAPHIC        60VH     0005      MACRO EXE2     471Y     0001      MACRO MGI-M    BJ12     0003      CEXELIB        GZ0K     02.0      CEXEAPL        472N     0004      MGILIB         GZ0J     02.5      MGIAPL         BX51     0009      NET CONTROL    656S     0002      EMBED ETHER    656R     0003      DEVNT SOFT     6577     0003      %   есть интересные файлы в папке SYSTEM (помимо всех обычных) NC1A OPT NC2A OPT NC3A OPT NCL1 OPT NCD1 OPT       потому вопрос первый - как понять какие опции касающиеся управляемых осей установлены в данный момент и что они позволяют. (понимаю что шанс 1%, но вдруг уже можно добавить ось без доустановки опций) тогда я сразу приобрету драйв и мотор.    вопрос второй - в нынешней ситуации, когда фанук официально никаких опций продать/установить не может   какие существуют варианты это сделать?  может есть смелые посредники официалы соседних стран, или материнскую плату отправить в другую страну и там прошить или же есть успехи хакерские в этом направлении на просторах нашей родины.   Прикладываю разные файлы со всеми параметрами станка. и системные.  OPR INF  тоже прикладываю, может пригодится. главное в чужую стойку не заливать.   да, можно конечно просто через M-коды управлять. сейчас так и подключаю. но это временный костыль. хочется на родном фанук железе все надежно собрать. FULL_PARAMETER_LIST.prm FULL_PARAMETER_LIST.cncidnum MAINTINF.000 OPRM_INF.000
    • Jenny
      Как-то не правильно залилось видео. Черный экран Это разные вещи? Я просто только только осваиваю. До этого сделала точно так же. И все хорошо было.   
    • Нафаня
      Добрый день! Сразу скажу что я не спец по бошертам но эти станки очень похожи на станки трумпф а точнее на их модели предыдущих поколений. Так вот, мне кажется что Вам нужно замерить длинну инструмента и понять от какой точки станок его расчитывает. Станки трумпф отсчитывают длинну инструмента от верхней кромки юстировчного кольца не учитывая хвостовик инструмента. В старых моделях станков трумпф указывалась фактическая длинна и то на сколько вы его сточили. прмер, длинна нового инструмента 38мм, вы его сточили на 1мм и соответственно в поле "переточка" вы указываете 1мм, ЧПУ станка высчитывает глубину погружения пуансона в матрицу. Параметр PU overlap могу предположить что это зазор матрицы для данного инструмента в вашем случае стоит 0.2мм а это значит что инструмент был собран под пробивку металла тощиной 1мм. возможно tool length это ход ползуна, хотя 71.2мм это как то многовато. Мой вам совет, напишите простую программу с одним этим инструментом и меняя параметры посмотрите как ведет себя пуансон.
    • Killerchik
      Команды обычно те же - в смысле М03. Я встречал М код, то есть надо было руками переключить, и ещё М код ввести, при том что на рукоятке были концевики. Но это дичь какая-то. Посмотрите, есть ли на Вашей рукоятке какие-то концевики.
    • Snake 60
    • Александр 36
      Нет  переключил команда s500 m03 стартует и ошибка не только у меня станок с ручным перебором может команда какая то должна быть другая?
    • Herr Kaputt
      Нашел оба установленные Mesh Enabler и threadModeler, в разделе: Инструменты/AutodeskAppManager ...но дальше этого ничего, может опыта не хватает, я его около месяца набегами юзаю, когда деталь для принтера сделать надо
    • Дезигнер
      Литье детали Капельница из полипропилена. На малогабаритном тпа. VID_20240415_231221_531.mp4
×
×
  • Создать...