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

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

圖2 坯料離散點(diǎn)陣的生成

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

設(shè)數(shù)控機(jī)床每一次在兩軌跡點(diǎn)連線方向上的微小的移動長度為step,則step在x,y,z三個方向上的分量分別為:

因此下一個刀具坐標(biāo)的坐標(biāo)為當(dāng)前點(diǎn)CutterPoint的坐標(biāo)加上step在x,y,z三個方向上的分量,然后將一個刀具坐標(biāo)的坐標(biāo)賦值給當(dāng)前刀具坐標(biāo)CutterPoint,即:

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

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

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

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

圖7 NC代碼

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

圖10 動態(tài)切削仿真
本文以數(shù)控工藝為驅(qū)動基礎(chǔ);利用Z-MAP方法實(shí)現(xiàn)了對銑削過程中的坯料進(jìn)行局部重建,研究了走刀路徑的仿真方法和切削過程材料去除的仿真算法,提出了優(yōu)化的坯料離散點(diǎn)搜索算法,大大降低了計算機(jī)的運(yùn)算次數(shù),提高了仿真的速度和質(zhì)量,并通過仿真實(shí)例驗證了材料去除的動態(tài)仿真算法的可行性。