《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 三維STL模型的快速成型關鍵技術研究
三維STL模型的快速成型關鍵技術研究
來源:微型機與應用2011年第3期
喬慶昆
(上海二紡機股份有限公司 計算機中心,,上海 200434)
摘要: 介紹了三維STL模型描述文件中存在的缺陷,,分析了產生這些缺陷的原因,結合實際生產應用中的經驗提出了對STL模型文件進行修復的實際可行的修補方法,給出了相關的計算機程序,。
關鍵詞: 軟件 STL 快速成型 切片
Abstract:
Key words :

摘  要: 介紹了三維STL模型描述文件中存在的缺陷,分析了產生這些缺陷的原因,,結合實際生產應用中的經驗提出了對STL模型文件進行修復的實際可行的修補方法,,給出了相關的計算機程序。
關鍵詞: STL,;快速成型,;切片

 快速成型RP(Rapid Prototyping)技術被認為是近年來制造技術領域的一次重大突破,其對制造業(yè)的影響可與數(shù)控技術的出現(xiàn)相媲美,。RP系統(tǒng)綜合了計算機,、機械工程、CAD,、數(shù)控技術,、激光技術及材料科學技術,可以自動,、直接,、快速、精確地將設計思想物化為具有一定功能的原型或直接制造零件,,從而可以對產品設計進行快速評價,、修改及功能試驗,有效地縮短了產品的研發(fā)周期,。而以RP系統(tǒng)為基礎發(fā)展起來并已成熟的快速模具工裝制造(Quick Tooling)技術,、快速精鑄技術(Quick Casting)、快速金屬粉末燒結技術(Quick Powder Sintering)則可實現(xiàn)零件的快速成型,??焖俪尚图夹g不但廣泛應用于航空航天,、汽車、家電,、工藝設計,、醫(yī)療等領域,而且藝術建筑等領域的工作者也已經開始使用快速成型設備,,越來越多的藝術家已經成為計算機工作者,,即不再單純地依靠手工,而是由快速成型設備來表達新的思路和創(chuàng)新,。
1 三維STL文件在系統(tǒng)中的作用
 快速成型系統(tǒng)中,,將加工對象的計算機三維CAD模型表面離散化,生成三維STL文件,,根據(jù)該文件進行分層切片處理,,得到層片文件后生成數(shù)控代碼文件,最后在數(shù)控代碼的控制下,,按照層片文件逐層加工堆積得到物理原型,。三維STL文件是一種數(shù)據(jù)格式,它用一系列的小三角形平面片去近似表示原CAD模型,,從而實現(xiàn)從CAD系統(tǒng)到RP系統(tǒng)的數(shù)據(jù)交換,。其格式簡單,數(shù)據(jù)處理方便,,被廣泛采用,。目前各主要的CAD/CAM軟件系統(tǒng)都提供STL文件接口。STL文件的數(shù)據(jù)處理在RP系統(tǒng)處理過程中占有重要的作用,,數(shù)據(jù)處理效率的高低也直接影響快速成型的效率,。
2 STL文件缺陷分析及其修補算法
2.1 STL文件格式

 STL文件標準是美國3D SYSTEM公司于1988年制定的一個接口協(xié)議。STL模型所描述的是一種空間封閉的,、有界的,、正則的唯一表達物體的模型。這種文件格式類似于有限元的網絡劃分,,它將物體表面劃分成很多小三角形,,即用很多個三角面片去逼近CAD實體模型。STL文件有二進制格式和文本格式兩種,,文本格式簡單明了,,而二進制格式則緊湊得多,如果表示同一個零件,,它的文件大小只有文本格式的六分之一,。
 STL模型就是用平面三角單元對三維CAD實體表面進行離散近似而構成的三維實體模型,它是對原三維實體的一種幾何近似,。當三角形小到一定程度,,其近似性達到工程應用的精度范圍時,,STL模型就表達了CAD實體模型。從數(shù)據(jù)結構上看,,STL模型是三角形單元的一個有限集合,,即:

 式中F為三維實體表面,Ti是一個三角形單元,,n為三角形單元個數(shù),。STL文件保存有三角形面片的矢量信息,用于表達物體的內外指向,。每個小平面必須有一個單位矢量從實體內部指向實體外部,,并且按照“右手法則”確定每個小三角形頂點的次序,如圖1所示,。STL文件是一些離散的三角網絡描述,,例如一個球體用三角網絡描述如圖2所示,它的正確性依賴于其內部隱含的拓撲關系,。正確的數(shù)據(jù)模型必須滿足如下一致性規(guī)則:
(1)相鄰兩個三角形之間只有一條公共邊,,即必須共享兩個頂點。


 (2) 每一個組成三角形的邊有且僅有兩個三角形面片與之相連,。
 根據(jù)一致性規(guī)則可推導出:在STL文件中頂點數(shù)是三角形個數(shù)的一半,邊數(shù)是三角形個數(shù)的1.5倍,。同時正確的實體數(shù)據(jù)模型應該滿足三條法則:
 (1) 三角形平面的法矢量方向和三個頂點符合右手法則,;
 (2)每相鄰的兩個三角形平面只能共享兩個頂點;
 (3) 三角形的每一條邊必須且只能由兩個三角形所共有,。
2.2 STL模型的缺陷
 (1)法向量錯誤,。三角形平面的法矢量方向與三角形的三個頂點之間不符合右手法則,因而構成錯誤,。
 (2)孔洞錯誤,。當CAD模型的表面有較大曲率的曲面相交時,在曲面相交部分會因為丟失三角面片而造成孔洞,。
 (3)頂點錯誤,。某一三角面片的頂點落在另一三角面片的邊上,造成前一三角面片中的一條邊上存在兩個以上的頂點,,從而違背頂點法則,。
 (4)重疊錯誤。主要是由三角形頂點計算時的舍入誤差造成的,,由于三角形的頂點在3D空間中以浮點數(shù)表示,,計算機運行時對浮點數(shù)的舍入會導致兩個面片重疊。
2.3 STL模型缺陷修補算法
 (1)法向量錯誤修補算法
可以根據(jù)包含錯誤三角形的三條邊形成的三個三角形的法向量來計算出該三角形的法向量方向,,并且用新計算出的法向量替代原來發(fā)生錯誤的法向量,,從而對錯誤的數(shù)據(jù)進行修補,。由于該錯誤不影響計算機對STL文件的切片性能,也可以不用加以修復,,在實際應用中一般忽略該種錯誤,。
 (2)孔洞錯誤修補算法
 可以將孔洞錯誤劃分為平面孔洞和曲面孔洞兩種類型。平面孔洞可以利用計算機繪圖中常用的三角化算法DELAUNAY處理,。曲面孔洞可以按照從孔洞的任意一頂點沿順時針行走,,三點即形成一個三角面片,直到該孔洞走完為止,。
// hole_point_num為空洞的頂點總數(shù)
For(i=1,;i<hole_point_num-1;i++)
{
        /*將第一個點沿順時針行走,,和第i和第i+1個點組成一個三角面片
        */
        CreatTriangle(Po[0],,po[i],po[i+1],;
}
 (3)頂點錯誤修補算法
 發(fā)生該種錯誤時,,可以將該頂點刪除,由于錯誤頂點落在一條邊上,,刪除該頂點不影響STL的文件數(shù)據(jù),。
//point_num為STL文件頂點總數(shù)
For(i=0;i<point_num,;i++)
{
        //判斷點point[i]是否落在邊上
        If(OnBorder(point[i])==true)
        {
            //落在邊上的點刪除
            DeletePoint(point[i]),;
        }
}
 (4)重疊錯誤
 發(fā)生該種錯誤時,可以將該三角形刪除,。由于數(shù)據(jù)的四舍五入引起三角形的重疊,,通過刪除該三角形,就可以修復STL文件的數(shù)據(jù)正確性,。
//triangle_num為STL文件中三角形的總數(shù)
For(i=0,;i<triangle_num;i++)
{
        //判斷三角形triangle[i]是否有重合
        If(Double(triangle[i])==true)
        {
            //有重合的三角形刪除
            DeleteTriangle(triangle[i]),;
        }
}
3 分層切片的方法
 快速成型制造技術實質上是分層制造,、層層疊加的過程,其中對已知的三維CAD實體數(shù)據(jù)模型求某方向的連續(xù)截面,,即對實體進行分層切片處理的過程成為必不可少的步驟,。分層切片處理的數(shù)據(jù)對象是大量的小三角形平面片,因此,,分層切片問題實際就是切片平面與小三角形平面的求交問題,。因此分層切片方法合理選擇與優(yōu)化可以大大提高整個系統(tǒng)的效率。
 分層切片根據(jù)分層厚度可以劃分為定層厚和變層厚兩種。
3.1 定層厚
 這種方式的每一層分層切片厚度是固定值,。此種方式算法簡便,,計算機處理速度快,激光可以采用固定功率進行燒結,,控制系統(tǒng)電路簡便,。但這種方式沒有考慮三維模型的幾何特性,必然會帶來較大的誤差,,大大降低加工精度,。為了減少因為形狀發(fā)生變化而造成的誤差,減小階梯效果,,采用了變層厚的切片方式解決這個問題,。定層厚與變層厚的切片效果如圖3所示。

3.2 變層厚
 這種方式是一種層厚度發(fā)生變化的切片方法,,它根據(jù)零件形狀變化規(guī)律自動選擇合適的切片厚度進行切片,。如圖3所示,切片時上半部份彎曲程度較大時可以采用切片厚度較小的值,;下半部份彎曲程度較小時可以采用切片厚度較大的值,。這種方法通過減小層厚來提高精度。
 不難發(fā)現(xiàn)變層厚方式的原則是“形狀變化慢的地方層片厚度大,,形狀變化快的地方層片厚度小”,。基于這一原則,,可以采用“面積變化判別法”來確定層片厚度的大小,。這種判別法是通過計算相鄰兩層面積的變化率實現(xiàn)的。
 設上層片截面面積為Sn-1,,當前層片截面面積為Sn,則:
 
 其中C為允許的面積變化系數(shù),,通過實驗得到C的最佳值約為0.1,。
根據(jù)式(2),若當前層片不滿足此關系,,則要減小層片厚度,,重新切片再判斷是否滿足該關系式,重復該過程,,直到滿足條件或層片厚度達到極小值為止,。
 快速成型技術與傳統(tǒng)制造技術的最大區(qū)別在于其分層制造思想和從概念時間、原型制造到最終產品生成一體化的設計和加工方式,。這一技術的出現(xiàn)給現(xiàn)代制造技術的發(fā)展帶來了全新的思路,。本文通過對STL模型文件的修補以及對切片數(shù)據(jù)的進一步處理,改善產品在加工中的質量以及產品的精度,,從而為產品的制造生產提供堅實的基礎,。
參考文獻
[1] 趙保軍,,汪蘇,陳五一.STL數(shù)據(jù)模型的快速切片算法[J].北京航空航天大學學報,,2004,,30(4):329-333.
[2] 平雪良,高同軍,,孟凡虹.一種提高快速成形系統(tǒng)精度的新切片算法[J].機械科學與技術,,2008,27(9):1121-1124.
[3] 溫佩芝,,黃文明,,吳成柯.一種改進的STL文件快速分層算法[J].計算機應用,2008,,28(7):1766-1768.
[4] ZHAO Z,, LAPERRIEREL. Adaptive direct slicing of the solid model for rapid prototyping[J]. International Journal of Production Research, 2000,, 38(3):89-98.
[5] LIAO Y S,, CHIU Y Y. Anewslicingprocedure for rapid prototyping system[J]. International Journal of Advanced Manufacturing Technology, 2000,, 18:579-585.
[6] 田宗軍.激光燒結快速成型計算機控制系統(tǒng)的研究與應用[D].南京:南京航空航天大學,,2000.

此內容為AET網站原創(chuàng),未經授權禁止轉載,。