STL文件格式的規(guī)則
(1)共頂點(diǎn)規(guī)則。每一個(gè)三角形平面必須與每個(gè)相鄰的小三角形平面共用兩個(gè)頂點(diǎn),也就是說,一個(gè)三角形平面的頂點(diǎn)不能落在相鄰的任何一個(gè)小三角形平面的邊上
2.jpg (10.73 KB, 下載次數(shù): 323)
下載附件
如何修復(fù)三維打印模型STL文件格式的規(guī)則和缺陷
2013-1-26 21:20 上傳
違反共頂點(diǎn)規(guī)則的錯(cuò)誤
(2)取向規(guī)則。對(duì)于每一個(gè)小三角形平面,其法向量必須向外,3個(gè)頂點(diǎn)連成的矢量方向按照逆時(shí)針方向的順序確定(右手法則),而且,對(duì)于相鄰的小三角形平面,不能出現(xiàn)取向矛盾,如圖所示。
2.jpg (13.69 KB, 下載次數(shù): 321)
下載附件
如何修復(fù)三維打印模型STL文件格式的規(guī)則和缺陷
2013-1-26 21:21 上傳
(3)取值規(guī)則。每個(gè)小三角形平面的頂點(diǎn)坐標(biāo)值必須是正值,零和負(fù)值是錯(cuò)誤的。
(4)充滿規(guī)則。在三維模型的所有表面上,必須布滿小三角形面片,不得有任何遺漏
STL文件存在的問題
由于STL文件不包含其拓樸關(guān)系的數(shù)據(jù),加上STL文件格式本身以及從CAD軟件到STL文件格式轉(zhuǎn)換過程造成的問題,所產(chǎn)生的STL文件難免有少量的缺陷。其中,最常見的缺陷有:
(1)存在縫隙,即三角形面片的丟失。對(duì)于大曲率的曲面相交部分,三角化時(shí)就會(huì)產(chǎn)生這種錯(cuò)誤,如圖3所示。在顯示的STL格式模型上,會(huì)有錯(cuò)誤的裂縫或孔洞(其中無三角形),違反了充滿規(guī)則。此時(shí),應(yīng)在這些裂縫或孔沿處增補(bǔ)若干小三角形面片,從而消除這種錯(cuò)誤。
2.jpg (28.28 KB, 下載次數(shù): 298)
下載附件
如何修復(fù)三維打印模型STL文件格式的規(guī)則和缺陷
2013-1-26 21:23 上傳
三角形之間的縫隙示意圖
(2)畸變,即三角形面片的所有邊都共線。這種缺陷通常發(fā)生在從三維實(shí)體到STL文件的轉(zhuǎn)換算法上。由于采用在其相交線處向不同實(shí)體產(chǎn)生三角形面片,就會(huì)導(dǎo)致相交線處的三角形面片的畸變。
(3)三角形面片的重疊。面片的重疊主要是由于在三角化面片時(shí)數(shù)值的圓整誤差所產(chǎn)生的。由于三角形的頂點(diǎn)在3D空間中是以浮點(diǎn)數(shù)表示的,而不是整數(shù)。如果圓整誤差范圍較大,就會(huì)導(dǎo)致面片的重疊。
(4)歧義的拓樸關(guān)系。按照共頂點(diǎn)規(guī)則,在任一邊上,僅存在兩個(gè)三角形共邊。若存在兩個(gè)以上的三角形共此邊,就產(chǎn)生了歧義的拓樸關(guān)系。這些問題可能發(fā)生在三角化具有尖角的平面、不同實(shí)體的相交部分或生成STL文件
時(shí)控制參數(shù)的誤差上。由于STL文件的這種缺陷,必須事先對(duì)STL文件的模型數(shù)據(jù)的有效性進(jìn)行檢查,以保證用于快速成形系統(tǒng)的STL文件的有效性。否則,具有缺陷的STL文件就會(huì)導(dǎo)致快速成形系統(tǒng)加工時(shí)的許多問題,如原型的幾何失真等,嚴(yán)重時(shí)會(huì)導(dǎo)致死機(jī)。
一般的解決方法
由于STL文件存在以上的缺陷與不足,就需要有一個(gè)軟件來修改STL文件,比如國(guó)內(nèi)的AFS公司和美國(guó)的3D System公司就有此類軟件。但要想找出STL文件中的問題并加以修改并非輕而易舉的,也不是所有的缺陷都能修復(fù)的。傳統(tǒng)的解決方法是使用(或開發(fā))一個(gè)STL糾錯(cuò)程序,將STL文件中的錯(cuò)誤排除,生成新的STL文件,再進(jìn)行切片(有些系統(tǒng)將糾錯(cuò)、切片做在一個(gè)模塊里,其原理仍是一樣的)。但由于三維信息的復(fù)雜性,多數(shù)算法目前并不能將STL文件所描述的三維拓樸信息還原出一個(gè)整體、全局意義上的實(shí)體信息模型,無法像人一樣對(duì)三維實(shí)體有一個(gè)空間上的認(rèn)識(shí),因而糾錯(cuò)只能停留在糾正簡(jiǎn)單的錯(cuò)誤上,而無法對(duì)復(fù)雜錯(cuò)誤進(jìn)行自動(dòng)修復(fù),只能標(biāo)出錯(cuò)誤點(diǎn)的位置,依賴人手工進(jìn)行一個(gè)個(gè)三角形的添加、刪除工作,這通常需要一到數(shù)天的時(shí)間,不僅枯燥、麻煩,并且也失去了快速成形的意義。由于STL文件的缺陷會(huì)導(dǎo)致切片程序上的許多錯(cuò)誤,有時(shí)會(huì)使切片過程很困難,于是許多學(xué)者針對(duì)STL文件的缺陷提出容錯(cuò)的切片算法。如文獻(xiàn)[6]中提出這樣的切片算法:直接對(duì)STL文件切片,在其切片的二維層次上進(jìn)行修復(fù),即在二維輪廓信息層次上發(fā)現(xiàn)錯(cuò)誤,并作相應(yīng)地去除多余輪廓線段、在輪廓斷點(diǎn)處進(jìn)行插補(bǔ)等操作,但由于輪廓上錯(cuò)誤的千變?nèi)f化,不是所有的錯(cuò)誤都能得到修正。
針對(duì)我們開發(fā)的激光燒結(jié)快速成形系統(tǒng)的特點(diǎn),我們采用對(duì)STL文件的缺陷進(jìn)行直接的修復(fù)工件。針對(duì)STL文件中的三角形面片丟失的缺陷,采取的基本算法如下:首先,把STL文件中所存在的縫隙的邊界線找出來,并標(biāo)示它們。然后,在以上所得的邊界線內(nèi)用小三角形面片進(jìn)行修復(fù)與填補(bǔ)。所產(chǎn)生的小三角形面片的尺寸大小必須以這縫隙的邊界線為限制,并且其法向要受相鄰的實(shí)體上三角形面片法向的控制,不能出現(xiàn)取向上的矛盾。這樣才能保證在生成縫隙處小三角形面片的過程中,所產(chǎn)生的小三角形面片取向上的正確性和一致性。實(shí)體上三角形面片的法向是可以從STL文件得到的。該算法就能保證對(duì)于非有效STL文件的修復(fù)后小三角形面片法向上的正確性。這種修復(fù)的算法能有效地修復(fù)常見STL文件中的縫隙缺陷問題,并且易于用Visual C++語言來實(shí)現(xiàn)。我們對(duì)此算法進(jìn)
行了試驗(yàn)。試驗(yàn)條件為:激光功率P=40W,光斑直徑d =0.3 mm,掃描速度v =200mm/s,掃描間隙s =0.10mm,鋪粉厚度h =0.15mm,粉末配比為環(huán)氧聚脂:覆臘樹脂砂=10:1。燒結(jié)后的整體葉輪零件如圖所示,達(dá)到了一定的精度和表面質(zhì)量要求,具有較好的效果。
分析了用于快速成形系統(tǒng)的STL文件常見的錯(cuò)誤,并針對(duì)其中的三角形面片丟失問題進(jìn)行了討論,得出一個(gè)合理可行的修復(fù)算法。該算法能有效地修復(fù)常見的STL文件中縫隙缺陷問題。采用Visual C++語言將該算法實(shí)現(xiàn)提高打印表面精度。
|