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

FAQ/Unigraphics/POST


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

13 часа назад, mr_Voden сказал:

@Alexkid Мне стало любопытно почему функция, которую я написал не сработала в вашем посте. В итоге я выяснил, что она будет работать только в постах созданных на основе библиотеки систем чпу, встроенной в постбилдер, а именно fanuc_30i_advanced. Ни в каких других вариантах она не работает, и было бы очень интересно узнать почему переменные mom_nxt_event_count и mom_nxt_event остаются пустыми.

Сделал пост на 3хосевой станок, поглядите, если что доработать запросто можно.

 

new_11.08.19_21.08.zip

Сталкивался с таким же. Просто перенёс все команды пользователя в свой пост, вроде заработало.

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


Подскажите как сделать, чтобы при 5 осевой обработке пост пересчитывал координаты Y и B в соответствии с заданной длиной инструмента?

Токарные автоматы с поворотной осью B не умеют работать с корректором на длину инструмента, чтобы смещения пересчитывались в стойке, либо я что-то делаю не так...

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

Добрый день. 

Подскажите, какая команда отвечает за вывод G50 в токарном цикле?

у меня выводит G92 (это фанук B) , хочу поменять на G50. 

 

7 минут назад, bri сказал:

Добрый день. 

Подскажите, какая команда отвечает за вывод G50 в токарном цикле?

у меня выводит G92 (это фанук B) , хочу поменять на G50. 

Вопрос снят) вроде разобрался

 

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

Здравствуйте, подскажите пожалуйста как мне узнать было ли в предыдущей операции вызвана событие MOM_stop?

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

Добрый день. Неожиданно возник вопрос....

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

G1 x...    y....

y...

y...

y...

x.. y..

Как нибудь можно побороть в посте?

Ссылка на сообщение
Поделиться на других сайтах
В 28.08.2019 в 07:38, dimsond88 сказал:

Здравствуйте, подскажите пожалуйста как мне узнать было ли в предыдущей операции вызвана событие MOM_stop?

В обработчике события поставь флаг.

2 часа назад, bri сказал:

Добрый день. Неожиданно возник вопрос....

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

G1 x...    y....

y...

y...

y...

x.. y..

Как нибудь можно побороть в посте?

сравни эти координаты с координатами clsf-файла. Что бы определить это постпроцессор разбивает траекторию, или сам UG. Тогда будет понятно, где лечить.

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

Какой пост?  Какая траектория? Что по вашему мнению должно быть? 

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

Какой пост?  Какая траектория? Что по вашему мнению должно быть? 

Пост свой, линейное перемещение. Хотелось бы без промежуточных значений

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

@bri Можно по каждой координате проверять условие: если в следующем кадре меняется только эта координата, то подавляем вывод, если же она не меняется, или меняется несколько - то выводим. Была подобная мысль, но не реализовывал, по наличию времени на днях попробую. А выводит пост несколько У или Х подряд, потому для него они принадлежат к разным событиям, а не к одному событию "линейное перемещение".

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

@bri Можно по каждой координате проверять условие: если в следующем кадре меняется только эта координата, то подавляем вывод, если же она не меняется, или меняется несколько - то выводим. Была подобная мысль, но не реализовывал, по наличию времени на днях попробую. А выводит пост несколько У или Х подряд, потому для него они принадлежат к разным событиям, а не к одному событию "линейное перемещение".

С созданием условий у меня плохо) 

 

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

@bri Нашлась свободная минутка. В общем я имел в виду что-то типа того:

Команда пользователя  

#=============================================================
proc PB_CMD_POS_SUPPRESS { } {
#=============================================================

global mom_pos mom_nxt_pos mom_prev_pos

set cx [format "%.3f" $mom_pos(0)]
set cy [format "%.3f" $mom_pos(1)]
set cz [format "%.3f" $mom_pos(2)]

set nx [format "%.3f" $mom_nxt_pos(0)]
set ny [format "%.3f" $mom_nxt_pos(1)]
set nz [format "%.3f" $mom_nxt_pos(2)]

set px [format "%.3f" $mom_prev_pos(0)]
set py [format "%.3f" $mom_prev_pos(1)]
set pz [format "%.3f" $mom_prev_pos(2)]

if { $cx!=$nx } {
    if {  ($cy==$ny && $cz==$nz) && ($cy==$py && $cz==$pz) } {
        MOM_suppress once X
    }
}

if { $cy!=$ny } {
    if {  ($cx==$nx && $cz==$nz) && ($cx==$px && $cz==$pz) } {
        MOM_suppress once Y
    }
}

}

Hide  

 

Без нее пост выводит  

(POV1_CHIST_D10)
G0 X-177.266 Y57.462
Z10.
Z3.
G1 G90 Z0. D#4120 F250.
G41 X-182.7 Y55.
Y54.
Y45.
G3 X-167.7 Y30. R15.
G2 X-147.857 Y22.5 R30.
G3 X-128.014 Y15.
G1 X-43.925
G3 X-38.925 Y20. R5.
G1 Y23.5
Y32.5
Y33.5
G40 X-44.359 Y35.962
Z3.
Z10.

Hide  

 

С ней  

(POV1_CHIST_D10)
G0 X-177.266 Y57.462
Z10.
Z3.
G1 G90 Z0. D#4120 F250.
G41 X-182.7 Y55.
Y45.
G3 X-167.7 Y30. R15.
G2 X-147.857 Y22.5 R30.
G3 X-128.014 Y15.
G1 X-43.925
G3 X-38.925 Y20. R5.
G1
Y33.5
G40 X-44.359 Y35.962
Z3.
Z10.

Hide  

Нужно потестировать это решение, тк у него могут быть негативные побочные эффекты.

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

@bri Нашлась свободная минутка. В общем я имел в виду что-то типа того:

Команда пользователя

#=============================================================
proc PB_CMD_POS_SUPPRESS { } {
#=============================================================

global mom_pos mom_nxt_pos mom_prev_pos

set cx [format "%.3f" $mom_pos(0)]
set cy [format "%.3f" $mom_pos(1)]
set cz [format "%.3f" $mom_pos(2)]

set nx [format "%.3f" $mom_nxt_pos(0)]
set ny [format "%.3f" $mom_nxt_pos(1)]
set nz [format "%.3f" $mom_nxt_pos(2)]

set px [format "%.3f" $mom_prev_pos(0)]
set py [format "%.3f" $mom_prev_pos(1)]
set pz [format "%.3f" $mom_prev_pos(2)]

if { $cx!=$nx } {
    if {  ($cy==$ny && $cz==$nz) && ($cy==$py && $cz==$pz) } {
        MOM_suppress once X
    }
}

if { $cy!=$ny } {
    if {  ($cx==$nx && $cz==$nz) && ($cx==$px && $cz==$pz) } {
        MOM_suppress once Y
    }
}

}

Hide

 

Без нее пост выводит

(POV1_CHIST_D10)
G0 X-177.266 Y57.462
Z10.
Z3.
G1 G90 Z0. D#4120 F250.
G41 X-182.7 Y55.
Y54.
Y45.
G3 X-167.7 Y30. R15.
G2 X-147.857 Y22.5 R30.
G3 X-128.014 Y15.
G1 X-43.925
G3 X-38.925 Y20. R5.
G1 Y23.5
Y32.5
Y33.5
G40 X-44.359 Y35.962
Z3.
Z10.

Hide

 

С ней

(POV1_CHIST_D10)
G0 X-177.266 Y57.462
Z10.
Z3.
G1 G90 Z0. D#4120 F250.
G41 X-182.7 Y55.
Y45.
G3 X-167.7 Y30. R15.
G2 X-147.857 Y22.5 R30.
G3 X-128.014 Y15.
G1 X-43.925
G3 X-38.925 Y20. R5.
G1
Y33.5
G40 X-44.359 Y35.962
Z3.
Z10.

Hide

Нужно потестировать это решение, тк у него могут быть негативные побочные эффекты.

Моя работа это разработка постпроцессоров. И я против того, что бы постпроцессор додумывал за программиста ЧПУ (что программист хотел несколько линейных перемещений, или одно.). Если вы хотите одно линейное перемещение вместо нескольких, то исправляйте траекторию в UG.

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

Моя работа это разработка постпроцессоров. И я против того, что бы постпроцессор додумывал за программиста ЧПУ (что программист хотел несколько линейных перемещений, или одно.). Если вы хотите одно линейное перемещение вместо нескольких, то исправляйте траекторию в UG.

Думал про решение в самом nx. Но это убирать врезание/отход, ну и расширять траекторию. Ручками быстрее) 

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

В основном убирать лишние точки (кадры в УП) просят операторы ЧПУ, т.к. им так удобнее читать координаты. Но те же операторы потом просят добавить точки на траектории подхода перед врезанием, что бы им было безопаснее отрабатывать программу в покадровом режиме. Поэтому по моему мнению пост усложнять не надо, т.к. это черевато ударами. А нужно найти компромисс с оператором. Как лучше программисту напрячся над траекторией, или оператору смириться с дополнительными точками на траектории.

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

Коллеги подскажите, как побороть тигра?

После использования команды "MOM_cycle_objects" UG скидывает в буфер данные из последний операции, в первой операции.

 

Код для получения данных из дерева UG и вывода их в оглавление перед УП:

    proc  MOM_OPER_BODY {} {
        global  lib_prog_info
        global mom_object_name
        global mom_oper_tool
        if {![info exists lib_prog_info(list)]} {set lib_prog_info(list) {}}
        set  index  [llength $lib_prog_info(list)]
        lappend  lib_prog_info(list)  $mom_object_name
        set  lib_prog_info(size)  [expr $index+1]
        set  lib_prog_info(oper,$index,name) $mom_object_name
        set  lib_prog_info(oper,$index,tool_name) $mom_oper_tool
        global mom_tool_number 
        if {[info exists mom_tool_number]} {
            set  lib_prog_info(oper,$index,tool_number)  $mom_tool_number
        } else {
            set  lib_prog_info(oper,$index,tool_number)  0
        }    
        global mom_toolpath_time mom_template_subtype
        set  lib_prog_info(oper,$index,template_subtype)  $mom_template_subtype
        if {[info exists mom_toolpath_time]} {
            if {[string match "*_CONTROL" $mom_template_subtype] == 1} {
                set  lib_prog_info(oper,$index,time)  0
            } else {
                set  lib_prog_info(oper,$index,time)  $mom_toolpath_time
            }
        } else {
            set  lib_prog_info(oper,$index,time)  0
        }
        
        global mom_template_type
        global mom_tool_holder_angle_for_cutting
        global mom_use_a_axis mom_use_b_axis
        
        set lib_prog_info(oper,$index,type) $mom_template_type; 
        
        if {$lib_prog_info(oper,$index,type) == "turning"} {
            set lib_prog_info(oper,$index,angleHolder) $mom_tool_holder_angle_for_cutting;
            set lib_prog_info(oper,$index,use_a) $mom_use_a_axis;
            set lib_prog_info(oper,$index,use_b) $mom_use_b_axis;         
        }
    }
    
    MOM_cycle_objects {SETUP {PROGRAMVIEW {MEMBERS}}}
    proc  MOM_PROGRAM_BODY {} {}
    proc  MOM_OPER_BODY {} {}

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

@Wp11

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

Моя работа это разработка постпроцессоров. И я против того, что бы постпроцессор додумывал за программиста ЧПУ (что программист хотел несколько линейных перемещений, или одно.). Если вы хотите одно линейное перемещение вместо нескольких, то исправляйте траекторию в UG.

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

ИМХО постпроцессор должен делать то, что от него хочет программист. Все что может быть автоматизировано постом - должно быть автоматизировано. На крайний случай можно оставить ude-шку, чтобы технолог мог сам решить какой функционал ему нужен в данный момент.

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

1 - она не оттестирована, о чем я писал

2 - никто не отменял верификаторы

3 - можно не лепить эту функцию к каждому посту и к каждой траектории. Можно оставить это решение за технологом с помощью ude. А лезть ручками в траекторию каждый раз - потери человеко-часов зашкалят.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 31.08.2019 в 12:28, Wp11 сказал:

Коллеги подскажите, как побороть тигра?

После использования команды "MOM_cycle_objects" UG скидывает в буфер данные из последний операции, в первой операции.

 

Код для получения данных из дерева UG и вывода их в оглавление перед УП:

    proc  MOM_OPER_BODY {} {
        global  lib_prog_info
        global mom_object_name
        global mom_oper_tool
        if {![info exists lib_prog_info(list)]} {set lib_prog_info(list) {}}
        set  index  [llength $lib_prog_info(list)]
        lappend  lib_prog_info(list)  $mom_object_name
        set  lib_prog_info(size)  [expr $index+1]
        set  lib_prog_info(oper,$index,name) $mom_object_name
        set  lib_prog_info(oper,$index,tool_name) $mom_oper_tool
        global mom_tool_number 
        if {[info exists mom_tool_number]} {
            set  lib_prog_info(oper,$index,tool_number)  $mom_tool_number
        } else {
            set  lib_prog_info(oper,$index,tool_number)  0
        }    
        global mom_toolpath_time mom_template_subtype
        set  lib_prog_info(oper,$index,template_subtype)  $mom_template_subtype
        if {[info exists mom_toolpath_time]} {
            if {[string match "*_CONTROL" $mom_template_subtype] == 1} {
                set  lib_prog_info(oper,$index,time)  0
            } else {
                set  lib_prog_info(oper,$index,time)  $mom_toolpath_time
            }
        } else {
            set  lib_prog_info(oper,$index,time)  0
        }
        
        global mom_template_type
        global mom_tool_holder_angle_for_cutting
        global mom_use_a_axis mom_use_b_axis
        
        set lib_prog_info(oper,$index,type) $mom_template_type; 
        
        if {$lib_prog_info(oper,$index,type) == "turning"} {
            set lib_prog_info(oper,$index,angleHolder) $mom_tool_holder_angle_for_cutting;
            set lib_prog_info(oper,$index,use_a) $mom_use_a_axis;
            set lib_prog_info(oper,$index,use_b) $mom_use_b_axis;         
        }
    }
    
    MOM_cycle_objects {SETUP {PROGRAMVIEW {MEMBERS}}}
    proc  MOM_PROGRAM_BODY {} {}
    proc  MOM_OPER_BODY {} {}

Коллеги подсказали как достать все необходимые данные из NX перед постпроцессированием. Кому интересно с NX9 есть команда "MOM_run_postprocess"

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

Здравствуйте. Кто разбирается в Post Configurator? Там есть Edit post configurator files выводит пост частично в текстовом режиме, там есть настройка которая влияет на величину ретракта кинематики, оно у меня 500, но если изменить его на другое, то пост все равно будет отводить инструмент на 500мм, где можно найти эту настройку еще или как ее изменить?

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

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

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

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

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

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

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

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

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

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

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




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