馬士龍,楊 濤,李元馨,潘運祺,朱葛明,羊 奎,王瑞平
(1.浙江吉利汽車動力總成 制造部,浙江 慈溪 315336;2.道依茨一汽(大連)柴油機有限公司 制造部,遼寧 大連 116600;3.蘇州大學(xué) 計算機系,江蘇 蘇州 215000;4.大眾一汽發(fā)動機(大連)有限公司 規(guī)劃部,遼寧 大連 116600)
NX是SEIMENS公司開發(fā)的一套集CAD/CAM/CAE一身的軟件系統(tǒng),除了強大的CAD功能之外,其CAM功能在業(yè)界也是數(shù)一數(shù)二。運用CAM功能所提供后處理即POST BUILDER可以方便構(gòu)建后處理程序,實現(xiàn)FANUC系統(tǒng)固有循環(huán)的調(diào)用,基于其TCL腳本語言開發(fā)環(huán)境,重新構(gòu)建后處理程序,可以實現(xiàn)用戶自定循環(huán)的調(diào)用。
使用NX CAM自動生成刀具軌跡后,主要包含刀具位置信息的數(shù)據(jù)點和一些機床控制的指令信息。由于不同的機床控制系統(tǒng)對NC程序格式要求不同,這些刀具軌跡文件不能直接被控制系統(tǒng)所使用,因此NX CAM中的刀具軌跡必須經(jīng)過處理,轉(zhuǎn)換為特定控制系統(tǒng)能夠接收的NC程序格式,這一處理過程就是“后處理”。
后處理是數(shù)控加工中的一個重要環(huán)節(jié),其主要任務(wù)是將CAM生產(chǎn)刀具軌跡源文件轉(zhuǎn)換成控制系統(tǒng)所能接收的NC代碼文件[1]。
20世紀(jì)90年代,NC代碼吸收了一些高級語音的基本特點,新的程序設(shè)計語言命名為宏編程。特點與計算機語言的BASIC 或C語言相似,即可以運用變量技術(shù)進行編程。Fanuc控制系統(tǒng)提供的宏變量有只讀空變量(#0)、局部變量(#1-#33)、公用變量(#100-#199)、永久公用變量(#500-#999)和系統(tǒng)變量(#1000以上)[2]。運用局部變量、公用變量、永久公用變量可以靈活的開發(fā)出用戶自定義的循環(huán)鉆孔子程序,實現(xiàn)不同平面上孔加工的刀具路徑的優(yōu)化。
自定義循環(huán)如圖1所示。
圖1 O0081循環(huán)
圖1中宏變量的意義如下:
#571-開始進給平面
#572-孔底平面(孔底的Z坐標(biāo))
#577-主軸進給速度,單位mm/s
#590-退刀平面(刀具抬起到位置的Z坐標(biāo))
循環(huán)子程序如下:
%
O0081
#1=#4003 (#4003第三組模態(tài)代碼的值)
G90 G00 Z#571
G01 Z#572 F#577
G00 Z#590
G[#1]
M99
%
自定義循環(huán)如圖2所示。
圖2 O0082循環(huán)
圖2中宏變量的意義如下:
#571-開始進給平面
#572-孔底平面(孔底的Z坐標(biāo))
#575-停留時間 (單位為毫秒)
#577-主軸進給速度,單位mm/s
#590-退刀平面(刀具抬起到位置的Z坐標(biāo))
循環(huán)子程序如下:
%
O0082
#1=#4003
G90 G00 Z#571
G01 Z#572 F#577
G04 P#575
G00 Z#590
G[#1]
M99
%
對上述子程序中宏變量,在Post Builder中定義自定義地址字,格式如表1所示。
表1 Post Builder中定義自定義地址字
定義自定義宏程序調(diào)用(G66P00)與取消宏程序調(diào)用(G67)地址字如表2所示。
表2 自定義宏程序與取消宏程序地址字
在Post Builder中定義程序段模板,以保證在調(diào)用用戶自定義循環(huán)時,刀具軌跡的正確性。
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]
}
在Post Builder中定義自定義循環(huán)如圖3所示。
圖3 自定義鉆孔循環(huán)
其中運用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
}
}
}
#=======================
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是一個工程圖,零件的材料為HT250,鉆削加工零件上5個直徑為10.5mm的孔。
圖4 工程圖實例
在NX11鉆孔加工中選擇用戶自定義循環(huán)CYCLE81,給出非加工運動的相關(guān)數(shù)據(jù),生成如圖5所示刀具路徑。
圖5 鉆孔選項及刀具路徑圖
運用上述開發(fā)的后處理,生成的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 刀具路徑驗證
運用TCL語言,開發(fā)出可以調(diào)用用戶自定義鉆孔循環(huán)的后處理程序,使NX加工模塊生成的鉆孔刀具路徑自動以優(yōu)化的形式輸出NC代碼,可實現(xiàn)刀具路徑的最小化,降低刀具快速運動的時間,進而提高生產(chǎn)效率。
[1] 張磊,張振亞.UG NX6后處理技術(shù)培訓(xùn)教程[M]. 北京:清華大學(xué)出版社,2009.
[2] S K Sinha. FANUC 數(shù)控宏程序編程技術(shù)[M].北京:科學(xué)出版社,2011.