張晴宇,章義來,李 超,聶 宇
(景德鎮陶瓷大學信息工程學院,景德鎮 333403)
加工仿真技術的基本原理是模擬數控加工環境建立計算機仿真模型,在該模型下運行加工程序以檢驗產品是否正確合格。在進行切削仿真時,對坯件建模的常用方式有表面網格法和體素填充。體素是描述三維物體的最小單元,每個體素都可設置位置、質量、顏色等屬性,加工仿真研究中常用點云形式、八叉樹結構等表示及處理體素模型,有利于快速進行質量體積等幾何運算。刀具經過工件體素模型時,進行碰撞檢測、反饋力計算等,進而刪除刀具與工件干涉的點,模擬切削加工過程,在精度要求較高時需要消耗大量的計算機內存。表面網格模型是使用計算機對工件進行CAD建模時的常用保存方式,由頂點和頂點間線段近似表示工件表面,存儲數據量小,常用于應力分析、虛擬裝配等,缺點是能表示的表面質量較低,易產生扁平單元,降低穩定性。
本文將坯件表面采樣為點云模型、球頭銑刀簡化為球面,對切削加工過程進行仿真,建立加工過程中的坯件-刀具的動態模型并將其可視化,有以下改進創新:
(1)僅對坯件表面進行點采樣,相比填充體素節省內存及減少計算量;
(2)引入法線計算新形成的表面,同時提高計算效率和計算精度;
(3)使用Python語言,Open3D庫實現了動態仿真,方法不依賴特定軟件平臺。
點云用于描述三維空間物體表面信息,每個點都包含三維坐標,也可能包含深度、密度、顏色信息等,相比于二維圖像數據,特征準確,更接近人類的視覺,更容易理解三維場景,但存在無序性、密度不一致、信息不完整等特點,對點云數據處理比較復雜和困難。三維點云采集技術日漸成熟,利用先進設備可以在短時間內采集物理表面海量點云數據,受技術、環實物本身等因素影響,采集到的點云模型會有孔洞、噪點、密度不均等現象,因此產生點云孔洞修補、濾波、壓縮等技術研究熱點。點云逆向工程是將測量得到的點云數據進行預處理、重構以及檢測來生成原產品的CAD模型,能夠縮短產品設計周期、保持原有產品的成熟傳承特性,廣泛應用于產品的改型設計、藝術品和文物等的仿制修復和工業地理信息測量等領域。
現有加工制造仿真研究多注重于有限元分析、表面形貌仿真,得益于高性能計算機技術和軟件技術的發展,為研究切屑形成機理、切削力和加工表面微組織演變提供了支持。文獻[17]研究加工尺度上的仿真算法,提高仿真效率;Altintas等提出任意立銑刀或插刀幾何的通用建模方法,并設計虛擬銑削仿真系統,以改進工業中的刀具設計或工藝規劃。
銑削加工形式多樣,一般由數控裝置、伺服裝置、機床主體等組成,工件由夾具固定,與固定在刀柄上的刀具相對運動。機械臂具有靈活性高、占用空間小、可協同加工等特點,普遍應用于現代化生產。本研究中僅取工件與刀具的模型,將坯件表面點采樣為點云模型,控制其在相應加工坐標系中運動,模擬加工時的位置變化。銑刀在加工過程中高速旋轉,其切削刃近似為球面,當坯件模型上的點在銑刀球面內時,即認為該位置被銑削。
工件的建模常用格式為網格模型,通過對網格進行細化再進行點采樣,轉化為點云模型。本文在采樣之前,根據精度要求對網格進行中點細分,得到三角形網格的網格模型。中點細分即通過計算三角形每條邊的中點,將其分為四個較小的三角形,細分之后計算網格頂點的法線。將所有網格頂點作為點云模型的點,同時保留其對應法線,得到包含法線的坯件表面點云模型。
一般精加工時,球頭銑刀只有底部參與切削,底刃在高速旋轉過程中,可以近似為半球面。如圖1所示,將兩刃的6 mm球頭銑刀建模為一個半徑為3 mm的半球,在每個仿真步進后距離球心小于半徑的點將被切削,同時銑刀球面上生成新的',即將點云模型中點重置為'位置,同時'的法線設置為指向銑刀球面球心。

圖1 球頭銑刀模型
由于坯件是表面點云模型,被銑削時可以近似看作是一個被“擠壓”的過程,如圖2所示,在一個最小仿真計算步驟中,銑刀移動Δ,球心移動到,坯件表面將被“擠壓”向銑刀移動方向縮進Δ深度。聯系實際銑削時新表面的形成過程并且不考慮側滑、切削瘤等因素,“擠壓”坯件表面,點在其法線與Δ所在平面內,隨銑刀球面向外側和其法線負方向移動。

圖2 坯件“擠壓”過程
如圖2所示,在狀態0時,點在銑刀球面外側;在狀態0和下一個狀態1之間,點被“擠壓”到'附近,'為銑刀球面上距較近的一點。
由于每一步的仿真間隔Δ小于精度要求,單個仿真步時,置點于'附近若干個Δ距離內位置都不會影響單次仿真結果。但連續步進時,會造成誤差積累。在銑刀內取點法線和Δ所在平面,點被“擠壓”時,僅此平面內“滑動”。如圖3(a)所示,在平面內,為點法線,被“擠壓”時,點沿法線方向移動到球面上'點上。由于一個仿真步進內點移動距離不應超過Δ,當'長度大于Δ時,在負方向上取″,″長度等于Δ,'為″方向上與球面的交點,如圖3(b)所示。

圖3 點沿法線負方向移動
按照上述方法銑削邊界位置時,點的法線方向與被“擠壓”移動方向相同,點將被“擠壓”到邊界之外,產生“外偏”情況,不符合銑削實際,如圖4所示。因此做以下處理,查找點附近Δ長度距離內所有點,若存在一點,使得'與的法線方向相同,則點被“銑削”,從表面點云模型中刪除。

圖4 點“外偏”情況
Open3D是一個用于處理3D數據的開源庫,可以快速進行點云表面重建、曲面對齊等操作,支持C++及Python語言,本文使用Open3D的點云類表示坯件模型,使用其KDTreeFlann方法查找判斷坯件模型上的點是否在銑刀球面內,用其visualization模塊進行動態可視化。
本文將銑削模型簡化在一個固定的坐標系中,保留坯件的點云模型和銑刀的近似球面網格模型,銑刀球面是有方向的。導入CAD模型發現,Open3D默認單位長度為1 mm。導入坯件點云模型和銑刀球面到Open3D場景中,其中球頭銑刀的半徑為3 mm,坯件尺寸為30 mm×50 mm×10 mm。坯件是網格模型經過7次中點劃分之后,取所有頂點得到約有98000個點的點云模型。
在坯件上沿軸和軸各走刀一次,銑削半徑3 mm、深度1 mm的弧形槽,其中軸走刀長度為40 mm、軸走刀長度60 mm,單次仿真步進Δ長度為0.2 mm。根據刀具半徑、仿真步進和坯件點云密度,測試發現取圖4中'與的法線余弦值大于0.1作為方向相同判斷依據時,在點不發生“外偏”的情況下被刪除的點較少,得到更高的精度。
在坯件上兩次走刀后,得到圖5所示的點云模型,弧槽的走刀起始位置和結束位置沒有點發生外偏,兩次走刀的相交區域沒有錯位點產生,符合銑削實際。分離出坯件上被銑削到的弧槽面上點云a(圖6a),并將cad建模得到的網格模型中弧槽部分進行表面采樣得到點云b(圖6b)。計算得到點云a與點云b之間的最大距離為0.32 mm,均方根誤差為0.015,仿真精度較高。

圖5 坯件仿真結果

圖6 仿真點云與CAD建模點云
本文建立的仿真模型動態地模擬了工件表面球銑時的變化過程,每次步進都產生準確結果,模型可視化且精度高。下一步工作將在此模型的基礎上,研究使用深度學習方法進行復雜工件的銑削工藝設計。