陳閣
摘 要:機床加工中,工件材料去除仿真有著廣泛的應用,它對于檢測G代碼的正確性,減少工件試切帶來的成本,提高加工的性能,降低能耗以及保護環境都有十分重要的意義。本文以三軸銑床加工為列,介紹了本人在工作中,使用的一種工件去除的仿真方法。
關鍵詞:數控加工;仿真;實體模型;計算機圖形學
隨著計算機技術和信息技術的發展,虛擬制造技術在傳統加工制造業中得到了廣泛應用,它以虛擬現實和仿真技術為基礎,對產品的設計、生產過程統一建模,在計算機上實現產品從設計、加工、裝配以及檢驗等整個生命周期的模擬和仿真。
工件材料去除仿真是虛擬制造的重要組成部分,利用計算機圖形學技術對已編制的NC(Numerical Control,數字控制,簡稱數控)程序進行模擬演示。開發功能完備、實用性強的虛擬數控加工模擬系統是當前加工制造業急需解決的問題。三維圖形模擬可以用來檢驗NC程序的正確性和合理性,大大降低了以往的試切等方法帶來的高消耗,并保證整個加工過程中的安全。加工安全分為加工前,加工中和加工后的安全,工件材料去除仿真的模擬屬于加工前的安全。
1 銑床工件模型
本文采用基于物體空間的離散法建立工件的數學模型,其基本思想是:首先,按精度將工件表面離散為一系列的三角形網格;然后,判斷工件表面三角面片頂點是否與刀具掃掠面相交,并根據刀具掃掠面修改各三角片頂點值,其中重點是根據刀具路徑計算刀具掃掠面;最后,對三角網格進行真實感渲染。基于三角網格的物體空間離散法己經比較成熟,并且也已經被成功應用于數控仿真的實現中。
具體來說,本文假定毛胚(待加工工件)為長方體,將毛坯的6個面分別進行離散。上表面是待加工表面,是毛坯離散化的關鍵,將其離散為均勻點陣,形成的三角網格,形狀規則,排列有序,便于三角網格的快速檢索。同理,工件的下表面由于也存在著加工的可能性(如通孔的加工),將工件的下邊面采用上表面同樣的方法進行離散,對于工件的側面,采用四邊形網格的方法,原因是,實際加工中用四邊形網格和三角形網格在表示工件側面上具有同等的精度,并且四邊形網格的數量比三角形網格要少的多。
在毛坯離散化的過程中,離散精度(網格節點密度)的選擇,影響著毛坯的顯示質量。但是精度提高,又必然會影響效率,仿真的效率和精度兩者互相制約,為此需要根據仿真具體情況(毛坯大小、加工工藝)尋找一個合適的值。為了簡化計算,同時根據實際使用中的經驗,本文采用將工件離散為邊長1mm的正方形網格,再將正方形網格分為兩個相等的三角形,圖1為50×50的網格,用于工件上、下表面的離散。
2 算法實現
整個算法分為工件模型初始化,切除運算和模型繪制三個部分實現,以下是具體描述。
2.1 初始化工作
包括工件模型的初始化和刀具模型初始化,工件模型的初始化,按照本文第一部分的方法建立工件的數學模型,將毛坯表面離散為密度合適的均勻網格節點;對于刀具模型,由于刀具模型在加工過程中,形狀沒有改變,因此采用簡單的幾何體進行描述。
2.2 工件切除運算
機床數控系統對NC代碼進行插補處理,在程序起點和終點之間進行數據點的密化,最終得到的刀具運動軌跡均為連一系列連續的微小直線段,如圖2中的線段。圖中球頭刀沿著軌跡移動,設軌跡的起點和終點坐標分別為。球頭刀沿刀位軌跡移動所掃掠過的立體空間稱為刀具掃描體;刀具掃掠面就是刀具表面在空間運動過程中形成的包絡面;刀具掃掠域就是刀具移動時刀具掃掠面在平面的投影。
為了簡化計算,首先將刀具一次運動生成的掃掠面投影到平面,這樣可以快速找到此次刀具運動切除工件模型的范圍,只對該區域進行計算,減少了計算量。
判斷毛坯表面節點是否被加工,首先要判斷毛坯節點是否位于刀具掃掠域中。如圖2所示,圖中矩形為刀具掃掠域包圍的矩形,為在平面內的投影,刀具掃掠域分為三個部分,起始和終止部分為半圓形,中間矩形部分。:
包圍矩形是指能包圍掃掠域的最小矩形。采用兩步判別網格點,第一步是粗判,判斷網格點是否落在掃掠域的包圍矩形中;如果網格點落在掃掠域的包圍矩形中,則進一步判斷網格點與掃掠域之間的關系,從而確定網格點是否被切除,這樣可以大大減少計算量,提高判斷效率。
首先判斷網格點是否位于刀具掃掠域包圍矩形中,刀具掃掠域包圍矩形的數學表達式為(的取值范圍,其中為刀具半徑):
只有位于刀具掃掠域包圍矩形內的網格點才進一步判斷它是否位于刀具掃掠域中。
刀具運動方向為:
則刀具掃掠域數學表達式為:
循環遍歷工件上包圍矩形內的離散網格點,判斷每一個節點與刀具掃掠域的關系。如果網格點位于刀具掃掠域中,則對該點做繼續判斷。
銑削加工中材料去除的過程就是毛坯網格點數據修改的過程,即工件上離散網格點的向坐標值根據刀具掃掠面改變的過程。本文實現了三種刀具(球頭刀、立銑刀和環形刀)的切除運算。下面以球頭刀為例,介紹刀具掃掠面的方程。
圖2中球頭刀掃掠面是一個空間規則的曲面,分為三部分,其中起始部分和終止部分均為球面,中間部分為一個半徑為的半圓柱面。
假設為刀具掃掠面上任意一點,點位于起始部分滿足方程:
點位于終止部分時滿足方程:
刀具掃掠面中間圓柱面滿足方程:
在一次刀具運動過程中,循環遍歷工件上切除區域內的每一個離的點,根據工件上的點在刀具掃掠面在平面投影的位置的不同,采用不同的方程,解出值,該值即為刀具本次切除后工件上表面在該點的值,從而確定在某一時刻,工件模型的狀態。
2.3 模型繪制
有了工件模型的三維模型數據,就可以對數據進行渲染,由于數控系統是運行在linux系統下,因此采用OpenGL圖形庫對數據模型進行渲染,將網格數據轉化為三角片,調用OpenGL繪制函數進行繪制。
為了增強顯示效果,本文使用了OpenGL自帶的光照模型,啟用光照后,需要計算工件模型切除后的每個三角片的法線值,否則工件切除后,根本看不出工件是否被切除。因此在工件切除過程中,除了要修改每個被切除離散點的Z值外,還要修改與該離散點相關的三角片的法線值。
以球頭刀切除算法為例,被切除離散點的法線方向分為起始部分,中間部分和終止部分,其中,起始部分和終止部分離散點的法線方向指向刀具掃掠面的球面的球心,中間部分離散點的法線方向指向球心運動的線段。
3 算法優化
采用上述算法,對刀具運動以及工件做切除運算,并集成到數控系統中,發現整個運算占用很高的系統資源,特別是CPU的使用率很高,在一次進行大量的切除運算時,會有模擬卡住的現象。為了降低CPU的使用率,并增加仿真的流暢性,需要對仿真算法進行優化。本文以繪制模型的優化為例,介紹本人工作中使用的優化方法,經過分析CPU使用率較高的情況,發現主要瓶頸在繪制模型的復雜性上,因此,簡化繪制模型是首選的方法,也是本文采用的方法。
在實際的加工中,很多離散網格(其中包括公面且三角片的法向量相等的網格)可以合并為一個網格,合并網格后,減少了三角片的數量,對于工件的復雜部分,仍然使用較多的三角片繪制,網格合并效果見圖3。這樣處理,很大程度上減少了CPU的使用,提高了仿真系統的流暢性。
采用簡單合并網格的方法,仿真效率提高了,但是出現了新的問題,就是在某些視角下,相鄰網格間會有隱隱約約的虛線,影響了顯示效果,對于這個問題,發現是某些離散點位于三角片的邊上,也就是不是所有的離散點都只位于三角片的頂點上(如圖4中間紅色的頂點)。
對于這個問題,需要修正這樣的點,方法是增加一個網格,如圖5所示,這樣所有的頂點都在三角片的頂點上,沒有頂點在三角片的邊上。經過優化,顯示效果得到了較好的改善,加工后的工件模型顯示效果如圖6所示。
4 總結
本文介紹了一種工件切除的實時仿真方法,本文介紹的內容是本人在工作工使用的方法,由于涉及到保密問題,本文只是粗略的講解了理論方面的知識,沒有寫核心問題的解決方法和相關代碼細節的實現。
[參考文獻]
[1]王占禮.面向虛擬制造的數控加工仿真技術研究.吉林大學.2007.
[2]周靜.數控仿真三維建模與系統實現.南京理工大學.2005.
[3]張新宇.基于網格的三維造型和處理技術研究.浙江大學.2004.
[4]馬志艷.面向數控加工仿真的增強現實關鍵技術研究.華中科技大學.2007.
[5]張巖.曲面三角網格表示的數據結構優化研究.大連理工大學.2006.