喬慶昆
(上海二紡機(jī)股份有限公司 計(jì)算機(jī)中心,上海 200434)
三維STL模型的快速成型關(guān)鍵技術(shù)研究
喬慶昆
(上海二紡機(jī)股份有限公司 計(jì)算機(jī)中心,上海 200434)
介紹了三維STL模型描述文件中存在的缺陷,分析了產(chǎn)生這些缺陷的原因,結(jié)合實(shí)際生產(chǎn)應(yīng)用中的經(jīng)驗(yàn)提出了對(duì)STL模型文件進(jìn)行修復(fù)的實(shí)際可行的修補(bǔ)方法,給出了相關(guān)的計(jì)算機(jī)程序。
STL;快速成型;切片
快速成型RP(Rapid Prototyping)技術(shù)被認(rèn)為是近年來(lái)制造技術(shù)領(lǐng)域的一次重大突破,其對(duì)制造業(yè)的影響可與數(shù)控技術(shù)的出現(xiàn)相媲美。RP系統(tǒng)綜合了計(jì)算機(jī)、機(jī)械工程、CAD、數(shù)控技術(shù)、激光技術(shù)及材料科學(xué)技術(shù),可以自動(dòng)、直接、快速、精確地將設(shè)計(jì)思想物化為具有一定功能的原型或直接制造零件,從而可以對(duì)產(chǎn)品設(shè)計(jì)進(jìn)行快速評(píng)價(jià)、修改及功能試驗(yàn),有效地縮短了產(chǎn)品的研發(fā)周期。而以RP系統(tǒng)為基礎(chǔ)發(fā)展起來(lái)并已成熟的快速模具工裝制造(Quick Tooling)技術(shù)、快速精鑄技術(shù)(Quick Casting)、快速金屬粉末燒結(jié)技術(shù)(Quick Powder Sintering)則可實(shí)現(xiàn)零件的快速成型??焖俪尚图夹g(shù)不但廣泛應(yīng)用于航空航天、汽車、家電、工藝設(shè)計(jì)、醫(yī)療等領(lǐng)域,而且藝術(shù)建筑等領(lǐng)域的工作者也已經(jīng)開始使用快速成型設(shè)備,越來(lái)越多的藝術(shù)家已經(jīng)成為計(jì)算機(jī)工作者,即不再單純地依靠手工,而是由快速成型設(shè)備來(lái)表達(dá)新的思路和創(chuàng)新。
快速成型系統(tǒng)中,將加工對(duì)象的計(jì)算機(jī)三維CAD模型表面離散化,生成三維STL文件,根據(jù)該文件進(jìn)行分層切片處理,得到層片文件后生成數(shù)控代碼文件,最后在數(shù)控代碼的控制下,按照層片文件逐層加工堆積得到物理原型。三維STL文件是一種數(shù)據(jù)格式,它用一系列的小三角形平面片去近似表示原CAD模型,從而實(shí)現(xiàn)從CAD系統(tǒng)到RP系統(tǒng)的數(shù)據(jù)交換。其格式簡(jiǎn)單,數(shù)據(jù)處理方便,被廣泛采用。目前各主要的CAD/CAM軟件系統(tǒng)都提供STL文件接口。STL文件的數(shù)據(jù)處理在RP系統(tǒng)處理過(guò)程中占有重要的作用,數(shù)據(jù)處理效率的高低也直接影響快速成型的效率。
STL文件標(biāo)準(zhǔn)是美國(guó)3D SYSTEM公司于1988年制定的一個(gè)接口協(xié)議。STL模型所描述的是一種空間封閉的、有界的、正則的唯一表達(dá)物體的模型。這種文件格式類似于有限元的網(wǎng)絡(luò)劃分,它將物體表面劃分成很多小三角形,即用很多個(gè)三角面片去逼近CAD實(shí)體模型。STL文件有二進(jìn)制格式和文本格式兩種,文本格式簡(jiǎn)單明了,而二進(jìn)制格式則緊湊得多,如果表示同一個(gè)零件,它的文件大小只有文本格式的六分之一。
STL模型就是用平面三角單元對(duì)三維CAD實(shí)體表面進(jìn)行離散近似而構(gòu)成的三維實(shí)體模型,它是對(duì)原三維實(shí)體的一種幾何近似。當(dāng)三角形小到一定程度,其近似性達(dá)到工程應(yīng)用的精度范圍時(shí),STL模型就表達(dá)了CAD實(shí)體模型。從數(shù)據(jù)結(jié)構(gòu)上看,STL模型是三角形單元的一個(gè)有限集合,即:
式中F為三維實(shí)體表面,Ti是一個(gè)三角形單元,n為三角形單元個(gè)數(shù)。STL文件保存有三角形面片的矢量信息,用于表達(dá)物體的內(nèi)外指向。每個(gè)小平面必須有一個(gè)單位矢量從實(shí)體內(nèi)部指向?qū)嶓w外部,并且按照“右手法則”確定每個(gè)小三角形頂點(diǎn)的次序,如圖1所示。STL文件是一些離散的三角網(wǎng)絡(luò)描述,例如一個(gè)球體用三角網(wǎng)絡(luò)描述如圖2所示,它的正確性依賴于其內(nèi)部隱含的拓?fù)潢P(guān)系。正確的數(shù)據(jù)模型必須滿足如下一致性規(guī)則:
(1)相鄰兩個(gè)三角形之間只有一條公共邊,即必須共享兩個(gè)頂點(diǎn)。
(2)每一個(gè)組成三角形的邊有且僅有兩個(gè)三角形面片與之相連。
根據(jù)一致性規(guī)則可推導(dǎo)出:在STL文件中頂點(diǎn)數(shù)是三角形個(gè)數(shù)的一半,邊數(shù)是三角形個(gè)數(shù)的1.5倍。同時(shí)正確的實(shí)體數(shù)據(jù)模型應(yīng)該滿足三條法則:
(1)三角形平面的法矢量方向和三個(gè)頂點(diǎn)符合右手法則;
(2)每相鄰的兩個(gè)三角形平面只能共享兩個(gè)頂點(diǎn);
(3)三角形的每一條邊必須且只能由兩個(gè)三角形所共有。
(1)法向量錯(cuò)誤。三角形平面的法矢量方向與三角形的三個(gè)頂點(diǎn)之間不符合右手法則,因而構(gòu)成錯(cuò)誤。
(2)孔洞錯(cuò)誤。當(dāng)CAD模型的表面有較大曲率的曲面相交時(shí),在曲面相交部分會(huì)因?yàn)閬G失三角面片而造成孔洞。
(3)頂點(diǎn)錯(cuò)誤。某一三角面片的頂點(diǎn)落在另一三角面片的邊上,造成前一三角面片中的一條邊上存在兩個(gè)以上的頂點(diǎn),從而違背頂點(diǎn)法則。
(4)重疊錯(cuò)誤。主要是由三角形頂點(diǎn)計(jì)算時(shí)的舍入誤差造成的,由于三角形的頂點(diǎn)在3D空間中以浮點(diǎn)數(shù)表示,計(jì)算機(jī)運(yùn)行時(shí)對(duì)浮點(diǎn)數(shù)的舍入會(huì)導(dǎo)致兩個(gè)面片重疊。
(1)法向量錯(cuò)誤修補(bǔ)算法
可以根據(jù)包含錯(cuò)誤三角形的三條邊形成的三個(gè)三角形的法向量來(lái)計(jì)算出該三角形的法向量方向,并且用新計(jì)算出的法向量替代原來(lái)發(fā)生錯(cuò)誤的法向量,從而對(duì)錯(cuò)誤的數(shù)據(jù)進(jìn)行修補(bǔ)。由于該錯(cuò)誤不影響計(jì)算機(jī)對(duì)STL文件的切片性能,也可以不用加以修復(fù),在實(shí)際應(yīng)用中一般忽略該種錯(cuò)誤。
(2)孔洞錯(cuò)誤修補(bǔ)算法
可以將孔洞錯(cuò)誤劃分為平面孔洞和曲面孔洞兩種類型。平面孔洞可以利用計(jì)算機(jī)繪圖中常用的三角化算法DELAUNAY處理。曲面孔洞可以按照從孔洞的任意一頂點(diǎn)沿順時(shí)針行走,三點(diǎn)即形成一個(gè)三角面片,直到該孔洞走完為止。
(3)頂點(diǎn)錯(cuò)誤修補(bǔ)算法
發(fā)生該種錯(cuò)誤時(shí),可以將該頂點(diǎn)刪除,由于錯(cuò)誤頂點(diǎn)落在一條邊上,刪除該頂點(diǎn)不影響STL的文件數(shù)據(jù)。
(4)重疊錯(cuò)誤
發(fā)生該種錯(cuò)誤時(shí),可以將該三角形刪除。由于數(shù)據(jù)的四舍五入引起三角形的重疊,通過(guò)刪除該三角形,就可以修復(fù)STL文件的數(shù)據(jù)正確性。
快速成型制造技術(shù)實(shí)質(zhì)上是分層制造、層層疊加的過(guò)程,其中對(duì)已知的三維CAD實(shí)體數(shù)據(jù)模型求某方向的連續(xù)截面,即對(duì)實(shí)體進(jìn)行分層切片處理的過(guò)程成為必不可少的步驟。分層切片處理的數(shù)據(jù)對(duì)象是大量的小三角形平面片,因此,分層切片問(wèn)題實(shí)際就是切片平面與小三角形平面的求交問(wèn)題。因此分層切片方法合理選擇與優(yōu)化可以大大提高整個(gè)系統(tǒng)的效率。
分層切片根據(jù)分層厚度可以劃分為定層厚和變層厚兩種。
這種方式的每一層分層切片厚度是固定值。此種方式算法簡(jiǎn)便,計(jì)算機(jī)處理速度快,激光可以采用固定功率進(jìn)行燒結(jié),控制系統(tǒng)電路簡(jiǎn)便。但這種方式?jīng)]有考慮三維模型的幾何特性,必然會(huì)帶來(lái)較大的誤差,大大降低加工精度。為了減少因?yàn)樾螤畎l(fā)生變化而造成的誤差,減小階梯效果,采用了變層厚的切片方式解決這個(gè)問(wèn)題。定層厚與變層厚的切片效果如圖3所示。
這種方式是一種層厚度發(fā)生變化的切片方法,它根據(jù)零件形狀變化規(guī)律自動(dòng)選擇合適的切片厚度進(jìn)行切片。如圖3所示,切片時(shí)上半部份彎曲程度較大時(shí)可以采用切片厚度較小的值;下半部份彎曲程度較小時(shí)可以采用切片厚度較大的值。這種方法通過(guò)減小層厚來(lái)提高精度。
不難發(fā)現(xiàn)變層厚方式的原則是 “形狀變化慢的地方層片厚度大,形狀變化快的地方層片厚度小”?;谶@一原則,可以采用“面積變化判別法”來(lái)確定層片厚度的大小。這種判別法是通過(guò)計(jì)算相鄰兩層面積的變化率實(shí)現(xiàn)的。
設(shè)上層片截面面積為Sn-1,當(dāng)前層片截面面積為Sn,則:
其中C為允許的面積變化系數(shù),通過(guò)實(shí)驗(yàn)得到C的最佳值約為0.1。
根據(jù)式(2),若當(dāng)前層片不滿足此關(guān)系,則要減小層片厚度,重新切片再判斷是否滿足該關(guān)系式,重復(fù)該過(guò)程,直到滿足條件或?qū)悠穸冗_(dá)到極小值為止。
快速成型技術(shù)與傳統(tǒng)制造技術(shù)的最大區(qū)別在于其分層制造思想和從概念時(shí)間、原型制造到最終產(chǎn)品生成一體化的設(shè)計(jì)和加工方式。這一技術(shù)的出現(xiàn)給現(xiàn)代制造技術(shù)的發(fā)展帶來(lái)了全新的思路。本文通過(guò)對(duì)STL模型文件的修補(bǔ)以及對(duì)切片數(shù)據(jù)的進(jìn)一步處理,改善產(chǎn)品在加工中的質(zhì)量以及產(chǎn)品的精度,從而為產(chǎn)品的制造生產(chǎn)提供堅(jiān)實(shí)的基礎(chǔ)。
[1]趙保軍,汪蘇,陳五一.STL數(shù)據(jù)模型的快速切片算法[J].北京航空航天大學(xué)學(xué)報(bào),2004,30(4):329-333.
[2]平雪良,高同軍,孟凡虹.一種提高快速成形系統(tǒng)精度的新切片算法[J].機(jī)械科學(xué)與技術(shù),2008,27(9):1121-1124.
[3]溫佩芝,黃文明,吳成柯.一種改進(jìn)的STL文件快速分層算法[J].計(jì)算機(jī)應(yīng)用,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]田宗軍.激光燒結(jié)快速成型計(jì)算機(jī)控制系統(tǒng)的研究與應(yīng)用[D].南京:南京航空航天大學(xué),2000.
Research on key technique for rapid prototyping of 3D STL model
Qiao Qingkun
(Computer Center,Shanghai Erfangji Co.,Ltd.,Shanghai 200434,China)
This paper introduces some errors of 3D STL model description file.It analyses reasons of these errors and provides some methods which can repair these errors and provides some programs of these methods.
STL;rapid prototyping;slicing
TP391
A
1674-7720(2011)03-0006-03
2010-10-14)
喬慶昆,男,1980年生,工程師,主要研究方向:計(jì)算機(jī)應(yīng)用。