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

Макросы в Power Mill


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

В 22.02.2017 в 15:47, eksodus сказал:

и вот нашёл ещё один очень удобный макрос -

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

и СК будет создана в центре детали

Интересный макрос. Но я использую другой, потому как СК выставляю в середине детали. А Z0 вверху. Что я делаю? Вычисляю заготовку, создаю СК по Заготовке, указываю нужную мне точку, сориентировав модель как мне удобно. После разворачиваю оси, если СК развернута не туда.

 

Cоздать СК.mac

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


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

Интересный макрос. Но я использую другой, потому как СК выставляю в середине детали. А Z0 вверху.

ну так тот макрос делает тоже самое, и даже больше, - попробуйте

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

Вычисляю заготовку, создаю СК по Заготовке, указываю нужную мне точку, сориентировав модель как мне удобно. После разворачиваю оси, если СК развернута не туда.

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

и если вдруг ошибся - там есть кнопка повернуть, которая не просто повернёт СК, а поменяет также нужную плоскость

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

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

Как проверить, есть ли в наличии(в дереве) инструмент? А если нет, то взять его из базы... Что-то вроде:

IF Tool.Name == 'D12' {

//Если нет, то взять из базы

FORM TOOLDBSEARCH
TOOLDB RESULTS_LIST SELECT 5 NEW
TOOLDB RESULTS_LIST CREATE  5 0
TOOLDBSEARCH ACCEPT }

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

и разве в руководстве нет похожего примера ? вроде бы был

 

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

ну так тот макрос делает тоже самое, и даже больше, - попробуйте

Согласен, макрос интересный. И я его сразу же попробовал, а потом стал писать о своем. Ваш макрос тоже не универсальный, вернее почти не подходит для моих целей. Он рассчитан на плоскости перпендикулярные к нормалям и осями СК. Я обрабатываю много моделей у которых нет таких поверхностей. Либо это конические поверхности, либо прямые, но под углом... В таких случаях Ваш макрос не подходит. А мой идеален...

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

Ваш макрос не подходит

это не мой макрос - я просто выложил его для всеобщего пользования

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

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

А мой идеален

если бы Ваш макрос автоматически мог поворачивать СК, или делать запрос для этого, как в выложенном мной макросе, тогда бы согласился

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

если бы Ваш макрос автоматически мог поворачивать СК, или делать запрос для этого, как в выложенном мной макросе, тогда бы согласился

Так он и делает запрос. Вернее 2 запроса. Сперва открывается Редактор СК. Затем предлагается выбрать одну из 9-ти точек Заготовки. А потом можно указать направление осей, воспользовавшись инструментом "Поменять оси ЛСК".

Снимок.JPG

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

А потом можно указать направление осей, воспользовавшись инструментом "Поменять оси ЛСК".

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

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

 

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

1) вычислить последнюю использовавшуюся заготовку

(а если заготовка была до этого цилиндром ? а мне нужен прямоугольный блок ? у вас такой проверки нет, а в макросе что я выложил - есть

а если предыдущая заготовка была по активной границе ? ваш макрос тогда остановится и не сработает

а если Тип заготовки был тоже задан границей ? а мне нужен тип - Модель ?)

2) выбрать способ создания СК - По Заготовке

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

 

дальше - ваш макрос не задаёт точность вычисления заготовки

а если модель имеет радиусные края ? (см. картинку ниже)

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

а в макросе что я выложил - там перед вычислением заготовки задаётся её точность - 0,001

это для радиусных граней самый раз

 

и ещё одно - а если оси в глобальной СК не перпендикулярны граням модели ? - вот пример

f8be8d7aec3ccbf88452a2800bb9b2cc.png

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

 

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

772808be2ed9735459b538b3c80108bc.png

 

дальше, текст вашего макроса содержит много мусора

FORM BLOCK
EDIT BLOCK ZMIN UNLOCK
EDIT BLOCK RESET
CREATE WORKPLANE ; EDITOR
MODE WORKPLANE_EDIT REPOSITION BLOCK
MACRO PAUSE "Выберите точку для новой СК."
MODE WORKPLANE_EDIT FINISH ACCEPT
EXPLORER SELECT Workplane "Workplane\1" NEW
ACTIVATE Workplane "1"
EXPLORER SELECT Workplane "Workplane\1" NEW
EDIT BLOCK RESET
ROTATE TRANSFORM ISO1

из 12 строк, почти половина лишняя

если убрать ненужные 5 строк, то вот аналогичный макрос всего на 7 строк

EDIT BLOCK RESET

MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK
MACRO PAUSE "Выберите точку для новой СК."
MODE WORKPLANE_EDIT FINISH ACCEPT

ACTIVATE Workplane "1"
EDIT BLOCK RESET
ROTATE TRANSFORM ISO1

небольшое уточнение - я убрал строку EDIT BLOCK ZMIN UNLOCK, потому что смысла в ней нет

если СК создаётся в самом начале после импорта модели - то блокировки всё равно нет

а если была блокировка - то зачастую блокируют все оси , а не только Z

если всё-же нужно снять блокировку - тогда первой строчкой можно добавить  - EDIT BLOCK ALL UNLOCK

это разблокирует все оси, а не только Z

 

 

и ещё одно - а если уже есть СК с именем 1 ? тогда макрос не сработает как надо

поэтому при создании СК можно сразу указать имя, и потом активировать СК по этому имени

 

PS: я бы улучшил ваш макрос вот так:

   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

   MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK
   MACRO PAUSE "Выберите точку для новой СК."
   MODE WORKPLANE_EDIT FINISH ACCEPT

   ACTIVATE Workplane "1"
   EDIT BLOCK RESET
   ROTATE TRANSFORM ISO1

 

 

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

Немного подкорректировал этот макрос для проверки сразу нескольких траекторий на зарезы и столкновения:

 

1. После запуска макроса появляется окно выбора траекторий для проверки (в дереве не обязательно активировать к-л. траекторию и инструмент).

2. После выбора траекторий появляется окно для задания безопасного зазора патрона, затем - безопасного зазора хвостовика.

3. Производится расчет с выводом информационных сообщений.

4. Остальное, как у Konstantin_VP. Спасибо ему.

 

Тестировалось для PM2017.

 

Selected_Toolpaths_Collision.mac

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

Ребят, помогите сделать макрос для просмотра свойств траектрии) 

Постоянно кликать ПКМ на траекторию и потом выбирать из выпадающего меню нужный пункт надоело, поэтому пытался сделать макрос всем известным способом (простой записью действий), но вот беда - в макросе прописана та траектория, свойства которой и просматривались при записи. А как сделать так, чтобы при запуске макроса показывались свойства активной траектории?

Вот что у меня получилось...

Снимок.JPG

Ссылка на сообщение
Поделиться на других сайтах
23 минуты назад, k.sema сказал:

Ребят, помогите сделать макрос для просмотра свойств траектрии) 

вот так:

SIZE TOOLPATH ;

 

24 минуты назад, k.sema сказал:

чтобы при запуске макроса показывались свойства активной траектории?

способы выполнения действий с активными элементами можно почитать в конце 2 страницы данной темы

 

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

Попробуйте так:

 

Цитата

STRING path = pathname('toolpath',Name) 
// Проверка, есть ли активная траектория 
IF path != '' { 
STRING activename = Toolpath.name 
SIZE TOOLPATH $activename
} ELSE { 
MESSAGE info "Нет активной траектории" 

RETURN

 

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

Сделал так, как сказал eksodus - стёр всё, что было в макросе и вставил лишь 

SIZE TOOLPATH ;

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

Изучаю форум, в частности данную тему. Макросы - вещь, прям находка для меня)) Уже много идей как их можно применять. Очень удобно, а то заипался кликать и вводить каждый раз одно и тоже)) Кстати, заметил, что именно так, из-за постоянно вбивания одних и тех же данных в разные поля ввода и происходят ошибки....

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

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

 

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

 

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

FOREACH $tp in $Selected_Toolpaths {

ACTIVATE TOOLPATH $tp.Name

SIZE TOOLPATH ;

string yesnoprompt = "Продолжить?" 
bool carryon = 0 
$carryon = query $yesnoprompt

if $carryon == 0 {

TEXTINFO ACCEPT
BREAK
}

}

 

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

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

классный макрос!

делать макрос на одну траекторию - даже мне лень )

а тут выбрал - и все траектории по очереди показывает

это очень удобно, спасиб)

 

PS: а есть способ как-то в обратном порядке их перелистывать ?

например - дошёл до конца - и потом назад ?

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

Ну это тебе спасибо, что перевел руководство по макросам, от туда и черпаю информацию. Ты можешь на примере показать, что значит перелистывать в обратном порядке? А то я не понимаю, что нужно сделать.

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

Ну это тебе спасибо, что перевел руководство по макросам, от туда и черпаю информацию. Ты можешь на примере показать, что значит перелистывать в обратном порядке? А то я не понимаю, что нужно сделать.

Где он выложен?

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

Безмерно благодарен и не только я, спасибо за доброе дело... 

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

Ты можешь на примере показать, что значит перелистывать в обратном порядке? А то я не понимаю, что нужно сделать.

пример дать не могу - ибо сам бы тогда сделал

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

а хотелось бы чтобы можно было перелистывать траектории как вперёд так и назад

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

Ну это тебе спасибо, что перевел руководство по макросам, от туда и черпаю информацию.

тут и Кинематику тоже спасибо - без его помощи в исправлении ошибок в макросах я бы не справился

теперь там осталось всего пару ошибок, а было штук 15

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

а сейчас их можно просто скопировать с пдф-ки и использовать

 

и кстати - в оригинальном руководстве по макросам на английском, в милле 2016-2017 все ошибки так и остались

так что мы единственные кто имеет исправленную версию )

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

Где он выложен?

эх, это был квест на внимательное чтение первой страницы )

но кто-то поспешил...

30 минут назад, sssdos сказал:

Безмерно благодарен и не только я, спасибо за доброе дело... 

к сожалению, на тот момент я работал в повермилл 2012, поэтому логично что и для перевода взял 2012 версию

 

а в английском руководстве для 2016-2017 милла уже много интересных изменений есть

 

и ещё одно - очень много команд, да и других интересных нюансов, просто отсутствуют в доступе

то есть ни руководство по макросам, ни даже встроенный список команд в меню Справка не содержат то что нужно

так что только искать по форумам англоязычным, если что-то очень нужно

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

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

а хотелось бы чтобы можно было перелистывать траектории как вперёд так и назад

Понятно. К сожалению, не знаю как это осуществить.

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

Помогите, пожалуйста, создать макрос записи NC-файла. 

Обычно я записываю NC-файл следующим образом: кликаю ПКМ по траектории - создать отдельный NC-файл (он тут же появляется в ветке NC-файлов с таким же именем, как и траетория, это очень удобно и имеет ключевое значение в создании NC-файлов таким образом), затем ПКМ по NC-файлу - записать. 

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

Как сделать так, чтобы при запуске макроса создавался и записывался NC-файл с активной траекторией с таким же именем, как и она сама?

 

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

EXPLORER SELECT Toolpath "Toolpath\2" NEW
CREATE NCPROGRAM "2" EDIT NCPROGRAM "2" APPEND TOOLPATH "2" DEACTIVATE NCPROGRAM
EXPLORER SELECT NCProgram "NCProgram\2" NEW
ACTIVATE NCPROGRAM "2" KEEP NCPROGRAM ;
TEXTINFO ACCEPT


 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
    • Viktor2004
      Ладдер пришлите. Будем принудительно пробовать поднимать и опускать
    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
×
×
  • Создать...