NX CAM实现FANUC宏变量钻孔子程序调用的后处理构建
2018-01-29马士龙李元馨潘运祺朱葛明王瑞平
马士龙,杨 涛,李元馨,潘运祺,朱葛明,羊 奎,王瑞平
(1.浙江吉利汽车动力总成 制造部,浙江 慈溪 315336;2.道依茨一汽(大连)柴油机有限公司 制造部,辽宁 大连 116600;3.苏州大学 计算机系,江苏 苏州 215000;4.大众一汽发动机(大连)有限公司 规划部,辽宁 大连 116600)
0 引言
NX是SEIMENS公司开发的一套集CAD/CAM/CAE一身的软件系统,除了强大的CAD功能之外,其CAM功能在业界也是数一数二。运用CAM功能所提供后处理即POST BUILDER可以方便构建后处理程序,实现FANUC系统固有循环的调用,基于其TCL脚本语言开发环境,重新构建后处理程序,可以实现用户自定循环的调用。
1 后处理及FANUC系统的宏变量
使用NX CAM自动生成刀具轨迹后,主要包含刀具位置信息的数据点和一些机床控制的指令信息。由于不同的机床控制系统对NC程序格式要求不同,这些刀具轨迹文件不能直接被控制系统所使用,因此NX CAM中的刀具轨迹必须经过处理,转换为特定控制系统能够接收的NC程序格式,这一处理过程就是“后处理”。
后处理是数控加工中的一个重要环节,其主要任务是将CAM生产刀具轨迹源文件转换成控制系统所能接收的NC代码文件[1]。
20世纪90年代,NC代码吸收了一些高级语音的基本特点,新的程序设计语言命名为宏编程。特点与计算机语言的BASIC 或C语言相似,即可以运用变量技术进行编程。Fanuc控制系统提供的宏变量有只读空变量(#0)、局部变量(#1-#33)、公用变量(#100-#199)、永久公用变量(#500-#999)和系统变量(#1000以上)[2]。运用局部变量、公用变量、永久公用变量可以灵活的开发出用户自定义的循环钻孔子程序,实现不同平面上孔加工的刀具路径的优化。
2 自定义钻孔循环
2.1 不带有孔底停留时间的钻孔循环
自定义循环如图1所示。
图1 O0081循环
图1中宏变量的意义如下:
#571-开始进给平面
#572-孔底平面(孔底的Z坐标)
#577-主轴进给速度,单位mm/s
#590-退刀平面(刀具抬起到位置的Z坐标)
循环子程序如下:
%
O0081
#1=#4003 (#4003第三组模态代码的值)
G90 G00 Z#571
G01 Z#572 F#577
G00 Z#590
G[#1]
M99
%
2.2 带有孔底停留时间的钻孔循环
自定义循环如图2所示。
图2 O0082循环
图2中宏变量的意义如下:
#571-开始进给平面
#572-孔底平面(孔底的Z坐标)
#575-停留时间 (单位为毫秒)
#577-主轴进给速度,单位mm/s
#590-退刀平面(刀具抬起到位置的Z坐标)
循环子程序如下:
%
O0082
#1=#4003
G90 G00 Z#571
G01 Z#572 F#577
G04 P#575
G00 Z#590
G[#1]
M99
%
3 后处理构建及运用TCL语言进行二次开发
3.1 定义地址字
对上述子程序中宏变量,在Post Builder中定义自定义地址字,格式如表1所示。
表1 Post Builder中定义自定义地址字
定义自定义宏程序调用(G66P00)与取消宏程序调用(G67)地址字如表2所示。
表2 自定义宏程序与取消宏程序地址字
3.2 定义相应的程序段模板并对自定义字地址赋值
在Post Builder中定义程序段模板,以保证在调用用户自定义循环时,刀具轨迹的正确性。
BLOCK_TEMPLATE cycle_mac571
{
Z_MAC_R[MYMmom_cycle_rapid_to_pos(MYMmom_cycle_spindle_axis)]opt
}
BLOCK_TEMPLATE cycle_mac572
{
Z_MAC_BOTTOM[MYMmom_cycle_feed_to_pos(2)]opt
}
BLOCK_TEMPLATE cycle_mac575
{
User_Dwell[MYMmom_cycle_delay]opt
}
BLOCK_TEMPLATE cycle_mac577
{
Z_MAC_F[MYMfeed]opt
}
BLOCK_TEMPLATE cycle_mac590
{
Z_MAC_RETRACT[MYMmom_cycle_retract_to_pos(2)]opt
}
BLOCK_TEMPLATE Usercycle_off
{
MacCallOFF[67]
}
BLOCK_TEMPLATE mac_call_G66P0081
{
G_UDC_81[81]
}
BLOCK_TEMPLATE mac_call_G66P0082
{
G_UDC_81[82]
}
3.3 定义用户循环事件及TCL控制代码的输出
在Post Builder中定义自定义循环如图3所示。
图3 自定义钻孔循环
其中运用TCL控制程序段输出的代码如下:
#=======================
proc PB_CMD_custom_afterCYC81 { } {
#=======================
global afterCYC81
set afterCYC81 1
}
#=======================
proc PB_CMD_mac_call_G66P0081 { } {
#=======================
global op_start_var
if { [info exists op_start_var] } {
if { MYMop_start_var == 1 } {
MOM_force_block Once cycle_mac571
MOM_do_template cycle_mac571-
MOM_force_block Once cycle_mac572
MOM_do_template cycle_mac572
MOM_force_block Once cycle_mac577
MOM_do_template cycle_mac577
MOM_force_block Once cycle_mac590
MOM_do_template cycle_mac590
MOM_force_block Once mac_call_G66P0081
MOM_do_template mac_call_G66P0081
set op_start_var 0
} else {
MOM_do_template cycle_mac571
MOM_do_template cycle_mac572
MOM_do_template cycle_mac577
MOM_do_template cycle_mac590
}
}
}
#=======================
proc PB_CMD_mac_call_G66P0082 { } {
#=======================
global op_start_var
if { [info exists op_start_var] } {
if { MYMop_start_var == 1 } {
MOM_force_block Once cycle_mac571
MOM_do_template cycle_mac571
MOM_force_block Once cycle_mac572
MOM_do_template cycle_mac572
MOM_force_block Once cycle_mac575
MOM_do_template cycle_mac575
MOM_force_block Once cycle_mac577
MOM_do_template cycle_mac577
MOM_force_block Once cycle_mac590
MOM_do_template cycle_mac590
MOM_force_block Once mac_call_G66P0082
MOM_do_template mac_call_G66P0082
set op_start_var 0
} else {
MOM_do_template cycle_mac571
MOM_do_template cycle_mac572
MOM_do_template cycle_mac575
MOM_do_template cycle_mac577
MOM_do_template cycle_mac590
}
}
}
3.4 用户循环结束代码输出控制TCL程序
#=======================
proc PB_CMD_custom_resetCYC81 { } {
#=======================
global afterCYC81
if { [info exists afterCYC81] } {
if { MYMafterCYC81 == 1 } {
MOM_force_block Once Usercycle_off
MOM_do_template Usercycle_off
set afterCYC81 0
} else {
MOM_do_template cycle_offG80
}
}
if { ![info exists afterCYC81] } {
MOM_do_template cycle_offG80
}
}
4 应用实例
图4是一个工程图,零件的材料为HT250,钻削加工零件上5个直径为10.5mm的孔。
图4 工程图实例
在NX11钻孔加工中选择用户自定义循环CYCLE81,给出非加工运动的相关数据,生成如图5所示刀具路径。
图5 钻孔选项及刀具路径图
运用上述开发的后处理,生成的NC代码如下:
N100 ( WORKPIECE-----Supporter )
N102 ( UPDATETIME------- )
N104 ( MODIFIER------ )
N106 ( PROGRAMMER--- Shilong.Ma )
N108 ( CONTROLLER-----Fanuc OM )
N110 G90 G21 G98 G40 G17
N112 ( TOOLPATH: DRILLING )
N114 ( TOOL:DRILL_D10.5_A135 DIAMETER:10.50 )
N116 G91 G30 Z0.0
N118 G91 G30 X0.0 Y0.0
N120 T01
N122 M06
N124 G54
N126 S2880 M03
N128 G90 G00 X200. Y0.0
N130 G43 Z53. H01
N132 #571=53.
N134 #572=12.825
N136 #577=1152.
N138 #590=110.
N140 G66P0081
N142 G00 X200. Y0.0
N144 #571=93.
N146 #572=52.825
N148 #590=160.
N150 G00 X100. Y0.0
N152 #571=143.
N154 #572=102.825
N156 G00 X0.0 Y0.0
N158 #571=93.
N160 #572=52.825
N162 #590=110.
N164 X-100.
N166 #571=53.
N168 #572=12.825
N170 #590=53.
N172 G00 X-200. Y0.0
N174 G67
N176 G91 G30 Z0.0
N178 G91 G30 X0.0 Y0.0
N180 M30
N182 ( CUTTING TIME(S): 10.5 )
%
使用CIMCOEDIT软件对上述NC程序反向生成刀具路径如图6所示。
图6 刀具路径验证
5 结论
运用TCL语言,开发出可以调用用户自定义钻孔循环的后处理程序,使NX加工模块生成的钻孔刀具路径自动以优化的形式输出NC代码,可实现刀具路径的最小化,降低刀具快速运动的时间,进而提高生产效率。
[1] 张磊,张振亚.UG NX6后处理技术培训教程[M]. 北京:清华大学出版社,2009.
[2] S K Sinha. FANUC 数控宏程序编程技术[M].北京:科学出版社,2011.