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

FAQ/Unigraphics/POST


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

N1  ;PROG# 4X TEST

N3  ;UNIGRAPHICS NX

N5  ;SINUMERIK 840D

N7  ;MACHINE MECAPRO 4020

N9  ;DATE:Fri Jun 13 05:55:26 2014

;----MIN Z..-18.23---- 

; TOTAL TIME:2.93 

 

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


Не могу настроить функцию M41..M43 с помощью постбилдера. Это код переключения передачи оборотов шпинделя на стареньких фрезерных станках. В настройках частота вращения шпинделя привязал диапазон оборотов к коду, M41 от 1 до 180, М42 от 181 до 500 и тд...добавил туда же M41 отдельный код  диапазона из меню - результат меню (M41 S M3)Добавил в ускоренный подход а также в линейное перемещение код M41. После постпроцессирования никаких изменений не обнаружил.  Как будто нечего и не трогал.. Если у кого ни будь есть постпроцессор с полноценным файлом pui и реализованной функцией выбора передачи М41..43 пожалуйста поделитесь. Или подскажите способ реализации этой функции через постбилдер.

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

не выводит резьбофрезу в списке инструмента.как сделать чтоб выводило..нашел на eng-tips что то подобное но там конкретно другая система как выводится список инструментаю..пример с форума

 

global ptp_file_name mom_definition_file_name mom_output_file_full_name
global mom_output_file_directory mom_output_file_basename mom_output_file_suffix
global mom_warning_info
global mom_machine_time mom_group_name mom_operation_name mom_part_name
global mom_tool_count mom_tool_use
global mom_logname mom_ug_version mom_date mom_machine_name

set tm1 [clock seconds]
set tm2 [clock format $tm1 -format "%M:%S"]
MOM_log_message "MOM Start = $tm2 "

set tmp_file_name "${ptp_file_name}_"
if {[file exists $tmp_file_name]} {
MOM_remove_file $tmp_file_name
}
MOM_close_output_file $ptp_file_name
file rename $ptp_file_name $tmp_file_name

set ifile [open $tmp_file_name r]
set ofile [open $ptp_file_name w]

set temp ";%_N_"
set temp1 $mom_output_file_basename
set temp2 _MPF
set stroka [concat $temp$temp1$temp2]
puts $ofile "$stroka"

set temp ";$"
set temp1 "PATH=/_N_WKS_DIR/_N_WORK_PROGRAMS\_WPD"
set stroka [concat $temp$temp1]
puts $ofile "$stroka"

puts $ofile " "
set path $mom_part_name
puts $ofile ";(PART: $path)"

if {[info exists mom_operation_name] == 0} { set mom_operation_name "" }
if {[info exists mom_group_name] == 0} { set mom_group_name $mom_operation_name }
puts $ofile ";(Program: $mom_group_name)"
puts $ofile ";(Date:$mom_date User:$mom_logname)"
puts $ofile ";(MACHINE: $mom_machine_name, Siemens CNC)"

puts $ofile ";(MACHINE TIME: [format "%.2f" $mom_machine_time] MIN)"
puts $ofile " "

puts $ofile ";(----------- TOOL LIST -----------)"
for { set nn 0 } { $nn < 99 } {incr nn} {
if {[hiset mom_tool_use($nn,0)] && [hiset mom_tool_use($nn,1)]} {
set a [scan $mom_tool_use($nn,0) %d tn]
set str [format "%s %.2f" $tn $mom_tool_use($nn,1)]
puts $ofile ";(TOOL NUMBER $str MIN)"
}
}
puts $ofile ";(--------- END TOOL LIST ---------)"

while { [gets $ifile buf] > 0 } {
puts $ofile $buf
}

close $ifile
close $ofile
MOM_remove_file $tmp_file_name

set tm1 [clock seconds]
set tm2 [clock format $tm1 -format "%M:%S"]
MOM_log_message "MOM End = $tm2 "

MOM_open_output_file $ptp_file_name

 

нужно поместить в конец программы и тогда будет работать..половину с приведённого выше можно стереть

 

выкладываю мой вариант. в нём резьбофреза в списке инструмента не выводится

 

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

 

Один из вариантов

 

объясни как применить..пока ничего не выходит

 

Ну примерно так

4ax_tikito.rar

 

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

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

Вопрос я правильно понимаю, что блокировать надо ось после поворота?

Также здесь есть тонкое место, когда подход не генерируется, а фактически он есть, но это тоже можно обработать. В примере, который вы скидывали это тоже выпало, была задана плоскость безопасности, но паралельно оси инструмента - в этом случае не генерируется событие апроучь, а именно в нем одет проверка блокировки.

Думаю, я понятливо объяснил)))

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

Не могу настроить функцию M41..M43 с помощью постбилдера. Это код переключения передачи оборотов шпинделя на стареньких фрезерных станках. В настройках частота вращения шпинделя привязал диапазон оборотов к коду, M41 от 1 до 180, М42 от 181 до 500 и тд...добавил туда же M41 отдельный код  диапазона из меню - результат меню (M41 S M3)Добавил в ускоренный подход а также в линейное перемещение код M41. После постпроцессирования никаких изменений не обнаружил.  Как будто нечего и не трогал.. Если у кого ни будь есть постпроцессор с полноценным файлом pui и реализованной функцией выбора передачи М41..43 пожалуйста поделитесь. Или подскажите способ реализации этой функции через постбилдер.

Выложите ваш поспроцессор, попробую отредактировать.

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

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

clamp_fourth_axis не работает не распознаёт вектор инструмента

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

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

clamp_fourth_axis не работает не распознаёт вектор инструмента

Ясно, что переменная новая и с глюками((

Попробую еще ввести одно условие.

ИМХО считаю, что непрерывную обработку нужно определять человеку. Если у вас много много осевой, то позиционную.

Самый надежный способ это написать расширение для MOM (dll), которое с вероятностью 99% определяло бы метод ориентации оси -> непрерывность обработки

 

 

...

еще немного потестировал, в первой операции выдает не ту инфу, что есть. При  использовании динамического  способа задания оси координат выдает чудной способ ориентации оси. Видимо на нулевой версии много глюков. Может в каком-нибудь из QRM исправят((( may be yes, may be no...

Кроме того, в описании к данной переменной mom_tool_axis_type написана, что она определяет для "Output from surface coutouring operations. Indicates the tool axis setting for the operation." может здесь еще собака порылась, но как тогда определить что операция surface coutouring непонятно.

Есть еще атрибут CAM_TOOLTIP, который, вроде, определяет тип операции, но он тоже не адекватно выводит информацию для первой операции

Для полной автоматизации необходимо писать dll, это на мой взгляд самый надежный способ (на него у меня сейчас врядли хватит времени и сил), ну и второй как уже и предлагаю это UDE.

Также можно ждать QRM. Есть еще вариант обратиться в поддержку, может они что посоветуют.

...

test_post_pb9.rar

Попробовал с нуля создать пост в PB9. Попробуйте его. Он вроде по лучше выдает. Проблема с планаром и заданным осью инструмента по нормали к первой грани осталась

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

Если можно то поправьте М41 через постбилдер. Я хачу понять что я делал не так. Буду очень признателен.

Попробуйте снова

MAF.rar

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

 

Vicebear
 
 

Если можно то поправьте М41 через постбилдер. Я хачу понять что я делал не так. Буду очень признателен.

 

Пишет, что нет такого вложенного файла. Может вам ещё по сроку службы файлы цеплять не положено? Отправьте на vicebear@yandex.ru.

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

 

Vicebear
 

Если можно то поправьте М41 через постбилдер. Я хачу понять что я делал не так. Буду очень признателен.

Ваш постпроцессор работает, вы просто в самом NX не до конца допрограммировали.

Я чуть позже допишу ваш пост, чтобы без этой галки, автоматом, через пересчёт оборотов, передачи включал.

 

Изменил. Смотрите "Начало траектории" PB_CMD_spindle_range.

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

Vicebear большущее тебе спасибо.

3 года с NX работаю и все время что то новое узнаю :smile:

Есть у меня пост написанный чисто через TCL там все работало без этого. Поэтому я даже не думал что M41 в NX активируется.

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

Vicebear большущее тебе спасибо.

3 года с NX работаю и все время что то новое узнаю :smile:

Есть у меня пост написанный чисто через TCL там все работало без этого. Поэтому я даже не думал что M41 в NX активируется.

Так я вам ваш пост изменил. Там уже галку ставить не надо. Вы там посмотрите, я правильно соотношение оборотов к передаче прописал? Ещё я там проверку воткнул, типа если S=0, то будет S=1. Тоже осторожнее, а то забудете обороты прописать и будете сверлить миллиметровым сверлом с S=1об/мин.

P.S. Меня работать в Unigraphics мой начальник учил, и он говорил, что NX можно изучать вечно. Кстати, я себе похожий пост писал для ИР-160 с приделанной к нему недавно российской стойкой, NC-230 по-моему.

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

нашёл как сделать чтоб в списке инструмента выводились резьбофрезы..вопрос снят

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

наверно прописывли вручную

 

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

В постпроцессоре для станка DMU80 MonoBlock нужен вывод команды "M52", если угол поворота оси "B" от -35 до -90 градусов. Сделал через команду пользователя

 
global mom_out_angle_pos
 
    if {$mom_out_angle_pos(1) >=-35 ||$mom_out_angle_pos(1) <=-90 } {
   MOM_output_literal "M52"
   }

 

и добавил в начало траектории каждой операции

 

Но  "М52" выводится всегда. Что я делаю не так?

 

Ещё обратил внимание: если оставить условие if {$mom_out_angle_pos(1) <=-35} ,то в операциях фрезерования условие работает и "М52" выводиться верно, а в операциях сверления не выводится никогда, даже если угол B=-90.

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

Так я вам ваш пост изменил. Там уже галку ставить не надо. Вы там посмотрите, я правильно соотношение оборотов к передаче прописал? Ещё я там проверку воткнул, типа если S=0, то будет S=1. Тоже осторожнее, а то забудете обороты прописать и будете сверлить миллиметровым сверлом с S=1об/мин.

P.S. Меня работать в Unigraphics мой начальник учил, и он говорил, что NX можно изучать вечно. Кстати, я себе похожий пост писал для ИР-160 с приделанной к нему недавно российской стойкой, NC-230 по-моему.

 

 

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

 

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

В постпроцессоре для станка DMU80 MonoBlock нужен вывод команды "M52", если угол поворота оси "B" от -35 до -90 градусов. Сделал через команду пользователя

 
global mom_out_angle_pos
 
    if {$mom_out_angle_pos(1) >=-35 ||$mom_out_angle_pos(1) <=-90 } {
   MOM_output_literal "M52"
   }

 

и добавил в начало траектории каждой операции

 

Но  "М52" выводится всегда. Что я делаю не так?

 

Ещё обратил внимание: если оставить условие if {$mom_out_angle_pos(1) <=-35} ,то в операциях фрезерования условие работает и "М52" выводиться верно, а в операциях сверления не выводится никогда, даже если угол B=-90.

В сверлильных не выводится, потому что у вас эти события обрабатываются другими командами. Смотри сверлильные циклы для вывода вашей команды

 

Но  "М52" выводится всегда. Что я делаю не так?

Вы хотите чтобы эта команда была модальной? Если да, что лучше сделать вывод через MOM_do_template с соответствующим блоком и вордами.

нашёл как сделать чтоб в списке инструмента выводились резьбофрезы..вопрос снят

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

наверно прописывли вручную

Мне кажется надо посмотреть какой это типа инструмента и сделать очередной elseif.

Так как вы сделали будет выводит фрезерный в любом случае, которые не удовлетворяет условию выше.

Хотя если работает, то супер!

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

В постпроцессоре для станка DMU80 MonoBlock нужен вывод команды "M52", если угол поворота оси "B" от -35 до -90 градусов. Сделал через команду пользователя

 
global mom_out_angle_pos
 
    if {$mom_out_angle_pos(1) >=-35 ||$mom_out_angle_pos(1) <=-90 } {
   MOM_output_literal "M52"
   }

Я бы вместо || поставил &&.

И ещё >= и <= проверил бы.

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

Спасибо всем за ответы!

 

Вы хотите чтобы эта команда была модельной? Если да, что лучше сделать вывод через MOM_do_template с соответствующим блоком и вордами.

 

Я хочу, чтобы эта команда выводилась  при условии если ось "B"  больше меньше -35 градусов в каждой операции. 

Во фрезерных операциях выводит нормально. Я вставил эту команду в начало операции, первое перемещение, начальное перемещение.

Как побороть операции сверления? MOM_do_template вместо MOM_output_literal  поможет?

 

Я бы вместо || поставил &&. И ещё >= и <= проверил бы.

 

Я пробовал разные варианты. Остановился на варианте  if {$mom_out_angle_pos(1) <=-35} {. Пока работает только на фрезерных операциях.

Ссылка на сообщение
Поделиться на других сайтах
Я бы вместо || поставил &&. И ещё >= и <= проверил бы.

 

Я пробовал разные варианты. Остановился на варианте  if {$mom_out_angle_pos(1) <=-35} {. Пока работает только на фрезерных операциях.

 

Вот и я про это. У вас посте №55 было прописано: если угол больше или равен -35 ИЛИ(||) меньше или равно -90. Я просто не озвучил, а попытался на ошибку указать. Я бы написал:

global mom_out_angle_pos
 
    if {$mom_out_angle_pos(1) <=-35 && $mom_out_angle_pos(1) >=-90 } {
   MOM_output_literal "M52"
   }
А если хотите через MOM_do_template, то создайте либо свою М или возьмите какую-либо ненужную из вашего поста. Сделайте её модальной и выводите в своей PB_CMD в начале всех перемещений и циклов. Хотя, я бы впихнул в эту команду флаг и дополнительную проверку, и выводил бы всё-таки через MOM_output_literal. Кстати, а что это за странная М52 и именно в промежутке -35 - -90? Что-то как-то не могу геометрию станка в голове прикинуть.
Ссылка на сообщение
Поделиться на других сайтах
  • SHARit закрепил это тему

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...