劉鏑時
(上海電機學院, 上海201306)
后處理技術將計算機自動編程生成的刀具軌跡文件轉換為數控機床控制器可接受的刀具路徑,并控制指揮刀具的移動或其他行為,因為不同類型的數控機床結構不同,控制系統不同,不同的數控系統的指令格式是不一樣的,所以不同的數控機床和系統要有相應的后置處理文件。
車床工件使用手工編程,利用數控系統自帶的復合型固定循環功能,可以提高編程效率。但手工編程畢竟效率較低,且容易出錯。
使用計算機軟件編程,效率高,不容易出錯,但采用軟件自帶后置處理文件生成的程序,往往和數控機床不匹配,有些地方需要手工修改才能在機床上運行。如果能設計合理的后置處理文件,則效果更好。
本文通過Siemens NX11 CAM軟件和Fanuc 0i數控系統車床,以圖1工件為例,就數控編程和后置處理進行討論研究。
在Siemens NX11軟件中,新建裝配文件,裝入圖1工件,為方便CAM中設置,要注意裝配的方向,將工件回轉軸和NX11 CAD的WCS坐標系的X軸共線。
進入加工模塊,創建55°外圓車刀,刀具號指定為1,指定部件,指定毛坯,在創建幾何體對話框中,選擇避讓并確定,在避讓對話框中,制定出發點和回零點,如圖2所示。

創建工序,選擇外徑粗車,選擇已創建的刀具和避讓,確定后在外徑粗車對話框中,設置相應的參數,生成后在對話框中單擊確定,產生的刀具軌跡如圖3所示。


在工序導航器中右擊外圓粗車加工工序,單擊后處理,在后處理對話框中選擇NX自帶的“LATHE_2_AXIS_TOOL_TIP”后處理器,注意將單位設置成公制,如圖4所示。確定后輸出數控代碼如下:
%
N0010 G94 G90 G20
N0020 G50 X0.0 Z0.0
:0030 T01 H00 M06
N0040 G97 S1140 M03
N0050 G94 G00 X16.75 Z3.4
N0060 G92 S3000
N0070 G96 S120 M03
N0080 G95 G01 Z3.F.27
N0090 Z-18.F.18
N0100 X18.7657 F.3
N0110 X20.Z-19.2343
N0120 G94 G00 X20.2828 Z-18.9515
N0130 Z3.4
N0140 X13.5
N0150 G95 G01 Z3.F.27
N0160 Z-18.F.2827
N0170 X16.75
N0180 G94 G00 X17.0328 Z-17.7172
N0190 Z3.4
N0200 X10.25
N0210 G95 G01 Z3.F.2147
N0220 Z-18.
N0230 X13.5
N0240 G94 G00 X13.7828 Z-17.7172
N0250 Z3.4
N0260 X7.
N0270 G95 G01 Z3.F.1466
N0280 Z-15.4
N0290 G02 X9.6 Z-18.I2.6 K0.0
N0300 G01 X10.25 F.2011
N0310 G94 G00 X10.5328 Z-17.7172
N0320 Z.2828
N0330 X4.1138
N0340 G95 G01 X3.8309 Z0.0 F.1333
N0350 X6.4105 Z-4.4679
N0360 G03 X7.Z-6.6679 I-3.8105 K-2.2 F.1343
N0370 G94 G00 X7.2828 Z-6.3851
N0380 X26.
N0390 Z8.
N0400 M02
%
我們注意到使用NX自帶后處理器生成的數控代碼,并不能直接在Fanuc 0i數控車床上使用,需要對代碼進行手工修改。并且生成的程序只使用了數控通用格式,沒有利用Fanuc 0i數控系統提供的車循環功能,導致程序較長,不利于閱讀和修改。
如果要NX11 CAM輸出固定循環,在編程時需要進行設置。以Fanuc 0i數控系統G71外輪廓粗車循環為例,首先在CAM中創建外徑粗車工序,工序名稱“ROUGH_TURN_OD”,打開外徑粗車對話框,在機床控制項中,將運動輸出改為“機床加工周期”,將子程序名稱改成和工序名稱不相同的名稱,這里改為“1_ROUGH”,如圖5所示,生成后保存部件。


其次,要新建后處理文件。
打開后處理構造器,新建文件,后處理輸出單位設置為毫米,機床設定為車,控制器設定為庫,并從庫中選擇Fanuc,如圖6所示,保存后處理文件,這里文件名為“new_post”,生成3個后處理文件,分別是“new_post.pui”、“new_post.pui.tcl”、“new_post.def”。
第三,回到NXCAM中,選中剛才的粗車工序,單擊后處理指令,在對話框中單擊“瀏覽以后查找后處理器”,找到剛才保存的后處理文件“new_post”,確定后輸出數控代碼如下:
%
N0010 G94 G90 G21
N0020 (ROUGH_TURN_OD)
N0030 G50 X0.0 Z0.0
N0040 T01 H00 M06
N0050 G92 S3000
N0060 G96 S120 M03
N0070 G71 U4.R1.(ROUGH TURN CYCLE)
N0080 G71 P0090 Q0100 U0.0 W0.0 F.3 S120
N0090 (CONTOUR TURN START)
G01 X3.946 Z-.2
X6.411 Z-4.468
G03 X7.Z-6.668 I-3.811 K-2.2
G01 Z-15.4
G02 X9.6 Z-18.I2.6 K0.0
G01 X18.766
X19.883 Z-19.117
N0100 (CONTOUR TURN END)
N0110 G94 G00 X26.Z-6.385
N0120 Z8.
N0130 M02
%

和之前相比,使用了G71功能,生成的數控代碼已相對簡潔,但有些地方還需要手工修改,若輸出不需要手工修改的程序,需要對后處理文件進一步定制。
接下來針對Fanuc 0i數控系統車床,設計定制后處理文件。
第一行數控代碼中“G94、G90、G21”這幾種功能的參數一般為數控機床默認設置,不需要在數控代碼中輸出,可適用更多的數控系統。在后處理構造器中,將“G94、G90、G21”這塊直接拖入垃圾桶,另外將程序運動指令中G94和G速度指令刪除,如圖7、8所示。


如果不習慣G50設定工件坐標系的方式,可輸出G54-G59坐標系,將“G50 X Z”這塊拖入垃圾桶,添加新塊,在新塊中添加“G-MCS Fixture Offset”文字塊,如圖 9所示,在NXCAM中,坐標系的裝夾偏置設定為1,輸出的G代碼為G54,裝夾偏置設定為2時,輸出G55,以此類推。如果不輸出設定坐標系的指令,通常機床默認為G54坐標系。

更改換刀指令,單擊“T H01M06”塊,將H01和M06拖入垃圾桶,如圖 10所示。

輸出的刀具代碼為兩位數的T01,如果要更改成1號刀1號刀補T0101,2號刀2號刀補T0202這種四位數的刀號和刀補方式,可以這樣設置:右擊T文字塊,更改單元為“T-用戶定義表達式”,再編輯,改為4位數,最大值改為9999,將表達式“$mom_tool_number”改為“$mom_tool_number*100+ $mom_tool_number”。如圖11、12所示。


Fanuc 0i車削加工中有兩種粗車加工循環,類型I和類型II。上述輸出的含G71這種格式的在類型I的數控車床上不能運行,會報警。類型I要求G71下第一個程序段必須是只含X軸的運動指令,這就需要更改后處理文件。
首先去除(CONTOUR TURN END)注釋語句。
打開后處理“new_post.tcl”文件,搜尋“proc PB_CMD_turn_cycle_contour_start”命令塊,在“lappend dpp_contour_list $o_buffer”前加上注釋標記“#”,可去除(CONTOUR TURN START)注釋。再搜尋“proc PB_CMD_turn_cycle_contour_end”命令塊,在“lappend dpp_contour_list $o_buffer”前加上注釋標記“#”,可去除(CONTOUR TURN END)注釋。修改后保存文件。修改部分程序如下:
#=============================================================
procPB_CMD_turn_cycle_contour_start { } {
#=============================================================
# This command is to detect the rough turning cycle type, calculate the cycle parameters
# and create a list to store the contourdatas and start tag and end tag.
#
……
# Store the start tag
seto_buffer [MOM_do_template turn_cycle_start_tag CREATE]
#lappend dpp_contour_list $o_buffer
}
#=============================================================
procPB_CMD_turn_cycle_contour_end { } {
#=============================================================
# This command is to output the contour data and adjust the sequence number.
#
# 05-30-2013levi - Initial version
……
# Store the end tag in the list
seto_buffer [MOM_do_template turn_cycle_end_tag CREATE]
# lappend dpp_contour_list $o_buffer
接下來把G71下面第一個運動語句的X和Z坐標代碼分成兩行輸出。
在后處理“new_post.tcl”文件中,搜尋“proc PB_CMD_turn_cycle_contour_end”命令塊,利用if語句找到G71下第一個語句,用string first定位含Z坐標的位置,string rang輸出不含Z指令的數控代碼,換行后輸出只含Z坐標的代碼,程序流程圖如圖13所示。更改部分程序如下:
……
# Output the contour NC codes
if {$mom_sys_cycle_seq_num_on==0} {
for {set i 0} {$i<$dpp_contour_list_length} {incr i} {
if {$i==0 || $i==$dpp_contour_list_length-1} {
MOM_set_seq_on
}
if {$i==0} {
set line [lindex $dpp_contour_list $i]
setmy_number [string first Z $line]
setX_line [string rang $line 0 [expr $my_number-1]]
setZ_line [string rang $line $my_number end ]
MOM_output_literal $X_line
MOM_set_seq_off
MOM_output_literal $Z_line
} else {
set line [lindex $dpp_contour_list $i]
MOM_output_literal $line
}
}
} else {
foreach line $dpp_contour_list {
MOM_output_literal $line
}
}
# Restoreoutputing sequence number
……

保存后處理文件后,在NXCAM中輸出數控代碼如下:
%
N0010 G54
N0020 (ROUGH_TURN_OD)
N0030 T0101
N0040 G92 S3000
N0050 G96 S120 M03
N0060 G71 U4.R1.(ROUGH TURN CYCLE)
N0070 G71 P0080 Q0090 U0.0 W0.0 F.3 S120
N0080 G01 X3.946
Z-.2
X6.411 Z-4.468
G03 X7.Z-6.668 I-3.811 K-2.2
G01 Z-15.4
G02 X9.6 Z-18.I2.6 K0.0
G01 X18.766
N0090 X19.883 Z-19.117
N0100 G00 G90 X26.Z-6.385
N0110 Z8.
N0120 M02
%
NXCAM刀路設計規劃完成后,利用NXCAM自帶的車床后處理文件生成的數控代碼,在Fanuc 0i數控系統車床上不能直接使用,需要手工修改數控代碼,效率較低,并且容易出錯。
針對Fanuc 0i數控系統的G71車削循環格式,通過定制設計后處理文件,使得輸出的數控代碼不需要手工修改,直接在數控車床上運行,保證數控代碼的準確性,提高了編程的效率。
[1]李粉霞.基于UG的車銑復合數控機床變軸車削后處理開發[J].制造技術與機床,2016(1):144-147.
[2]王曉軍,任衍濤,王金磊.UGNX軟件的FANUC系統車銑復合加工后處理器研制[J].機械科學與技術,2016,35(4):580-583.
[3]夏愛宏,戈迎喜.基于NX 的復合機床后處理器開發與應用[J].機械設計與制造,2010(8):69-70.
[4]秦錄芳,孫濤,時四強,等.基于UG的整體葉輪數控加工仿真研究[J].組合機床與自動化加工技術,2015(11):98-102.
[5]張磊.UG NX6 后處理技術培訓教程[M].北京:清華大學出版社,2009.
[6]JohnK.Ousterhout, Ken Jones.Tcl/Tk入門經典[M].2版.北京:清華大學出版社,2010.
[7]李立軍,孫偉.基于UGNX6.0的海德漢雙轉臺五軸后處理研究[J].機床與液壓,2014,42(10):122-125.
[8]魯淑葉.UGNX8.0華中數控車床后處理器研究[J].現代制造工程,2016(10):51-54.
[9]高淼,范有雄,焦紅衛.基于UG.CAM的軸類零件車削加工的研究與應用[J].機械工程師,2014(10):140-143.
[10]郭世帥.基于UGNX的DTM數控車后處理程序的開發應用[J].湖北工業大學學報,2015(4):108-111.
[11]張煒.基于UG的后處理編程研究[J].機械工程師,2015(8):45-47.
[12]張明艷,劉艷勤.基于UG的軸類零件數控編程技術研究與應用[J].自動化與儀器儀表,2015(12):73-74.
[13]何晶昌,申龍,程虎,等.基于UG自動編程的數控車削加工[J].機械制造與自動化,2010,39(4):43-46.
[14]孫麗麗.G71指令在數控車削加工中的應用[J].天津科技,2015,42(2):46-47.
[15]宋飛,俞香平.G71指令在陀螺加工中的應用[J].福建質量管理,2015(12):197.