周惠群,吳建軍
ZHOU Hui-qun, WU Jian-jun
(西北工業(yè)大學 現(xiàn)在設計與集成制造技術教育部重點實驗室,西安 710072)
快速成型是一種基于離散累加的先進制造技術,近年來得到了非常迅猛的發(fā)展。其基本過程是首先對零件的CAD模型進行分層處理,得到零件的二維截面數(shù)據(jù),然后根據(jù)每一層的截面數(shù)據(jù),以特定的方法生成與該層截面形狀一致的薄片,這一過程反復進行,逐層累加,直至生長出零件的實體模型。也就是說,在快速成型的加工過程中,CAD模型必須經過分層處理才能將數(shù)據(jù)輸入到相應的加工設備中,因此可以說分層處理是快速成型的核心,所以該問題一直是該領域的研究熱點[1,2]。
針對CAD模型的分層,國內外相關的研究人員提出了各種分層算法,主要可以分為基于CAD模型的直接分層和基于STL模型的分層這兩大類算法。在快速成型技術的早期,普遍采用由美國3D System公司提出STL文件來表示CAD實體模型。雖然STL文件有種種不足和缺陷,但目前仍然是CAD模型轉化成快速成型數(shù)據(jù)的主要來源。而在眾多的分層算法中,基于STL模型的分層算法依然是研究的主流[3,4]。
由于STL文件是對CAD模型表面用一系列小三角形面片進行近似而得到的,這使得在快速成型加工中截面輪廓含有大量的冗余微小線段,這些線段必然影響加工過程的平穩(wěn)性和效率。為了提高加工精度和速度,對這些微線段輪廓進行優(yōu)化處理成為研究人員必須面對的問題。在此基礎上,文獻[5]提出采用計算曲率的方法,文獻[6]提出了限定三角形高度的方法等等。本文在總結前人的基礎上,提出了一種數(shù)據(jù)冗余點去除的新算法——基于截面輪廓三角形面積及其累加誤差的計算方法,該方法可以在保證加工精度的條件下,有效地去除了冗余點。
圖1 CAD模型、STL模型及三角形面片的示意圖
如圖1(a)、(b)、(c)所示分別是零件的CAD模型圖、STL模型圖和單個三角形的3個頂點坐標及三角形面片的法向量示意圖。STL文件是若干空間小三角形面片的集合,每個三角形面片用其三個頂點和指向模型外部的三角形面片的法向量組成。STL文件的大?。慈切螖?shù)量)與產生該文件時對其要求的精度有關。當STL模型對CAD模型的近似程度(即精度)較高時,用來近似零件表面的三角形面片數(shù)目較多,反之則較少。關于STL文件格式的文獻很多,這里不再贅述。
快速成型加工的預處理是先建立零件的CAD模型,然后將此模型轉化成STL模型,在STL模型上指定一個分層方向(一般為Z軸),沿著分層方向每隔一定距離用垂直于Z軸的平面P進行切片處理,再把所得到的截面輪廓的微線段連接成封閉的輪廓線,即STL模型的截面輪廓。 換言之,分層就是用垂直于分層方向的截平面截交STL模型,這個截平面和STL模型的三角形相交,然后得到封閉的截面輪廓線。
當STL模型對CAD模型的近似程度較高時,因為三角形數(shù)目多,分層后得到的截面輪廓會有大量的微線段。而且,因為三角形共頂點及共邊,在同一條直線段上還會存在多個數(shù)據(jù)點,在同一個數(shù)據(jù)點上也會有多個重合點。切片厚度根據(jù)零件的精度和成型機的有關參數(shù)確定,如果切片厚度小,成型精度高,但成型的效率低。
用平面P1、P2、P3去截交STL模型的情況如圖2所示。從圖2中可以看出,截交STL模型后得到的輪廓是由一條條微線段組成的封閉多邊形,每個封閉多邊形也就是一個加工區(qū)域環(huán)。一個截面輪廓可能含有多個這樣的封閉環(huán),在這些環(huán)里進行成型加工。根據(jù)切片原理和STL文件的特點可知,根據(jù)截交的位置不同,每個環(huán)都含有大量的微線段,有的在同一直線上,有的過于短小,短到小于加工精度,以至于根本無法進行加工。當截平面通過三角形面片的頂點時,還會出現(xiàn)重復點。而且這些微線段成為一種多余的信息,對加工過程造成了一定的影響和干擾。只有去掉這些微線段,才能提高加工的效率和穩(wěn)定性。
如圖2中的P1切片通過三角形頂點V1時,截交共此頂點的三角形T1、T2、T3、T4、T5、T6、T7、T8,根據(jù)不同的切片算法,則可能出現(xiàn)二重點或多重點,這些都會影響到后續(xù)的插補加工。
圖2 STL模型的截交圖
圖3 三角形的面積計算
如圖3所示,在三角形ABC(以下用ΔABC表示)中,當ΔABC的面積(即1/2×h×L)小到一定值時,該三角形就可以忽略。在三角形中,如果面積一定時,高h和底L是反比關系。A、B、C三個點中,總有一個點應該被忽略。即h較大時,L就較??;L較大時,h就較小。這樣,通過求面積的方法,前述的各類冗余點就合并為一類了。設:
在STL模型被垂直于Z軸的平面截交以后,形成一個新的截面輪廓區(qū)域。該區(qū)域就是快速成型加工的掃描區(qū)域。它是由一系列直線段組成的,依次掃描各數(shù)據(jù)點,以連續(xù)的三點組成三角形,計算該三角形的面積(即1/2×h×L),如滿足式(3),則該點作為多余點去除,然后以新形成的直線作為一條邊,加入一個新點,形成一個新三角形,再計算該三角形的面積。依此類推,直到整個截面輪廓的數(shù)據(jù)點結束,這一層的數(shù)據(jù)優(yōu)化過程也就完成了。下一層也如此進行,直到所有的輪廓層都計算完為止。
如圖4所示,具體的截面數(shù)據(jù)優(yōu)化過程如下:STL模型經過截交后的部分外輪廓為:{A,B,C,D,E,F},首先ABC組成一個三角形,其面積為1/2×(AC)×h1,若該值≤δ,則B點作為冗余點去除。然后再計算ΔACD的面積,若該值≤δ,依此計算ΔACE的面積,若該值再≤δ,再計算ΔACF的面積,直到三角形面積的值超過δ為止。
上述算法的最大問題就是累積誤差。也就是說,當前一次有數(shù)據(jù)點去除時,新形成的邊已經包含了該次優(yōu)化的誤差,在下一次新的三角形面積計算時,如不考慮前次的影響,將會產生誤差累積,得到錯誤的結果。因此,完整的算法應該是:若前一次計算中有數(shù)據(jù)點去除,則本次計算時不僅要計算本次新形成的三角形面積,而且還應再加上次去除掉的三角形面積值,只有這個累加值滿足式(3)的誤差范圍要求時,才能去除這一點。以此類推,完成計算的全過程,掃描完各個STL模型的截面輪廓后,分層數(shù)據(jù)的優(yōu)化也就完成了。從這個數(shù)據(jù)點的去除過程可以看到,一切都是在截面輪廓的精度范圍內進行。因此,數(shù)據(jù)優(yōu)化后的截面輪廓與原輪廓的誤差完全控制在精度范圍內。
圖4 截面數(shù)據(jù)優(yōu)化過程
圖5 實例零件的截面輪廓
在快速成型加工的前期,必須進行CAD模型的預處理。在CAD系統(tǒng)中創(chuàng)建CAD模型后,由于CAD系統(tǒng)自身含有將CAD模型轉化成STL模型的功能,只須調用相關的轉換命令即可將CAD模型轉換成STL模型。然后依據(jù)快速成型制件的形狀,確定分層切片的方向,將該方向設置一般設置為Z軸方向,再調用CAD系統(tǒng)的剖切命令,指定分層厚度后,用垂直于Z軸的平面去對STL模型進行分層,可以得到STL模型的分層輪廓。這時,就可以運用上述的方法對STL模型的截面輪廓的數(shù)據(jù)進行數(shù)據(jù)優(yōu)化了。
STL模型的截面輪廓的數(shù)據(jù)優(yōu)化可以描述為如下的過程:
如圖5所示是一個零件的STL模型的截面輪廓,未經過優(yōu)化時共有數(shù)據(jù)點632個。在經過使用本算法進行冗余數(shù)據(jù)的處理之后,還有數(shù)據(jù)點298個,數(shù)據(jù)點的數(shù)量只有原來的47%。由此可見,本算法確實能夠減少STL模型的截面輪廓的數(shù)據(jù)量。在滿足制件加工精度的基礎上,提高了快速成型的加工效率。
三維CAD實體模型的分層切片處理是實現(xiàn)快速成型加工的必由之路。在目前的快速成型制造中,盡管STL模型有很多不足和缺陷,但在眾多的分層方法中,針對STL模型的分層方法仍然是快速成型技術研究的主流。由于快速成型加工中所采用的STL文件格式的特點,決定了STL模型的截面輪廓必然由一系列微線段構成,并且含有大量的數(shù)據(jù)冗余點,肯定會影響后續(xù)的數(shù)據(jù)處理以及快速成型加工的過程。
本文在總結目前對STL模型進行切片以后輪廓數(shù)據(jù)優(yōu)化方法的基礎上,提出了一種新的STL模型切片輪廓數(shù)據(jù)優(yōu)化的新算法—基于截面輪廓三角形面積及其累加誤差的計算方法,詳細闡述了本算法的基本思想和運算過程。實踐證明,采用本算法進行數(shù)據(jù)優(yōu)化以后,在保證加工精度的基礎上,每一層的數(shù)據(jù)點減少一半以上,不僅減少了加工過程的數(shù)據(jù)處理量,而且還能提高加工效率,同時也有利于后續(xù)的掃描路徑規(guī)劃。
[1] Ali Kamrani, Emad Abouel Nasr.Rapid Prototyping:Theory and Practice[M],Springer-Verlag New York Inc.2006.
[2] 平雪良,高同軍,孟凡虹.一種提高快速成形系統(tǒng)精度的新切片算法[J].機械科學與技術(西安),2008,27(9):1121-1124.
[3] 溫佩芝,黃文明,吳成柯.一種改進的STL文件快速分層算法[J]. 計算機應用,2008,28(7):1766-1768.
[4] 趙吉賓,劉偉軍.快速成形技術中基于STL模型的分層算法研究[J].應用基礎與工程科學學報,2008,16(2):224-233.
[5] 黃新華,孫琨,方亮,岑啟宏.STL模型的分層輪廓數(shù)據(jù)優(yōu)化算法[J].機械科學與技術(西安).2004,23(5):605-607.
[6] 郭新貴,汪德才,劉亞東,李從心.快速成型的切片數(shù)據(jù)優(yōu)化[J].制造技術與機床,2002,9(3):30-32.