贵州航天天马机电科技有限公司 (遵义 563003) 苏德军
Unigraphics NX(以下简称UG NX)是由美国UGS公司推出的面向制造行业的C A D/CAE/CAM高端软件,现被德国Siemens公司收购,它是当今最先进、最流行的工业设计软件之一。它集合了概念设计、工程设计、分析与加工制造的功能,实现了优化设计与产品生产过程的组合。该软件的CAM系统具有刀具路径计算速度快、碰撞和过切检查功能完善、刀具路径策略丰富、刀具路径编辑功能丰富、操作过程简单易学以及能实现多轴加工、车铣复合加工、高速加工等数控编程的优点,鉴于它强大的编程功能在全球有广泛的用户群。
使用NX CAM加工模块生成刀具路径轨迹后,其中会包含GOTO点和其他机床控制的指令信息。由于不同的机床控制系统对NC程序格式有着不同的要求(数控机床的控制器不同,所使用的NC程序格式就不一样),这些NC刀具源文件也就不能直接被控制系统所使用,因此NX CAM中的刀具路径轨迹必须经过处理转换成特定的机床控制器能接受的NC程序格式,这一处理过程就是“后处理”。后处理是数控加工中一个重要的环节,其主要任务是将CAM软件生成的加工刀位轨迹文件转换成特定机床可接受的NC程序文件。
UG NX提供了一个性能优异的后处理工具——NX/ Post Builder。通过NX/ Post Builder图形界面用户可以交互方式来灵活定义建立NC程序的格式和输出内容,以及程序头尾、操作头尾、换刀、循环等每一个事件的处理方式,利用它建立和机床控制系统相关的事件处理文件和事件定义文件,然后通过UG NX整合在一起,完成简单或任意复杂机床的后处理。
因此我们可以通过修改NX/Post Builder解决实际加工中出现的各种问题,本文通过一个实例进行说明。
(1)在实际工作中经常要加工螺纹孔,通常的加工方法是:钻完底孔后利用丝锥进行加工。这种加工方法只适用于标准小螺纹孔的加工,当螺纹孔大、螺距大、非标准时,这种加工方法就存在很大的局限性。主要表现在:①手工攻螺纹时需要很大的力量,增加操作人员的劳动强度而且劳动效率低,还容易出现烂牙和攻歪现象。②机攻时由于强力挤压、排屑不畅,容易造成烂牙现象,甚至折断刀具击伤操作人员。③不同的螺纹需配置不同的刀具,刀具种类繁多,采购难度大,容易造成工期延误,而且增加成本。④螺纹加工精度不高,影响装配精度。
(2)鉴于上述原因,传统加工方法不适用于这类螺纹孔的加工,需寻找一种更好的加工途径。通过阅读数控铣床相关控制手册及参考数控车床加工螺纹孔的方法,发现在数控铣床上装上数控车床加工螺纹的刀具,并编制合理的NC程序能够实现此类螺纹孔的加工,而且能有效地避免传统加工方法存在的缺点。但在实践过程中发现UG CAM自带的后处理生成的螺纹加工NC程序是将螺旋线打断成许多细小的直线,以细小直线组合趋近于螺旋线,程序代码以G01的方式出现。下面以某型号一个零件加以说明,零件如图1所示。
图 1
该零件要加工两个M27×2螺纹孔,在UC CAM模块中编制好程序后(见图2),用UG CAM自带的后处理文件生成螺纹加工程序。
图 2
程序如下:
%
O0001
N1 G21
N2 G17 G40 G49 G80
N3 G00 G90 G54
N4 S3000 M04
N5 G00 X-17.5 Y0.0
N6 Z20.
N7 Z0.0
N8 G01 X-15.55 F1200
N9 X-12.55
N10 X-12.557 Y-.281 Z-.018
N11 X-12.581 Y-.561 Z-.036
N12 X-12.621 Y-.84 Z-.054
N13 X-12.676 Y-1.116 Z-.072
N14 X-12.747 Y-1.388 Z-.09
N15 X-12.834 Y-1.656 Z-.109
N16 X-12.936 Y-1.918 Z-.127
N17 X-13.052 Y-2.174 Z-.145
N18 X-13.182 Y-2.423 Z-.163
N19 X-13.327 Y-2.664 Z-.181
N20 X-13.485 Y-2.897 Z-.199
N21 X-13.656 Y-3.12 Z-.217
N22 X-13.84 Y-3.334 Z-.235
N23 X-14.035 Y-3.536 Z-.253
N24 X-14.241 Y-3.727 Z-.271
N25 X-14.458 Y-3.906 Z-.289
N26 X-14.685 Y-4.073 Z-.307
N27 X-14.921 Y-4.226 Z-.326
N28 X-15.165 Y-4.366 Z-.344
N29 X-15.417 Y-4.491 Z-.362
N30 X-15.675 Y-4.602 Z-.38
N31 X-15.94 Y-4.699 Z-.398
N32 X-16.209 Y-4.78 Z-.416
N33 X-16.482 Y-4.845 Z-.434
……
N2322 X14.458 Y-3.906 Z-20.711
N2323 X14.241 Y-3.727 Z-20.729
N2324 X14.035 Y-3.536 Z-20.747
N2325 X13.84 Y-3.334 Z-20.765
N2326 X13.656 Y-3.12 Z-20.783
N2327 X13.485 Y-2.897 Z-20.801
N2328 X13.327 Y-2.664 Z-20.819
N2329 X13.182 Y-2.423 Z-20.837
N2330 X13.052 Y-2.174 Z-20.855
N2331 X12.936 Y-1.918 Z-20.873
N2332 X12.834 Y-1.656 Z-20.891
N2333 X12.747 Y-1.388 Z-20.91
N2334 X12.676 Y-1.116 Z-20.928
N2335 X12.621 Y-.84 Z-20.946
N2336 X12.581 Y-.561 Z-20.964
N2337 X12.557 Y-.281 Z-20.982
N2338 X12.55 Y0.0 Z-21.
N2339 X15.55 F200.
N2340 X17.5
N2341 G00 Z20.
N2342 M05
N2343 M09
N2344 M30
%
如图3所示,通过C I M C O Edit V5数控仿真软件演示可以看到该NC程序的走刀路径是以螺旋线的形式出现。
但检查程序发现该后处理将螺旋线打断成许多细小的直线,以细小直线组合趋近于螺旋线,程序代码以G01的方式出现,这种处理方式不仅程序代码长(有2 344行),而且加工精度差,不是最佳的处理方法。最佳的处理方法为(在XY平面内):
G17 G02(G03)X__Y__Z__I__J__
X__Y__Z__I__J__
X__Y__Z__I__J__
……
图 3
图 4
(1)根据前面的叙述可以知道,通过修改NX/ Post Builder能够解决实际加工中出现的各种问题,通常利用NX/ Post Builder图形界面,用户能够定制生成符合机床控制系统要求的程序代码,但有些机床控制系统比较特殊或者有些程序代码比较特殊,普通的NX/ Post Builder生成的后处理不能满足要求。这时必须利用custom command(用户自定义命令)来处理这些特殊情况,以生成符合条件的数据格式。
(2)由于螺旋线的程序代码比较特殊,需利用TCL语言构建程序建立custom command(用户自定义命令)解决问题。
首先,如图4所示,在program & tool parh→custom command子选项卡下建立一个名称为PB_CMD_init_helix的用户自定义命令,并用TCL语言构建程序进行判断和输出螺旋线程序代码。
构建的程序如下:
uplevel #0 {
set mom_sys_helix_pitch_type
“rise_radian”
set mom_kin_helical_arc_output_mode FULL_CIRCLE
MOM_reload_kinematics
proc MOM_helix_move { } {
global mom_pos_arc_plane
global mom_sys_cir_vector
global mom_sys_helix_pitch_type
global mom_helix_pitch
global mom_prev_pos mom_pos_arc_center
global PI
switch $mom_pos_arc_plane {
XY { MOM_suppress once K ;set cir_index 2 }
YZ { MOM_suppress once I ; set cir_index 0 }
ZX { MOM_suppress once J ; set cir_index 1 }
}
switch $mom_sys_helix_pitch_type {
none { }
rise_revolution { set pitch$mom_helix_pitch }
rise_radian { set pitch [expr$mom_helix_pitch / ($PI * 2.0)]}
other {
}
default { set mom_sys_helix_pitch_type “none” }
}
MOM_force once X Y Z
if {$mom_sys_helix_pitch_type !=“none”} {
MOM_force once I J K
if {$mom_sys_cir_vector ==“Vector - Arc Center to Start”} {
set mom_prev_pos($cir_index)0.0
set mom_pos_arc_center($cir_index) $pitch
} elseif {$mom_sys_cir_vector== “Vector - Arc Start to Center”} {
set mom_prev_pos($cir_index)$pitch
set mom_pos_arc_center($cir_index) 0.0
} elseif {$mom_sys_cir_vector== “Unsigned Vector - Arc Center to Start”} {
set mom_prev_pos($cir_index)0.0
set mom_pos_arc_center($cir_index) $pitch
} elseif {$mom_sys_cir_vector== “Absolute Arc Center”} {
set mom_pos_arc_center($cir_index) $pitch
}
}
MOM_do_template circular_move
} ;
} ;
其次,如图5所示,将定义好的用户命令PB_CMD_init_helix添加到start of program标记中。当Post Builder处理过程中发现程序有螺旋加工事件,便会以用户命令PB_CMD_init_helix指定好的模式进行输出。
图 5
(3)经过修改Post Builder后,再将图1所示零件进行后处理输出,得到如下程序:
%
O0001
N1 G21
N2 G17 G40 G49 G80
N3 G00 G90 G54
N4 S3000 M04
N5 G00 X-17.5 Y0.0
N6 Z20.
N7 Z0.0
N8 G01 X-15.55 F1200
N9 X-12.55
N10 G17 G02 X-12.55 Y0.0 Z-2.I-4.95 J0.0
N11 X-12.55 Y0.0 Z-4. I-4.95 J0.0
N12 X-12.55 Y0.0 Z-6. I-4.95 J0.0
N13 X-12.55 Y0.0 Z-8. I-4.95 J0.0
N14 X-12.55 Y0.0 Z-10. I-4.95 J0.0
N15 X-12.55 Y0.0 Z-12. I-4.95 J0.0
N16 X-12.55 Y0.0 Z-14. I-4.95 J0.0
N17 X-12.55 Y0.0 Z-16. I-4.95 J0.0
N18 X-12.55 Y0.0 Z-18. I-4.95 J0.0
N19 X-12.55 Y0.0 Z-20. I-4.95 J0.0
N20 X-22.45 Y0.0 Z-21. I-4.95 J0.0
N21 G01 X-19.45
N22 X-17.5
N23 G00 Z20.
N24 X17.5
N25 Z0.0
N26 G01 X19.45 F0.0
N27 X22.45
N28 G02 X22.45 Y0.0 Z-2. I-4.95 J0.0
N29 X22.45 Y0.0 Z-4. I-4.95 J0.0
N30 X22.45 Y0.0 Z-6. I-4.95 J0.0
N31 X22.45 Y0.0 Z-8. I-4.95 J0.0
N32 X22.45 Y0.0 Z-10. I-4.95 J0.0
N33 X22.45 Y0.0 Z-12. I-4.95 J0.0
N34 X22.45 Y0.0 Z-14. I-4.95 J0.0
N35 X22.45 Y0.0 Z-16. I-4.95 J0.0
N36 X22.45 Y0.0 Z-18. I-4.95 J0.0
N37 X22.45 Y0.0 Z-20. I-4.95 J0.0
N38 X12.55 Y0.0 Z-21. I-4.95 J0.0
N39 G01 X15.55.
N40 X17.5
N41 G00 Z20.
N42 M05
N43 M09
N44 M30
%
可以看出该NC程序满足要求,并有如下优点:①程序代码短只有44行,修改以前有2 344行,大大的节约了机床的存贮空间。②程序以螺旋运动的模式输出,加工精度得到很大的提高。③程序简洁便于检查,提高了程序的可靠性。
当机床控制系统比较特殊或者程序代码比较特殊时(如螺旋加工模式),可以利用TCL语言构建程序建立custom command(用户自定义命令)来处理这些特殊情况,以产生符合条件的数据格式。
[1] 张磊. UG NX6.0后处理技术培训教程[M]. 北京:清华大学出版社,2009.