陳德存
(溫州職業技術學院機械工程系,浙江溫州 325035)
UG后處理操作是UGCAM數控加工工作中一個重要環節,主要任務是把在UG加工環境下生成的加工刀位文件轉換成機床可接受的數控代碼文件。UG本身提供了強大的Post Builder后處理構建器,但是從實踐使用來看,普遍存在后處理過程緩慢,后處理不能夠智能,調整不靈活等弊端。這主要是因為,對應不同的加工方式,所要求的刀位文件格式不一樣,這就要求編程者,針對每一個操作根據不同的加工方式,選擇不同的后處理模板,操作非常繁瑣,容易出錯。很多使用UG軟件做數控編程的企業,或多或少的都存在這樣的問題。另外,在構建后處理工具時,后處理構建者大多只考慮后處理的刀位文件格式能否被機床認可,而很少有人考慮融入業務邏輯的智能處理和智能檢查功能,后處理工序的智能化還沒有受到普遍的重視。
在UG加工環境下編制好的加工程序,可以整組輸出為CLS文件。充分分析CLS文件,我們可以利用這個文件的特點來開發附帶業務規則的后處理工具。為了更好地進行介紹,首先準備好一個CLS文件,并分析其特點:選中一組編制好的加工操作,這組加工程序包含兩個加工操作,P50-A和P30-B。它們的刀軌分別如圖1和圖2。
CLS文件已經準備妥當,現在開始詳細介紹。


下面是UG后置出來的一段CLS文件:

第1行RAPID代表快速進給,它將影響下一行的走刀方式。第2行GOTO語句,后面跟的是點的坐標,前三位為X,Y,Z坐標,后三位為刀軸的方向矢量,由于上一行有RAPID指令,所以這一句處理成NC代碼就應該為G00 X-13.0000 Y5.7446 Z3.0000,如果是五軸設備,則應該處理成G00 X-13.0000 Y5.7446 Z3.0000 A0.000 B0.000或G00 X-13.0000 Y5.7446 Z3.0000 A0.000 C0.000等。第3行是著色語句,只對UG自身起作用,不用也不能轉化為NC。第4行為FEDRAT/MMPM,250.000,這一行是給定進給速度。第6行CIRCLE開頭,表明即將走一段圓弧,前三位-17.0000,0.0000,0.0000 是圓心坐標,接下來三位0.0000000,0.0000000,-1.0000000 表明圓弧的矢量方向,可以決定圓弧所在的平面和圓弧走刀的方向,后面的幾位數字是刀具信息和精度等相關信息,我們在這里可以忽略。
利用操作名稱可以幫助定義后處理的過程。以圖1、圖2兩個操作的操作名稱分別以“A”和“B”作為后綴。我們可以在CLS文件中提出每一個操作名稱的后綴,然后根據后綴的不同,安排不同的后處理格式。比如,我們約定“A”代表著直頭仿形銑操作,后處理格式要求如下:X300.000 Y180.000 Z250.000;而“B”代表平面輪廓操作,后處理格式要求如下:X300.000 Y180.000。下面我們就可以根據操作名稱后綴的不同,來讓后處理自動判斷輸出為對應的格式。
首先打開CLS文件,然后通過循環讀取CLS文件的每一行。通過關鍵字篩選獲得操作名的字符串,并根據操作名后綴來決定后處理格式。
基本代碼如下:


代碼調試環境:在WinXP操作系統上,使用VC++調試工具完成,也可用C語言環境完成。調試運行這個程序前,請首先保證在目錄C:Lizi下面已經存放了UG剛剛導出的Lizi.CLS文件。并在C:目錄下創建名為“NC”的文件夾。調試運行程序結果如圖3。

后處理的NC文件存放在C:Lizi下,其格式如圖4所示。

上面的介紹,只是利用操作名的一個簡單的方法,利用操作名我們還可以加入更多的業務規則。如果深入一步,還可以增加輸出數控加工程序單等功能。
一般在定義刀具名稱的時候我們都會附加一定的含義。比如比較復雜的刀具命名“T15_D6_CR2_0.1_S8000”表示直徑6 mm,刀具圓角半徑2 mm,留量0.1 mm,主軸轉速8 000 mm;簡單的刀具命名有“BALL_50”表示直徑為50 mm的球刀,“MILL_20”表示直徑20 mm的端銑刀等。但是在創建刀具時,往往會出現編程人員疏忽導致的刀具名稱和刀具參數不對應的情況發生。這是很危險的。因為這會造成編程員主觀選擇了認為正確的刀具,而實際卻使用錯誤參數的刀具進行編程,這種錯誤一般不易察覺,可能會造成被加工工件報廢的情況發生,后果比較嚴重。現在應用UG做數控編程普遍采用編程模板,模板里包含了參數正確的刀庫,可以有效避免這樣的情況發生。還沒有使用模板的編程者,應當考慮在后處理中增加自動檢查環節。將刀具名稱與刀具參數進行對比。如果不一致,中斷后處理,并提示錯誤信息。這樣可以徹底屏蔽刀具名稱和刀具參數不一致的情況發生,明顯提升數控加工程序的可靠性。具體方法是:在CLS文件里分別抽取刀具名稱和刀具參數。進行對比。如不一致中斷后處理工作,并報錯。報錯界面如圖5。
基本代碼如下:

在上面的例子中,我們只檢查了一個刀具參數。如果刀具命名十分講究的話,還可檢查其他參數。甚至結合操作名,檢查操作是否使用了合適的刀具等等。

對于一個復雜的待加工工件。可能需要編制30°頭、90°頭、五軸加工程序。一般在UGCAM環境下編制一個非直頭程序,需要指定刀軸矢量,如果不小心指定錯誤(例如30°指定成了35°)往往不易被發現。那么我們可以在后處理時,利用主軸軸向參數檢查刀軸矢量(主軸軸向)是否正確,從而保證加工程序刀軸矢量的正確性。具體方法是:在CLS文件里抽取主軸軸向參數。如軸向參數不正確,中斷后處理工作并報錯。以3 0°頭為例,主軸軸向參數的K值一定等于0.866 025 4,如圖 6。

如果在處理30°頭程序的時候,其軸向參數如果不等于0.866 025 4,那么就報錯(圖7)。


在上面的例子中,我們只檢查了30°頭的刀軸矢量。稍作變化我們就可以檢查直頭、90°頭的刀軸矢量。結合操作名,我們可以進行對應檢查。例如我們約定以數字“3”為后綴的操作名表示30°頭操作,那么可以在后處理操作名后綴為“3”的操作時進行刀軸矢量檢查,如果K值不等于0.866 025 4就報錯。(直頭K=1.000 000 0;90°頭K=0.000 000 0)。如果深入利用主軸軸向參數,我們還可通過I、J、K值來得到五軸加工操作的A、C值或B、C值等,并將它們輸出到NC文件和加工程序單中,這里由于篇幅關系就不詳述了。
充分利用UG CLS文件中的信息,多重組和這些信息,再結合實際的業務要求,我們可以實現加工操作打包,自動換刀,智能判斷后處理格式,加工余量(留量)檢查,組合對應檢查,計算加工時間,多功能程序單,G00代碼設置等等功能。智能后處理工具,不但明顯簡化了后處理工作的復雜性,提升了后處理的效率,還對加工操作又增加了一道智能檢查環節,全面提升了加工程序的可靠性,使絕大部分的編程錯誤在后處理過程中都予以避免,可以為企業減少非常可觀加工損失。
[1]安杰,鄒昱章.UG后處理技術[M].北京:清華大學出版社,2003.
[2]譚浩強.C 程序設計[M].北京:清華大學出版社,1991.