文|德州大陸架石油工程技術有限公司 馬善坤
當今世界,計算機科技與制造技術不斷進步,加工過程中的仿真技術應運而生,并且在機械制造行業中得到了深入的推廣。加工仿真的特點是在計算機屏幕上模擬加工,驗證數控程序的準確性,對加工中的切削過程和刀具狀態進行立體實時的仿真,同時對欠切、過切以及刀具和夾具、刀具和工件之間的碰撞干涉情況實現可視、定量的驗證,能夠形象、直觀且快速地模擬數控加工的全過程,且不需要額外費用,同時能夠達到試切等傳統走刀路徑的驗證效果,極大地提高了數控機床的有效工時和使用壽命[4-5]。對縮短產品的試制周期、提高數控加工效率、降低成本具有十分重要的意義[1-3]。
國內自20世紀90年代初開始對數控加工仿真技術的研究,但至今先進的加工仿真技術仍然為國外制造業軟件巨頭所掌握,國內所開發的仿真系統尚未達到大規模應用的程度,尤其是在復雜零件數控加工方面,在仿真速度、真實性以及刀具路徑規劃等性能上國外一些主流系統差距較大。所以,攻克加工仿真的關鍵技術,深化刀具路徑規劃研究,提高仿真的真實性與仿真速度,是中國掌握具有自主知識產權的、先進實用的仿真加工系統的必經之路。本文研究了數控加工仿真中的幾項關鍵技術,提出了基于Z-MAP建模方法、以走刀軌跡為驅動的工步差異坯料構建方法以及在OpenGL環境下模仿工件材料去除的算法,能夠有效地減少計算機的運算次數,提高仿真速度及質量。
數控銑刀的種類主要有立銑刀、面銑刀、鍵槽銑刀、鼓形銑刀和成形銑刀等。由于刀具的多種分類和規格,因此刀具的幾何形狀也多種多樣,若完全真實描述銑刀三維模型,工作量和難度都非常大;而且仿真過程中復雜的刀具模型在三維環境中的重繪時間也會更長,會影響加工仿真的實時性。因此在滿足仿真要求的前提下,構建更為簡單的刀具模型能夠提高仿真效率和真實性。刀具在進行銑削加工時,本身會高速旋轉,通常此時刀具的切削刃所形成的包絡面為圓柱體,使用圓柱體來代替工作狀態中的銑刀,既能節省刀具重繪時間,也不會影響仿真效果,因此這種方法在銑削仿真的研究中應用最為廣泛。刀具在仿真過程中被認為是剛體,即不用對其做幾何處理。
本文基于工藝信息中的刀具參數采用OpenGL提供的繪制圓柱體的庫函數gluCylinder(quad, base, top, height,slices, stacks)來完成繪制銑刀切削刃部分模型。函數的形參中包括了刀具的直徑、長度等基本信息。
模型邊界表示方法(B-rep法)是目前主流的三維空間模型表示方法之一。在B-rep 模型中,空間點是最基本的模型要素,拓撲出邊、環和面直至完整的三維模型。一個完整的B-rep模型記錄了全部的點、邊、 環和面的幾何信息和拓撲信息,因此三維模型的每個面、面的每一條邊界邊及每一個頂點的信息都可以被直接讀取,這樣就有利于以面、邊為基礎來進行各種幾何操作,如劃分有限元網格、構建三維線框模型、計算數控切削過程的走刀路徑、驗證是否有碰撞干涉,以及顯示具有超強真實感的圖形等,因此B-rep模型表示方法與其他模型表示方法相比,具有很大的優勢[6-7]。B-rep法將其模型按照實體、面、邊、環和頂點描述,在計算機內部按網狀的數據結構進行存儲,如圖1所示。

圖1 B-rep模型拓撲結構
Z-MAP表示法是Yang和Hsu[8]提出的,Z-MAP是一種使用離散模型來表示三維空間實體的方法。該方法的基本思路是將初始的三維模型在XOY平面進行投影,在XOY平面得到一個二維平面,將該平面按照一定精度進行離散,形成均勻分布的許多正方形面片,因此可以認為整個三維實體是由多個以正方形為底面的小長方體的集合所構成。若使用Z-MAP方法構建三維實體來表示工件,則在銑削過程中,銑刀與毛坯相交進行材料去除的過程可以近似表示為離散小長方體的高度連續降低的過程,因此該方法被形象地稱為“割草法”。
但傳統的Z-MAP表示法是將整個三維實體模型進行離散,將整個模型表示為由許多以正方形為底面的小長方體的集合。將整個工件進行離散意味著離散算法的復雜以及計算機的運算量和顯示工作量的增加,仿真速度和效果將會大大下降。
本文提出了基于Z-MAP方法和工序間幾何差異構建工步差異坯料的方法。該建模方法的思路是:零件本體仍然使用B-rep表示方法表示,本道工序將要去除的區域內的材料以離散矢量建模方法表示。
仿真系統通過讀取數控工藝,生成刀具坐標和走刀路線,以簡單的平面銑削為例,得到的刀具坐標和走刀路徑如圖2(a)所示,刀具坐標存儲在CutterPointList鏈表中。基于數控工藝中的起刀點和銑削方向,系統自動在銑削區域內生成致密的虛擬刀具坐標,如圖2(b)所示,虛擬刀具坐標在鏈表中的排列順序與實際刀具坐標完全一致,可以看成是切出量為零,刀具橫向移動極小的刀具坐標鏈,虛擬刀具坐標是工件坯料離散的基礎。然后在虛擬刀具坐標之間插入均布的離散點,插入離散點后效果如圖2(c)所示。坯料上的離散點統一存儲在RoughPointList鏈表中。最后基于離散點的坐標構建底面為正方形的長方體,長方體的高度即為被去除材料的總高度。

圖2 坯料離散點陣的生成

圖3 工步差異坯料構建效果
圖3(a)中所示,在某個工序內如果要銑削一個臺階面,則僅對臺階特征的材料區域進行坯料的構建,工步差異坯料構建效果如圖3(b)所示。
走刀軌跡的仿真即銑刀沿其切削路徑的移動。本文中,走刀路徑由CutterPointList鏈表(刀具坐標鏈表)中的所有銑刀坐標按順序連接形成,走刀路徑仿真的本質就是銑刀在OpenGL三維環境中沿走刀路徑不斷重繪的過程。在進行仿真時,銑刀不但要依次到達刀具坐標鏈表中的刀具坐標,還需要演繹刀具在兩個刀具坐標之間行進的過程,這就需要在兩個刀具坐標之間插入新的更加致密的仿真用的虛擬刀具坐標,以便獲得更好的仿真效果。其方法是首先計算出下一個虛擬刀具坐標,然后拭除原有刀具坐標上的銑刀模型并在新的刀具坐標上構建新的銑刀模型,因此走刀軌跡仿真的關鍵是計算下一個虛擬刀具坐標的坐標和刀具在OpenGL環境中的重繪。
假設第一個軌跡點的坐標是(x1,y1,z1),第二個軌跡點的坐標是(x2,y2,z2),則這兩點之間的長度為:

設數控機床每一次在兩軌跡點連線方向上的微小的移動長度為step,則step在x,y,z三個方向上的分量分別為:

因此下一個刀具坐標的坐標為當前點CutterPoint的坐標加上step在x,y,z三個方向上的分量,然后將一個刀具坐標的坐標賦值給當前刀具坐標CutterPoint,即:

最后當下一個虛擬刀具坐標到達或已經超過CutterPointList鏈表中第二個刀具坐標時,則將第二個刀具坐標賦值給當前刀具坐標CutterPointList。然后以第二個刀具坐標作為下一輪的第一個刀具坐標,繼續進行,直到CutterPointList鏈表中的最后一個點。
為了真實演繹仿真效果,上述對刀位坐標的計算必須在很微小的時間間隔內進行,本文通過SetTimer()函數來進行時間間隔的設定,然后觸發OnTimer()函數中進行刀位坐標的計算。
本文通過ToolDraw()函數來完成刀具在三維環境中的重繪。ToolDraw()函數的形參即為下一個刀具坐標。在此坐標上調用刀具的繪制函數gluCylinder(quad, base, top,height, slices, stacks)即可。
坯料材料去除的過程即是將刀具掃描體與坯料進行求交運算并對坯料更新的過程。刀具由一個刀具坐標移至另一個刀具坐標時,會掃略一片空間區域,在圖4中,由A、B、C、D、E、F所組成的陰影面積即為一次走刀后,刀具的掃略區域,稱為刀具掃描體。

圖4 刀具掃描體的形成
進行工件的材料去除仿真算法時,刀具每走到一個刀具坐標,都要檢驗是否需要與坯料進行求交運算。若坯料上的離散小長方體需要和刀具掃描體進行求交計算,則應該滿足兩個條件:坯料上的離散點在刀具掃描體內;離散的小長方體的高度超過銑刀當前坐標的Z坐標值。
若以上條件都能滿足,則修改小長方體的高度,使其與當前刀具的Z坐標值一致,當小長方體的高度變為0時,說明刀具掃描體內材料已經被完全切除,此時可以將與其對應的離散點從RoughPointList鏈表中刪除;若以上條件不能同時滿足,則無法進行切削過程的求交計算。在實際銑削加工仿真中,虛擬刀具坐標之間的距離越小,模擬連續走刀的效果越好,因此刀具掃描體所覆蓋的區域也極小。
傳統的方法在每次刀具掃描體與坯料進行求交計算時,是遍歷坯料離散點鏈表中的空間點,判斷其是否能同時滿足上述兩個求交計算的條件。由于坯料的離散點通常極多,幾十萬甚至上百萬個,若每次刷新時都使用傳統的方式進行搜索,則每次都要執行數十萬次的判斷,以現在的計算機處理速度,仿真效果和速度將不理想。本文基于工件坯料的構建原則,提出了一種優化的搜索算法,在完全保證搜索精度的前提下,僅需要搜索離散點鏈表中的一小部分,因此能夠大大減少搜索量,提高計算機的仿真速度和效果。算法流程圖如圖5所示。

圖5 坯料離散點搜索算法
搜索范圍的定義:搜索范圍是銑刀在下一次變換走刀方向之前所將要掃略過的材料區域,如圖6所示。由于坯料離散點在鏈表中的存儲順序和本工步中的刀具路徑的走勢一致,因此如果判斷出一個點不在搜索范圍之內,則表明之后的所有點也都不會再搜索范圍內,也就是說該點之后的其他坯料離散點都不會與銑刀的刀具掃描體相交,所以可以在該點處結束搜索從而減少計算機計運行次數。

圖6 刀具切削范圍
(1)從毛坯離散點鏈表的第一個點開始,按照點的存儲順序,將離散點依次讀取。每讀取一次即進行一次判斷,確定該點是否滿足兩個求交運算條件。由于坯料點鏈表中坯料點的排列順序與刀具路徑走勢一致,因此鏈表中的前一部分點肯定滿足求交運算條件,因此本搜索算法可以快速中靶。
(2)若一個點滿足求交運算的條件,則修改與該點對應的小長方體的高度,使之與刀具坐標的縱坐標一致,若小長方體的高度不為零,則把該點移至RoughPointList鏈表的尾部;若小長方體的高度變為零,則把該點直接從RoughPointList鏈表中移除。
(3)若某點不滿足求交運算,則判斷改點是否在搜索范圍內。若該點在搜索范圍內,則重復步驟1,否則結束搜索并刷新工件的三維空間模型。
工步差異坯料構建能夠有效地省計算機運行時間,提高仿真的速度,由于零件本體不與刀具掃描體進行求交運算,因此無法模擬過切效果。而對過切現象的判斷是加工仿真非常重要的內容,本文通過在走刀時判斷刀具包絡面是否切入了零件本體內部,從而判斷是否產生過切,發生過切的特征面采用特定的顏色標識。
(1)基于本文所述理論,開發了數控加工仿真系統,系統通過解析數控工藝,基于當前工步的工藝參數生成刀具坐標和數控代碼(圖7),并且在坯料上顯示走刀路徑(圖8)。

圖7 NC代碼

圖8 走刀路徑
(2)系統根據數控工藝自動生成工步差異坯料模型和刀具切削刃部分模型,如圖9所示,為了顯示工步差異坯料構建效果,本文對坯料模型采用了與零件本體不同的顏色。材料去除的動態仿真效果如圖10所示。

圖10 動態切削仿真
本文以數控工藝為驅動基礎;利用Z-MAP方法實現了對銑削過程中的坯料進行局部重建,研究了走刀路徑的仿真方法和切削過程材料去除的仿真算法,提出了優化的坯料離散點搜索算法,大大降低了計算機的運算次數,提高了仿真的速度和質量,并通過仿真實例驗證了材料去除的動態仿真算法的可行性。