|
| Сам постпроцессор состоит из нескольких частей: 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 че