袁士平
(北京航空制造工程研究所,北京100024)
五軸聯動加工中心能高效率、高質量地完成復雜工件的五面加工,在飛機主機、發動機、模具等行業得到了廣泛的應用。要實現五軸加工,首先要規劃刀具軌跡,使刀具的運動軌跡光滑連續無干涉,一般靠自動編程軟件實現。自動編程軟件輸出刀位源文件(cutter location source file,簡稱CLSF),刀位源文件描述了編程坐標系下的刀具位置、刀軸矢量、刀具轉速、進給速度等信息。但刀位源文件是APT 格式的文本文件,機床的數控系統無法識別。后置處理的任務就是把刀位源文件中的刀具路徑信息轉換為機床可識別的數控加工程序(G 代碼文件)。因為五坐標機床結構形式多樣,控制指令各不相同,坐標求解過程復雜,所以后置處理是實現五坐標加工的關鍵技術之一。

筆者公司現有的五軸加工中心如圖1 所示,該機床采用了臥式的正交布局,機床平移坐標X、Y、Z向行程約1.5 m,刀具主軸繞X軸擺動(定義為A軸),范圍+30°~-90°,轉臺繞Y軸轉動定義為B軸,角度范圍-9999°~+9999°。該機床的數控系統為NUM760,能實現五軸聯動,但不帶RTCP 功能,編程坐標系與機床坐標系的轉換關系復雜,是制約其加工能力的主要問題。
工作流程如圖2 所示。后置處理程序首先顯示界面,等待用戶輸入需要處理的刀位文件、DAT2 值、刀長;然后依次讀入刀位文件的每一行,將相關數據填充到內存數據結構中;求解機床坐標值,將結果寫入內存數據結構;根據機床坐標值和數控程序的格式構造G代碼并寫入NC 程序文件。下面分別介紹各個功能模塊的原理。

應用程序界面模塊的作用是顯示用戶界面,等待用戶輸入DAT2、刀長、轉心距等信息。本例用Visual Studio 創建標準的Windows界面如圖3。
該模塊負責讀取、解析刀位文件,并將刀位文件中的數據填充到結構化的內存數據結構中。該模塊依次讀取刀位文件中的一行,根據該行的首詞用switch -case 語句分別處理該行的信息。

(1 ) 首 詞 為FORM、 GOTO、 GOHOME:代表該行為直線位移。該行的參數有兩種情況:GOTO/x、y、z、i、j、k或GOTO/x、y、z。x、y、z為刀尖點的坐標值,需要用double. Parse(string)命令解析該坐標值。i、j、k為刀軸矢量,如果該參數為空,表明該刀具位置的刀軸矢量未發生變化,i、j、k保持上一個值。
(2)首詞為CIRCLE:代表此軌跡為圓弧。其格式為CIRCLE/x、y、z、i、j、k、r、t、f、d、e、[TIMES,n]。首先保存圓弧起點坐標、圓心坐標、插補軸矢量、進給速度,再讀取下一行,取得圓弧的終點坐標。
后置處理的過程中,程序要與大量的數據打交道,數據結構尤其重要。根據數控程序中數據的特點,定義如圖4 的數據結構,并把數據保存在相應的類中。

坐標求解模塊進行坐標變換、進給速度轉換。讀取并處理數據類,將機床坐標值、進給速度值等需要計算的量填充到數據類中。后置處理的關鍵算法是根據機床的結構形式,求解機床坐標值。主要包括轉動、平移坐標的求解兩部分。
機床A、B軸角度與刀軸矢量的關系如圖5 所示,其中刀軸矢量為單位矢量。故有:

A=arcsin(J/1)(A取值范圍:-90°≤A≤90°)
由表1 可計算B坐標取值范圍在±180°內的值:

表1 B 角的計算
計算B 軸的角度時,需要考慮B坐標值的取值范圍。轉臺的角度m與m±360 ×n(n為整數)實際上是同樣的位置。當轉臺運動到±180°附近時,如果程序路徑中要求繼續回轉,B坐標值應超過±180°,否則轉臺大幅回轉,會與工件碰撞。當后置處理系統計算某個點B坐標在±180°范圍內的值B’時,必須與上一個點的值進行比較,轉臺以最短路徑運動。即求出B±360 ×n(-10 <n<10)與上一個B坐標值最接近的值。具體算法為
B= min[Blast-(B’±360 ×n)](n為整數,-10<n<10,B取值范圍-3780 <B<3780,B’為上一個點位的B 坐標值)
工件安裝在轉臺上,轉臺旋轉將導致刀具與工件的相對位置發生變化,一般有2 種方法可補償這種變化。

(1)高檔數控系統一般具有RPCP 功能,即五軸機床工件旋轉中心編程(rotation around part center point)。工作臺旋轉時,機床X、Z坐標能自動跟蹤,刀尖點與工件的相對位置不變。如SIEMENS 系統的TRAORI指令、HEIDENHAIN530I 系統的M128 指令、NUM 系統的G151S0 指令。這種情況下,數控程序中的X、Z坐標值使用刀位文件中的坐標值即可。

表2 刀位文件與NC 代碼
(2)另一種情況下,數控系統不具有RPCP 功能,由后置處理程序來補償轉臺轉動對平移坐標的影響。如圖6 所示,機床處于B=0 位置時,轉臺中心在機床坐標系下的坐標值為DAT1,工件坐標系相對轉臺中心的相對坐標值為DAT2。對某一臺機床來講,DAT1為固定值,DAT2隨工件擺放位置的變化而變化。

如圖7 所示,轉臺中心在工件坐標系XOZ下的坐標為P1(X1,Z1),即(-XDAT2,-ZDAT2)。轉臺轉過角度B時,刀尖點P(X,Y)在轉臺的帶動下運動到P’(X’,Y’)。由計算機圖形學的二維旋轉公式,可得:


當A= -90°,即主軸立式時,X、Z、B軸中只要有任意2 軸運動即可實現XOZ平面內的加工,這時后置處理有多個解,需要優化機床的運動。如圖8所示的機匣類工件,端面上需要鉆孔、鉸孔、插銑、銑邊,如果用XZ軸聯動加工,不僅工件的分度精度不好,而且機床將在Z-向超過行程范圍。所以本后置處理開發了B軸代替X軸運動的功能,加工端面時,X始終為0,靠B軸實現工件的分度。在式(1)中,令X'=0,即可計算出對應的B值。
主軸端面到A軸轉動中心的距離稱為轉心距(pivot)。由于這個距離和刀具長度的存在,A軸轉動將導致平移坐標Y的變化。通常消除這個位移有兩種辦法,一種是數控系統的RTCP 功能,另一種是在后置處理中考慮樞軸中心距。
(1)啟用RTCP 功能后,控制系統會自動計算并保持刀具中心始終在編程的XYZ位置上,轉動坐標的每一個運動都會被XYZ坐標的一個直線位移所補償,數控程序中的刀尖點坐標直接使用刀位文件中的值即可。如圖9a[2]所示。
(2)未啟動RTCP 功能時,控制點在A擺轉動中心上,如圖9b 所示。后置處理過程中,需要把刀位文件中刀尖點的坐標值Y、Z換算成轉動中心的坐標值Y’、Z’,由三角函數可得出計算公式:


式中:TL為刀具長度;PL為轉心距。
具有旋轉軸的自由曲面的加工,進給速度控制一般使用G93,其進給率F為時間倒數,其計算公式為F=V/D(F為進給速率;V為編程的進給速度,mm/min,D為路徑長度,mm),其中(Δx、Δy、Δz為輪廓點間的距離)。
實際計算中:所取的Δx、Δy、Δz為刀位文件中的刀位點間的距離。這種算法在直線運動距離較短,而回轉運動角度較大時,會出現實際進給速度大大高于刀位文件中編程速度的情況。在平移坐標XYZ不動,僅回轉刀具軸變化時,甚至會出現D=0,進給速度F無窮大的極端情形。這種情況下,不僅機床可能報錯,而且加工的表面質量也不好。
為了避免進給速度的這種情況,把轉動角度1°等同于直線進給1 mm 處理,引進到算法中,其算法為:

NC 文件輸出模塊負責根據機床的G 代碼格式,將內存數據結構中的NC 點位信息填充到G 代碼文件中。處理前的刀位文件和處理完的適合NUM760 系統的NC 代碼如表2 所示。
轉臺-擺頭結構五軸聯動加工中心的后置處理程序主要分為界面顯示、刀位文件讀取與解析、坐標求解、G 代碼構造、數控程序文件輸出等模塊。后置處理程序的核心算法一是根據刀具矢量I/J/K計算機床轉動坐標A/B/C,二是將刀尖點的平移坐標X/Y/Z轉換到機床的控制點上,三是將進給速度mm/min 轉換為時間倒數進給率1/min。啟用數控系統的RTCP、RPCP 功能后,具有后置處理算法簡單,改變工件坐標系位置、刀長時不必修改數控程序的特點,將是五軸后置處理程序設計的方向。
[1]NX7 Help Library[Z].
[2]菲迪亞C 級用戶及編程手冊V3MDO1377[Z].