張晴宇,章義來,李 超,聶 宇
(景德鎮(zhèn)陶瓷大學信息工程學院,景德鎮(zhèn) 333403)
加工仿真技術(shù)的基本原理是模擬數(shù)控加工環(huán)境建立計算機仿真模型,在該模型下運行加工程序以檢驗產(chǎn)品是否正確合格。在進行切削仿真時,對坯件建模的常用方式有表面網(wǎng)格法和體素填充。體素是描述三維物體的最小單元,每個體素都可設(shè)置位置、質(zhì)量、顏色等屬性,加工仿真研究中常用點云形式、八叉樹結(jié)構(gòu)等表示及處理體素模型,有利于快速進行質(zhì)量體積等幾何運算。刀具經(jīng)過工件體素模型時,進行碰撞檢測、反饋力計算等,進而刪除刀具與工件干涉的點,模擬切削加工過程,在精度要求較高時需要消耗大量的計算機內(nèi)存。表面網(wǎng)格模型是使用計算機對工件進行CAD建模時的常用保存方式,由頂點和頂點間線段近似表示工件表面,存儲數(shù)據(jù)量小,常用于應(yīng)力分析、虛擬裝配等,缺點是能表示的表面質(zhì)量較低,易產(chǎn)生扁平單元,降低穩(wěn)定性。
本文將坯件表面采樣為點云模型、球頭銑刀簡化為球面,對切削加工過程進行仿真,建立加工過程中的坯件-刀具的動態(tài)模型并將其可視化,有以下改進創(chuàng)新:
(1)僅對坯件表面進行點采樣,相比填充體素節(jié)省內(nèi)存及減少計算量;
(2)引入法線計算新形成的表面,同時提高計算效率和計算精度;
(3)使用Python語言,Open3D庫實現(xiàn)了動態(tài)仿真,方法不依賴特定軟件平臺。
點云用于描述三維空間物體表面信息,每個點都包含三維坐標,也可能包含深度、密度、顏色信息等,相比于二維圖像數(shù)據(jù),特征準確,更接近人類的視覺,更容易理解三維場景,但存在無序性、密度不一致、信息不完整等特點,對點云數(shù)據(jù)處理比較復雜和困難。三維點云采集技術(shù)日漸成熟,利用先進設(shè)備可以在短時間內(nèi)采集物理表面海量點云數(shù)據(jù),受技術(shù)、環(huán)實物本身等因素影響,采集到的點云模型會有孔洞、噪點、密度不均等現(xiàn)象,因此產(chǎn)生點云孔洞修補、濾波、壓縮等技術(shù)研究熱點。點云逆向工程是將測量得到的點云數(shù)據(jù)進行預(yù)處理、重構(gòu)以及檢測來生成原產(chǎn)品的CAD模型,能夠縮短產(chǎn)品設(shè)計周期、保持原有產(chǎn)品的成熟傳承特性,廣泛應(yīng)用于產(chǎn)品的改型設(shè)計、藝術(shù)品和文物等的仿制修復和工業(yè)地理信息測量等領(lǐng)域。
現(xiàn)有加工制造仿真研究多注重于有限元分析、表面形貌仿真,得益于高性能計算機技術(shù)和軟件技術(shù)的發(fā)展,為研究切屑形成機理、切削力和加工表面微組織演變提供了支持。文獻[17]研究加工尺度上的仿真算法,提高仿真效率;Altintas等提出任意立銑刀或插刀幾何的通用建模方法,并設(shè)計虛擬銑削仿真系統(tǒng),以改進工業(yè)中的刀具設(shè)計或工藝規(guī)劃。
銑削加工形式多樣,一般由數(shù)控裝置、伺服裝置、機床主體等組成,工件由夾具固定,與固定在刀柄上的刀具相對運動。機械臂具有靈活性高、占用空間小、可協(xié)同加工等特點,普遍應(yīng)用于現(xiàn)代化生產(chǎn)。本研究中僅取工件與刀具的模型,將坯件表面點采樣為點云模型,控制其在相應(yīng)加工坐標系中運動,模擬加工時的位置變化。銑刀在加工過程中高速旋轉(zhuǎn),其切削刃近似為球面,當坯件模型上的點在銑刀球面內(nèi)時,即認為該位置被銑削。
工件的建模常用格式為網(wǎng)格模型,通過對網(wǎng)格進行細化再進行點采樣,轉(zhuǎn)化為點云模型。本文在采樣之前,根據(jù)精度要求對網(wǎng)格進行中點細分,得到三角形網(wǎng)格的網(wǎng)格模型。中點細分即通過計算三角形每條邊的中點,將其分為四個較小的三角形,細分之后計算網(wǎng)格頂點的法線。將所有網(wǎng)格頂點作為點云模型的點,同時保留其對應(yīng)法線,得到包含法線的坯件表面點云模型。
一般精加工時,球頭銑刀只有底部參與切削,底刃在高速旋轉(zhuǎn)過程中,可以近似為半球面。如圖1所示,將兩刃的6 mm球頭銑刀建模為一個半徑為3 mm的半球,在每個仿真步進后距離球心小于半徑的點將被切削,同時銑刀球面上生成新的',即將點云模型中點重置為'位置,同時'的法線設(shè)置為指向銑刀球面球心。
圖1 球頭銑刀模型
由于坯件是表面點云模型,被銑削時可以近似看作是一個被“擠壓”的過程,如圖2所示,在一個最小仿真計算步驟中,銑刀移動Δ,球心移動到,坯件表面將被“擠壓”向銑刀移動方向縮進Δ深度。聯(lián)系實際銑削時新表面的形成過程并且不考慮側(cè)滑、切削瘤等因素,“擠壓”坯件表面,點在其法線與Δ所在平面內(nèi),隨銑刀球面向外側(cè)和其法線負方向移動。
圖2 坯件“擠壓”過程
如圖2所示,在狀態(tài)0時,點在銑刀球面外側(cè);在狀態(tài)0和下一個狀態(tài)1之間,點被“擠壓”到'附近,'為銑刀球面上距較近的一點。
由于每一步的仿真間隔Δ小于精度要求,單個仿真步時,置點于'附近若干個Δ距離內(nèi)位置都不會影響單次仿真結(jié)果。但連續(xù)步進時,會造成誤差積累。在銑刀內(nèi)取點法線和Δ所在平面,點被“擠壓”時,僅此平面內(nèi)“滑動”。如圖3(a)所示,在平面內(nèi),為點法線,被“擠壓”時,點沿法線方向移動到球面上'點上。由于一個仿真步進內(nèi)點移動距離不應(yīng)超過Δ,當'長度大于Δ時,在負方向上取″,″長度等于Δ,'為″方向上與球面的交點,如圖3(b)所示。
圖3 點沿法線負方向移動
按照上述方法銑削邊界位置時,點的法線方向與被“擠壓”移動方向相同,點將被“擠壓”到邊界之外,產(chǎn)生“外偏”情況,不符合銑削實際,如圖4所示。因此做以下處理,查找點附近Δ長度距離內(nèi)所有點,若存在一點,使得'與的法線方向相同,則點被“銑削”,從表面點云模型中刪除。
圖4 點“外偏”情況
Open3D是一個用于處理3D數(shù)據(jù)的開源庫,可以快速進行點云表面重建、曲面對齊等操作,支持C++及Python語言,本文使用Open3D的點云類表示坯件模型,使用其KDTreeFlann方法查找判斷坯件模型上的點是否在銑刀球面內(nèi),用其visualization模塊進行動態(tài)可視化。
本文將銑削模型簡化在一個固定的坐標系中,保留坯件的點云模型和銑刀的近似球面網(wǎng)格模型,銑刀球面是有方向的。導入CAD模型發(fā)現(xiàn),Open3D默認單位長度為1 mm。導入坯件點云模型和銑刀球面到Open3D場景中,其中球頭銑刀的半徑為3 mm,坯件尺寸為30 mm×50 mm×10 mm。坯件是網(wǎng)格模型經(jīng)過7次中點劃分之后,取所有頂點得到約有98000個點的點云模型。
在坯件上沿軸和軸各走刀一次,銑削半徑3 mm、深度1 mm的弧形槽,其中軸走刀長度為40 mm、軸走刀長度60 mm,單次仿真步進Δ長度為0.2 mm。根據(jù)刀具半徑、仿真步進和坯件點云密度,測試發(fā)現(xiàn)取圖4中'與的法線余弦值大于0.1作為方向相同判斷依據(jù)時,在點不發(fā)生“外偏”的情況下被刪除的點較少,得到更高的精度。
在坯件上兩次走刀后,得到圖5所示的點云模型,弧槽的走刀起始位置和結(jié)束位置沒有點發(fā)生外偏,兩次走刀的相交區(qū)域沒有錯位點產(chǎn)生,符合銑削實際。分離出坯件上被銑削到的弧槽面上點云a(圖6a),并將cad建模得到的網(wǎng)格模型中弧槽部分進行表面采樣得到點云b(圖6b)。計算得到點云a與點云b之間的最大距離為0.32 mm,均方根誤差為0.015,仿真精度較高。
圖5 坯件仿真結(jié)果
圖6 仿真點云與CAD建模點云
本文建立的仿真模型動態(tài)地模擬了工件表面球銑時的變化過程,每次步進都產(chǎn)生準確結(jié)果,模型可視化且精度高。下一步工作將在此模型的基礎(chǔ)上,研究使用深度學習方法進行復雜工件的銑削工藝設(shè)計。