何多政,郭 輝,沈 勇,許鋒國
(中航飛機(jī)起落架有限責(zé)任公司,陜西 漢中 723200)
計(jì)算機(jī)輔助編程是借助計(jì)算機(jī)圖形學(xué)技術(shù),通過人機(jī)交互方式,由計(jì)算機(jī)系統(tǒng)完成復(fù)雜的數(shù)據(jù)運(yùn)算、邏輯判斷和仿真驗(yàn)證,輸出滿足機(jī)床控制系統(tǒng)要求的數(shù)據(jù),利用CNC的高精度插補(bǔ)運(yùn)算,驅(qū)動機(jī)床部件按照預(yù)定數(shù)據(jù)運(yùn)動,制造出滿足特定功能和外觀的產(chǎn)品,從而實(shí)現(xiàn)構(gòu)型向產(chǎn)品實(shí)物的轉(zhuǎn)變。高端車銑復(fù)合加工中心和多軸加工中心,其后置處理一直是復(fù)雜結(jié)構(gòu)產(chǎn)品數(shù)控化加工實(shí)現(xiàn)的難點(diǎn)。國外主要集中在三大方向開展了大量的研究:一是CAM軟件根據(jù)特定機(jī)床,定制開發(fā)后置處理的“交鑰匙工程”,如TOP SOLID;二是遵照ISO標(biāo)準(zhǔn)輸出APT數(shù)據(jù),運(yùn)用第三方軟件,按特定機(jī)床系統(tǒng)開發(fā)后置處理,如IMPOST;三是在開放的基本架構(gòu)下,結(jié)合機(jī)床系統(tǒng)進(jìn)行二次開發(fā),如UG[1]。目前UG后置處理方面,國內(nèi)的數(shù)控研究人員做了許多探索,主要集中在進(jìn)退刀過程、切削開始、刀具參數(shù)等的注釋、程序頭尾的輸出格式和順序,而致力于車銑鉆鏜等多模塊的后置處理方面較少。本文主要探索XZC類車銑復(fù)合機(jī)床(見圖1)在車削、銑削和鉆削加工數(shù)控編程時,如何開發(fā)出后處理時能夠根據(jù)加工類型自動識別并進(jìn)行數(shù)據(jù)轉(zhuǎn)換,盡可能實(shí)現(xiàn)覆蓋機(jī)床全部功能的集中集成輸出的后處理文件。
a) 機(jī)床
本文以哈挺XZC類車削中心機(jī)床為例,主要通過NX/Post建立和機(jī)床控制系統(tǒng)相關(guān)的事件處理文件和事件定義文件,利用Post Builder修改事件處理文件(.tcl)和事件定義文件(.pui),完成機(jī)床后處理,輸出符合機(jī)床控制系統(tǒng)要求的NC代碼(見圖2)。
圖2 利用Post Builder定制后處理流程
根據(jù)UG CAM模塊與Post Builder的關(guān)聯(lián)特性,可通過系統(tǒng)接口變量$mom_template_type識別平面銑、型腔銑、多軸銑、鉆削和車削操作,并在后置處理中利用$mom_kin_machine_type變量重新定義機(jī)床類型,實(shí)現(xiàn)XZC類機(jī)床后置。在XZC類機(jī)床UG后置處理構(gòu)建過程,涉及大量后置處理變量,諸如機(jī)床變量、系統(tǒng)變量、事件變量(包括用戶定義事件UDE)、屬性變量、位置變量、輸出控制變量、固定循環(huán)變量、旋轉(zhuǎn)進(jìn)給變量、時間統(tǒng)計(jì)變量、軸矢量變量等,均可查閱張磊[2]在UG NX6后處理技術(shù)培訓(xùn)教程相關(guān)章節(jié)的有關(guān)論述?;赨G NX6.0版本的XZC類機(jī)床后處理架構(gòu)如圖3所示。
圖3 XZC類機(jī)床UG后置處理框架圖
后處理系統(tǒng)是聯(lián)系CAD/CAM軟件和數(shù)控機(jī)床的重要紐帶,直接影響到數(shù)控機(jī)床加工效果和設(shè)備利用率。后處理最重要的任務(wù)是將CAM軟件生成的刀位軌跡轉(zhuǎn)化為適合特定數(shù)控系統(tǒng)、特定結(jié)構(gòu)機(jī)床及工作空間的加工程序。后置處理主要任務(wù)包含機(jī)床運(yùn)動學(xué)變換、運(yùn)動學(xué)誤差校驗(yàn)、數(shù)控程序格式變換、程序輸出等內(nèi)容。只有采用正確的后置處理才能將刀位軌跡文件轉(zhuǎn)化為適合特定數(shù)控機(jī)床的數(shù)控程序。
為實(shí)現(xiàn)哈挺XZC類車削中心C軸分度或XZC聯(lián)動的動力刀頭銑削加工,依據(jù)哈挺機(jī)床說明書和UG的刀軸定義,按照動力頭的順序控制要求,定制機(jī)床動力頭安裝運(yùn)行的M碼以及C軸的鎖緊條件和輸出M碼。在初始化運(yùn)動前,設(shè)置相關(guān)代碼,保證笛卡爾坐標(biāo)下屏蔽Y軸輸出符合要求的NC代碼;極坐標(biāo)插補(bǔ)實(shí)現(xiàn)C軸輸出功能;刀軸沿徑向、軸向安裝時,刀具正轉(zhuǎn)、反轉(zhuǎn)的冷卻液啟動與關(guān)閉;卡盤鎖緊、松弛相關(guān)功能設(shè)置等。
if {![string match "*POLAR*" $mom_machine_method]} {
MOM_disable_address Y 笛卡爾坐標(biāo)輸出時屏蔽Y軸
if {$mom_motion_type != "CYCLE"} {
MOM_disable_address R 在鉆孔操作時輸出安全平面
}
} else {
setmom_sys_leader(Y) "C" 極坐標(biāo)插補(bǔ)時C坐標(biāo)輸出
}
if {![string match "*turn*" $mom_template_type]} { 針對銑削操作的環(huán)境
MOM_output_literal "M23" 取消卡盤鎖緊
MOM_output_literal "G0 C0." XZC類加工C軸回零
setmom_spindle_number 3 根據(jù)機(jī)床定義設(shè)定動力頭為3
if {[EQ_is_equal $mom_tool_axis(2) 1.0]} { 動力頭刀軸沿軸向安裝
if {[string match "*CCW*" $mom_spindle_direction]} { 刀具反轉(zhuǎn)
if { $mom_coolant_status != "ON" } { 不加冷卻液
setmom_install_staus 51 刀軸沿軸向安裝,反轉(zhuǎn)、不加冷卻液——M51
} else {
setmom_install_staus 53 刀軸沿軸向安裝,反轉(zhuǎn)、加冷卻液——M53
}
} else {省略部分代碼 } else {
MOM_disable_address fourth_axis fifth_axis 對車削屏蔽旋轉(zhuǎn)軸
}
為滿足XZC類機(jī)床車銑和車削后置的需要,根據(jù)UG模塊的功能$mom_template_type和刀軸定義,強(qiáng)制定義軸向安裝動力頭為XZC車銑(徑向可通過UDE用戶自定義),其余動力銑削為極坐標(biāo)插補(bǔ)銑模式,車削由模塊選用激活。此部分設(shè)置直接關(guān)系到后處理的NC代碼是否與車削、銑削模塊具有對應(yīng)性,如在車削時能自動識別,且正確輸出NC代碼。
if {[string match "*multi*" $mom_template_type]} { 多軸加工
if {[info existsmom_machine_method]} {
if {[string match "MILL_TURN" $mom_machine_method]} {
setmom_machine_method "MILL_TURN" 用戶事件UDE中激活車銑模式
}
} else {
setmom_machine_method "MILL" 默認(rèn)為極坐標(biāo)插補(bǔ)銑削模式
}
} else {
if {[string match "*pl*" $mom_template_type] || [string match "*cont*" $mom_template_type]} {
if {[EQ_is_equal $mom_tool_axis(2) 1.0]} { 定軸加工時,刀軸平行于軸向時
setmom_machine_method "MILL_TURN" 默認(rèn)為車銑模式
} elseif {[info existsmom_machine_method]} {
if {[string match "MILL_TURN" $mom_machine_method]} {
setmom_machine_method "MILL_TURN" 用戶事件UDE中激活車銑模式
}
} else {
setmom_machine_method "MILL" 默認(rèn)為極坐標(biāo)插補(bǔ)銑削模式
}
}
if {[string match "*drill*" $mom_template_type]} {
setmom_machine_method "MILL_TURN" 鉆削時默認(rèn)為車銑模式
}
}
if {[string match "*turn*" $mom_template_type]} { 車削操作時
setmom_kin_dependent_head "NONE"
setmom_kin_independent_head "NONE"
setmom_kin_arc_output_mode "FULL_CIRCLE" 允許圓弧運(yùn)動
setmom_kin_machine_type "lathe" 設(shè)定機(jī)床類型為車
MOM_reload_kinematics 機(jī)床運(yùn)動機(jī)構(gòu)重新加載
}
XZC類機(jī)床UG后置處理笛卡爾和極坐標(biāo)輸出控制圖如圖4所示。
圖4 XZC類機(jī)床UG后置處理笛卡爾和極坐標(biāo)輸出控制圖
依據(jù)UG操作模塊和刀軸矢量關(guān)系,定義系統(tǒng)軸的矢量,實(shí)現(xiàn)動力頭加工的零點(diǎn)位置。
if {[string match "*drill*" $mom_template_type]} { 鉆削操作時
if {[EQ_is_equal $mom_tool_axis_type 1]} { 刀軸類型為指定矢量時
setmom_sys_spindle_axis(0) 0.0
setmom_sys_spindle_axis(1) 0.0
setmom_sys_spindle_axis(2) 1.0 設(shè)定軸向?yàn)橄到y(tǒng)軸適量為1
if {[EQ_is_equal $mom_tool_axis(2) 0.0]} { 刀軸矢量為軸向時
setmom_sys_spindle_axis(0) 1.0 設(shè)定徑向?yàn)橄到y(tǒng)軸適量為1
setmom_sys_spindle_axis(1) 0.0
setmom_sys_spindle_axis(2) 0.0
}
}
if {[EQ_is_equal $mom_tool_axis_as_arc_axis 1.0] || [EQ_is_equal $mom_tool_axis_type 2} { 使用圓弧軸鉆削加工時
setmom_sys_spindle_axis(0) 1.0 設(shè)定徑向?yàn)橄到y(tǒng)軸適量為1
setmom_sys_spindle_axis(1) 0.0
setmom_sys_spindle_axis(2) 0.0
}
} else {銑削操作時
if {[EQ_is_equal $mom_tool_axis(2) 1.0]} {
setmom_sys_spindle_axis(0) 0.0
setmom_sys_spindle_axis(1) 0.0
setmom_sys_spindle_axis(2) 1.0 設(shè)定軸向?yàn)橄到y(tǒng)軸適量為1
} else {
setmom_sys_spindle_axis(0) 1.0 設(shè)定徑向?yàn)橄到y(tǒng)軸適量為1
setmom_sys_spindle_axis(1) 0.0
setmom_sys_spindle_axis(2) 0.0
}
}
針對機(jī)床徑向和軸向鉆鏜固定循環(huán)功能相同、G代碼不同的情況,根據(jù)機(jī)床固定循環(huán)定義,按照下列要求進(jìn)行控制,可實(shí)現(xiàn)諸如刀尖半徑補(bǔ)償、G74自動鉆孔、G90固定切削、G76自動螺紋切削循環(huán)等特征編程。XZC類機(jī)床固定循環(huán)UG后置處理改進(jìn)圖如圖5所示。
圖5 XZC類機(jī)床固定循環(huán)UG后置處理改進(jìn)圖
為驗(yàn)證搭建的后處理生成的NC代碼符合XZC類機(jī)床車削復(fù)合功能需求,采用45A工藝試件進(jìn)行功能驗(yàn)證,零件結(jié)構(gòu)如圖6所示,在總長50 mm的φ25 mm圓柱一端銑16 mm×16 mm×30 mm的長方體,周向加工6—φ6 mm的孔,軸向正中心鉆1個φ6 mm的孔,與距端面12.5 mm的徑向孔φ12 mm相貫穿。加工刀具分別選用φ12合金立銑刀平面銑加工平面和輪廓,φ6的合金鉆頭加工孔[3-5]。
a) 試件尺寸圖
XZC類機(jī)床不存在Y軸,加工軌跡是在ZX平面內(nèi)的曲線(Y軸方向無相對移動)。在銑削或車銑加工前,先啟動C軸,調(diào)用動力頭指令[6-8]。下述為銑削軸向四方16×16程序段:
%
;(XLK.TXT,EMD12,MINZ=20.000)
M0;(TD=12.0 TOOL DIAMETER)
N010;(G0 B-90.) %提示動力頭安裝位置
N0020 G40 G17 G90 G21
N0030 M98 P1 %調(diào)用安全位置子程序
N0040 T10
N0050 M23 %啟動C軸功能
N0060 G0 C0
N0070 M52 P3 %調(diào)用動力頭
N0080 M201 %液壓卡盤松開夾持
N0090 G90 G54 G0 C-90.
N0100 X40. Z105.
N0110 S3000 M3
N0120 Z52.
…
N1420 M5 %關(guān)閉動力頭旋轉(zhuǎn)
N1430 M9 %關(guān)閉冷卻液
N1440 M24%取消C軸功能
N1450 M201
N1460 G90 G53 G0 Z500.
N1470 M2
%
Vericut7.0.3端面、徑向銑削加工驗(yàn)證如圖7所示。
a) 端面
通過Vericut7.0.3虛擬仿真及試件切削驗(yàn)證可知:根據(jù)UG構(gòu)建的后置處理能滿足車、銑、鉆削功能,能自動生成符合機(jī)床NC格式的系統(tǒng)通用操作指令,且切削仿真與編程軌跡一致,無殘留、過切現(xiàn)象,后置數(shù)據(jù)符合產(chǎn)品設(shè)計(jì)公差[9]。利用Post Builder修改事件處理文件和事件定義文件搭建后處理的方法,可高效開發(fā)XZC類機(jī)床的車削復(fù)合功能,工件在車削中心上一次裝夾后,按不同工序,自動選擇、更換刀具,自動改變機(jī)床主軸轉(zhuǎn)速、進(jìn)給量和刀具相對工件的運(yùn)動軌跡及其他輔助機(jī)能,能依次完成工件幾個面上多工序的三軸聯(lián)動銑削加工,突破車削、鉆削或極坐標(biāo)加工的單一功能局限,可減少工件的裝夾、測量和機(jī)床調(diào)整等時間,使車削中心的切削時間達(dá)到機(jī)床開動時間的80%左右(普通機(jī)床僅為15%~20%);同時也減少了工序之間的工件周轉(zhuǎn)、搬運(yùn)和存放時間,縮短了生產(chǎn)周期,經(jīng)濟(jì)效果明顯。
結(jié)合機(jī)床說明書,應(yīng)用UG軟件Post Builder開發(fā)了XZC類機(jī)床后置處理,能夠快捷實(shí)現(xiàn)UG自動編程中車、銑、孔等操作的程序后處理,文中對后處理創(chuàng)建從初始化運(yùn)動、運(yùn)動前設(shè)置、機(jī)床運(yùn)動前、車銑、固定循環(huán)G代碼實(shí)現(xiàn)方面進(jìn)行了系統(tǒng)講解,并對構(gòu)建的后處理生成NC代碼,采用Vericut仿真及切削驗(yàn)證,證明了車銑復(fù)合加工具有可靠性、高效高精度等特點(diǎn)[10]。文中的快速搭建XZC后處理構(gòu)建方法和思路對獨(dú)立完成任意復(fù)雜機(jī)床后處理的工程人員有較強(qiáng)的啟迪與幫助。