|
Сам постпроцессор состоит из нескольких частей: vstar.zip | ||||
|
|
Расширение для Лазерной головки.
Изнасилование
постпроцессора под лазерную головку происходило без меня и касалось ниже
описанных элементов, которые мне пришлось исправить:
Введен адрес
M_laser
Формат вывода адреса N
расширен до 6 знаков. - это
видно из-за того, что размер ЧПУ-шнух программ сильно вырос
MOM_first_move fix
создана PB_CMD_first_move
MOM_coolant_on
- ONCE
убрано
MOM_cutcom_off -
убран блок cutcom_off (вообще странная позиция. убирают все ,
что касается коррекции)
MOM_rapid_move
MOM_set_modes
- fix создана PB_CMD_set_modes
Убрал белеберду про
время.
ROTARY_AXIS_RETRACT - слегка изменил.
MOM_before_motion | - слегка изменил.
if {$mom_arc_mode=="LINEAR"} { set mom_arc_mode "CIRCULAR" MOM_set_modes MOM_reload_kinematics } - интересная лабуда, это видно связано с тем, что технологи второпях, при создании UDE не смотрят, что по мимо установки режима станка, там есть еще режимы для кругового движения, подачи :):):). А ведь можно просто сделать так: отредактировать UDE. |
|
|
#------------------------------------------------------------ EVENT set_modes { UI_LABEL "Set Modes" # CATEGORY MILL DRILL LATHE PARAM command_status { TYPE o DEFVAL "Active" OPTIONS "Active","Inactive","User Defined" UI_LABEL "Status" # # Need Toggle on Option Menu . # In V13.0 , these are off by default on all the following items. # } PARAM machine_mode { TYPE o DEFVAL "Mill" OPTIONS "Mill","Turn","Punch","Laser","Torch","Wire","Inactive" UI_LABEL "Machine Mode" } PARAM feed_set_mode { TYPE o DEFVAL "MMPM" OPTIONS "Off","IPM","MMPM","IPR","MMPR","Inverse","Inactive" UI_LABEL "Feedrate Mode" } PARAM output_mode { TYPE o DEFVAL "Absolute" OPTIONS "Absolute","Increment","Inactive" UI_LABEL "Output Mode" } PARAM arc_mode { TYPE o DEFVAL "Circular" OPTIONS "Linear","Circular","Inactive" UI_LABEL "Arc Mode" } PARAM parallel_to_axis { TYPE o DEFVAL "Zaxis" OPTIONS "Zaxis","Waxis","Vaxis","Inactive" UI_LABEL "Parallel Axis" } PARAM modes_text { TYPE s TOGGLE Off UI_LABEL "Text" } } |
#--------------------------------------------------------------- EVENT set_modes { UI_LABEL "Set Modes" # CATEGORY MILL DRILL LATHE PARAM command_status { TYPE o DEFVAL "Active" OPTIONS "Active","Inactive","User Defined" UI_LABEL "Status" # # Need Toggle on Option Menu . # In V13.0 , these are off by default on all the following items. # } PARAM machine_mode { TYPE o DEFVAL "Inactive" OPTIONS "Mill","Turn","Punch","Laser","Torch","Wire","Inactive" UI_LABEL "Machine Mode" } PARAM feed_set_mode { TYPE o DEFVAL "Inactive" OPTIONS "Off","IPM","MMPM","IPR","MMPR","Inverse","Inactive" UI_LABEL "Feedrate Mode" } PARAM output_mode { TYPE o DEFVAL "Inactive" OPTIONS "Absolute","Increment","Inactive" UI_LABEL "Output Mode" } PARAM arc_mode { TYPE o DEFVAL "Inactive" OPTIONS "Linear","Circular","Inactive" UI_LABEL "Arc Mode" } PARAM parallel_to_axis { TYPE o DEFVAL "Inactive" OPTIONS "Zaxis","Waxis","Vaxis","Inactive" UI_LABEL "Parallel Axis" } PARAM modes_text { TYPE s TOGGLE Off UI_LABEL "Text" } } |
Расширение для угловой головки.
Однажды в цехе решили использовать угловую головку, для использования постпроцессора под неё, необходимо было переопределить кинематику.
|
set mom_kin_4th_axis_ang_offset "0.0" set mom_kin_4th_axis_center_offset(0) "-33.0" ;# длина угловой головки от поворота до места крепления инструмента set mom_kin_4th_axis_center_offset(1) "0.0" set mom_kin_4th_axis_center_offset(2) "-480.0" ;# (-300)+(-180)-длина от точки поворота до торца шпинделя плюс длина угловой головки от торца шпинделя до поворота set mom_kin_4th_axis_zero "-270.0" set mom_kin_5th_axis_ang_offset "0.0" set mom_kin_5th_axis_center_offset(0) "0.0" set mom_kin_5th_axis_center_offset(1) "0.0" set mom_kin_5th_axis_center_offset(2) "0.0" set mom_kin_pivot_dist_vec(0) "480.0" set mom_kin_pivot_dist_vec(2) "33.0" set mom_kin_pivot_guage_offset "" |
Но насадок для этой головки было
несколько, поэтому расчет для каждой должен был произведен примерно по
такой схеме:set mom_kin_4th_axis_center_offset(0) -P
set mom_kin_4th_axis_center_offset(2) -L - 300.043
Е.И - создала новый постпроцессор (сделав копию
рабочего). Я молчу. То, что
делает начальник, подчиненные не обсуждают.
set mom_kin_pivot_dist_vec(0) L + 300.043
set mom_kin_pivot_dist_vec(2) P
Дальше стал проблема,
каким образом Технолог будет вводить значения L,
P - при выборе головки. |
|
Ведь можно было сделать проще.. Создаем программу (dll) на UGOPEN, технолог запускает, вносит (выбирает нужные значения), выбирает нужные операции (программы), нажимает APPLY, OK программа создает в них (операциях\инструменте) атрибуты ( примерно, UGLOV_L=L UGLOV_P=P ). И ВСЕ!!! При запуске постпроцессора, МОМ - автоматически создаст мом - переменные с данными атрибутами. данную программу можно объединить и дополнительно вносить параметры X-OFFSET, ORIGIN. Атрибуты и МОМ-переменные создаются согласно давно известной таблице:
В таблице выше <имя> соответствует определяемым пользователем имени атрибута.
|
Делать нечего.
Надо исправлять ситуацию. Поэтому я сделал, МОМ - расширение, вызываемое в постпроцессоре. И сократил ПП. Старый вызов оставил как запасной вариант. После запуска ПП, появлялось диалоговое окно: Технолог выбирал параметры. OK. В MOM - интерпретаторе создавались переменные mom_param_l, mom_param_p. Ну, а дальше, все просто. set user_dll_file "${path}\\pivot_offsets${user_dll}.dll" global mom_load_dir_dlg ; эта переменную мы создаем для загрузки dlg (формы диалога) set mom_load_dir_dlg "${path}\\pivot_offsets.dlg" if {[file exists $user_dll_file]} { global mom_param_l global mom_param_p set mom_param_l 0 set mom_param_p 0 catch { MOM_run_user_function "${user_dll_file}" ufusr } errMes ; set angle_head_L_param [ expr double($mom_param_l) ] set angle_head_P_param [ expr double($mom_param_p) ] }
Исходники:
pp_pivot_offsets.zip /*Полный путь до файла диалога*/ UF_MOM_ask_string ( mom,"load_dir_dlg",&valuepath); pathfile[0]='\0'; sprintf(pathfile,"%s",valuepath); printf("\n mom_load_dir_dlg=%s ",pathfile); /****************************************************************************/ if ( ( errorCode = UF_STYLER_create_dialog ( pathfile, CS_cbs, /* Callbacks from dialog */ CS_CB_COUNT, /* number of callbacks*/ NULL, /* This is your client data */ &response ) ) != 0 ) { UF_print_syslog(" ufusr_main DLL - Ошибка загрузки шаблона диалога\n -Ошибка памяти- \n",FALSE); } /****************************************************************************/ /*******Запись переменных в mom*********************************/ UF_MOM_set_double ( mom,"param_l",param_l ); UF_MOM_set_double ( mom,"param_p",param_p ); ..... |
На начало 2012 года - помимо рабочего, было еще 5! - версий для разного рода отладок.
Copyright © 2001—2009 че