王亞萍 寇晨光 葛江華 隋秀凜 王磊
摘要:針對(duì)切片后二維平面數(shù)據(jù)量過多及錯(cuò)誤數(shù)據(jù)存在,影響快速成型質(zhì)量的問題,提出了一種等厚分層切片后基于小波系數(shù)變換的數(shù)據(jù)自適應(yīng)壓縮方法,將切片后的二維平面數(shù)據(jù)以小波變換作為依據(jù)進(jìn)行優(yōu)化,利用小波系數(shù)峰值,自適應(yīng)地保留能反映目標(biāo)特征和細(xì)節(jié)信息的點(diǎn),實(shí)現(xiàn)對(duì)切片后二維數(shù)據(jù)的壓縮和優(yōu)化。實(shí)驗(yàn)結(jié)果表明:本方法在等厚分層完成對(duì)STL模型切片的基礎(chǔ)上,以小波系數(shù)峰值的變化為依據(jù)實(shí)現(xiàn)對(duì)二維平面數(shù)據(jù)的自適應(yīng)壓縮,并最大限度的保留特征信息,從而解決因STL文件格式缺陷而影響快速成型精度的問題。
關(guān)鍵詞:等厚切片;二維平面數(shù)據(jù);小波變換;自適應(yīng)壓縮
中圖分類號(hào):TP391.7 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007-2683(2017)01-0060-05
0 引言
目前快速成型技術(shù)RP(rapid prototyping)問世不到二十年,卻已實(shí)現(xiàn)了相當(dāng)大的市場(chǎng)占有率,發(fā)展非常迅速。在所有的RP工藝中,無論是CAD造型軟件還是由逆向工程生成的零件CAD模型,都必須經(jīng)過分層處理才能將數(shù)據(jù)輸入到RP設(shè)備中,因此分層處理的精度直接影響著快速成型產(chǎn)品的質(zhì)量。
立體光刻(stereo lithographic,STL)數(shù)據(jù)格式由3D systems公司發(fā)明,在逆向工程中普遍應(yīng)用。因其格式簡(jiǎn)單、數(shù)據(jù)處理方便,所以很快被廣泛應(yīng)用,目前大多數(shù)計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)都提供STL文件的接口。STL文件是RP系統(tǒng)中數(shù)據(jù)交換的標(biāo)準(zhǔn)類文件類型,用三角網(wǎng)格面近似地表現(xiàn)三維CAD模型,并記錄模型中每個(gè)三角面片的幾何信息。由于STL文件格式簡(jiǎn)單、易于交換處理,基于STL模型的切片處理已被大多數(shù)RP系統(tǒng)采用。
目前,許多學(xué)者對(duì)基于STL網(wǎng)格模型的分層切片方法做了大量相應(yīng)的研究,但由于STL文件常見的錯(cuò)誤,如裂縫、法向量分離和頂點(diǎn)錯(cuò)誤等,使得分層切片的精度和效率降低,直接影響了快速成型的質(zhì)量。2012年,蔡冬根等,針對(duì)STL模型沒有拓?fù)潢P(guān)系的特點(diǎn),對(duì)其進(jìn)行排序并建立拓?fù)潢P(guān)系,使得切片精度有所提高,但對(duì)模型的失真情況考慮較少.2013年,劉歡等針對(duì)傳統(tǒng)等厚切片精度低、效率差的問題,提出一種基于遺傳算法的快速分層算法,通過搜索最優(yōu)點(diǎn)進(jìn)行分層,該方法比較適用于面片較多的模型。2014年,王春香等基于STL模型等厚分層的優(yōu)點(diǎn),提出了排序精簡(jiǎn)法,該算法在對(duì)數(shù)據(jù)進(jìn)行精簡(jiǎn)的同時(shí),能夠直接提取出只與分層切平面相交的三角形面片,快速提取輪廓線,但是切片的精度不是很高。2014年,韓婧茹等針對(duì)同一零件具有不同特征的特點(diǎn),對(duì)STL模型的局部進(jìn)行優(yōu)化,可對(duì)要求高的部位進(jìn)行局部的加密,使機(jī)械零件的精度提高,但效率有待進(jìn)一步改進(jìn)。2015年,張樹哲等針對(duì)FDM快速成型機(jī)系統(tǒng)對(duì)分層處理精度低的特點(diǎn),通過對(duì)當(dāng)前分層算法的優(yōu)化,結(jié)合控制功能的要求,開發(fā)了適合在極坐標(biāo)工作方式下的分層軟件。
雖然很多學(xué)者對(duì)切片的方法做了很多的研究,但鮮有從STL網(wǎng)格模型切片后二維平面數(shù)據(jù)壓縮精簡(jiǎn)人手進(jìn)行研究,也很少考慮冗余數(shù)據(jù)對(duì)切片的精度和效率的影響。文章針對(duì)STL文件固有的一些缺陷,提出了一種基于小波變換的切片數(shù)據(jù)自適應(yīng)壓縮方法。該方法通過設(shè)定切片的厚度和方向,對(duì)STL模型進(jìn)行等厚分層,求取切平面與同一平面內(nèi)一系列邊的交點(diǎn),通過小波變換對(duì)交點(diǎn)進(jìn)行優(yōu)化壓縮,最大限度的保留特征信息,并刪除冗余點(diǎn)。
1 STL文件讀取
STL文件是在計(jì)算機(jī)圖形應(yīng)用系統(tǒng)中,用于表示三角網(wǎng)格的一種文件格式。STL文件是基于有限元網(wǎng)格劃分的原理,采用三角網(wǎng)格來擬合三維模型的外表面。STL文件可以描述所有型體復(fù)雜的三維模型,三角面片的數(shù)量取決于模型的精度,通過STL文件實(shí)現(xiàn)CAD系統(tǒng)與快速成型系統(tǒng)的數(shù)據(jù)交換。
STL文件中記錄了模型中所有三角形面片的信息,即三角面片的法向量和三個(gè)頂點(diǎn)坐標(biāo),在該文件中,面片的信息是無序存儲(chǔ)的。STL文件有兩種格式:一種是ASCII明碼格式,另一種是二進(jìn)制格式。在工程應(yīng)用中,多采用ASCII明碼格式來讀取數(shù)據(jù),故采用ASSCII碼格式的STL文件進(jìn)行研究。
ASCII文件格式如下:
Solid[文件名]//三維實(shí)體的零件名
facet normal+0.0000000E+00+0.0000000E+00+1.0000000E-00H三角面片法向量的3個(gè)分量值
outer loop
vertex+1.4847321E+01-2.1347225E+00+3.0000000E+01//三角面片第一個(gè)頂點(diǎn)坐標(biāo)
vertex+1.4392394E+01+4.2259883E+00+3.0000000E+01//三角面片第一個(gè)頂點(diǎn)坐標(biāo)
vertex+1.3644479E+01+6.2312251E+00+3.0000000E+01//三角面片第一個(gè)頂點(diǎn)坐標(biāo)
endloop
endfacet//完成一個(gè)三角面片定義
……//其他三角面片信息
endsolid//整個(gè)STL文件定義結(jié)束
通過對(duì)ASCII格式的STL文件進(jìn)行分析可知,雖然三角面片的頂點(diǎn)和邊存在重合的情況,但是每個(gè)面片的法向量只有一個(gè),所以可以先搜索到法向量normal后,讀取normal的3個(gè)數(shù)并存儲(chǔ),其為三角面片的法向量坐標(biāo);法向量讀取完畢后,繼續(xù)搜索關(guān)鍵字vertex,并保存vertex內(nèi)的點(diǎn)的坐標(biāo)值,其中一個(gè)vertex對(duì)應(yīng)著一個(gè)點(diǎn),每搜索一次后對(duì)vertex進(jìn)行計(jì)數(shù)i,當(dāng)i≥3時(shí)進(jìn)入搜索新的法向量值層進(jìn)行存儲(chǔ)和讀取,直至所有的三角面片讀取完畢。
根據(jù)ASCII文件的格式,利用MATLAB進(jìn)行編程實(shí)現(xiàn)對(duì)STL文件的讀取,本文以某汽輪機(jī)廠的葉片作為研究對(duì)象,通過對(duì)模型進(jìn)行讀取計(jì)算,得出該模型共有1991500個(gè)三角形頂點(diǎn)構(gòu)成,讀取的模型如圖1所示。
2 STL網(wǎng)格模型的切片
2.1 小波及小波變換理論
本文提出的基于小波變換的切片交點(diǎn)數(shù)據(jù)自適應(yīng)壓縮方法,主要是由于小波變換能夠通過伸縮和平移小波函數(shù),以不同的分辨率自適應(yīng)地逼近信號(hào),低分辨率的小波變換可以描述信號(hào)更多的細(xì)節(jié)信息,而高分辨率下的小波變換能反映出結(jié)構(gòu)的輪廓。
(1)
則φ(t)稱為基本小波函數(shù)或小波母函數(shù),其中,t為時(shí)間,ω為角頻率,式(1)稱為小波函數(shù)的可溶性條件。對(duì)φ(t)進(jìn)行平移和伸縮可得到小波基函數(shù)集
(2)式中:a稱為尺度伸縮因子,b稱為時(shí)間平移因子。
函數(shù)f∈L2(R)的連續(xù)小波變換(CWT)
(3)
從(3)式子中可以看出,小波變換為“恒Q濾波”,具有自適應(yīng)性。小波系數(shù)能夠反映相鄰點(diǎn)的細(xì)節(jié)信息,若數(shù)據(jù)變化不大,即各個(gè)數(shù)據(jù)點(diǎn)相似,由公式(3)計(jì)算的小波系數(shù)也相似,當(dāng)數(shù)據(jù)有變化時(shí),對(duì)應(yīng)的小波系數(shù)峰值也會(huì)發(fā)生變化,這說明小波系數(shù)峰值能很好的反映交點(diǎn)數(shù)據(jù)的變化,所以小波系數(shù)的峰值能自適應(yīng)地探測(cè)數(shù)據(jù)的特征點(diǎn)。
2.2 交點(diǎn)的計(jì)算
三維模型分層所得的截面輪廓,是一系列分層平面與STL模型的三角面片求交所得交點(diǎn)的集合。通過對(duì)三角面片信息的讀取,可以知道三角形的三個(gè)頂點(diǎn)坐標(biāo),在分層的過程中,通過對(duì)層高進(jìn)行設(shè)定可以知道某一層的高度,當(dāng)與某個(gè)三角形相交時(shí)可以利用式(13)求出交點(diǎn)。如圖2所示,相鄰三角面片的四個(gè)頂點(diǎn)A、B、C、D的信息,必定會(huì)有交點(diǎn)l、m、n,分層平面的高度為h,利用方程(4)求出l、m、n的坐標(biāo)值。設(shè)m點(diǎn)坐標(biāo)為(xm,ym,zm),則其相應(yīng)的直線方程為:
(4)
解方程(4)可得交點(diǎn)m的坐標(biāo):
(5)三角面片的交點(diǎn)的示意圖如圖2所示。
2.3 等厚分層切片的方法
具有自適應(yīng)壓縮機(jī)制的等厚分層方法的步驟如下:
1)確定每次分層的厚度,及切平面的位置;
2)將切平面與三角形面片相切,求出交點(diǎn)的坐標(biāo)值;
3)小波變換對(duì)交點(diǎn)進(jìn)行分解壓縮;
4)通過小波變換后的數(shù)據(jù)獲得截面的輪廓線;
5)判斷是否所有的面片都被切完,切完后進(jìn)行處理得到實(shí)體輪廓環(huán),沒切完繼續(xù)進(jìn)行調(diào)用;
6)切片結(jié)束。
本切片方法假設(shè)所有的切割平面與三角形網(wǎng)格平行的邊不重合,假如重合則舍棄所切的某個(gè)平面。本方法不需要對(duì)三角形面片進(jìn)行分組,也不需要建立三角形面片問的拓?fù)潢P(guān)系,同時(shí)具備自適應(yīng)壓縮優(yōu)化的能力,這不僅能獲得高的分層精度,且效率也大大的提升。
3 應(yīng)用實(shí)例
3.1 交點(diǎn)數(shù)據(jù)的自適應(yīng)壓縮
本實(shí)例的數(shù)據(jù)為通過等厚分層切片后的葉片STL網(wǎng)格模型中某截面與切平面的交點(diǎn)數(shù)據(jù)。為實(shí)現(xiàn)切片數(shù)據(jù)的自適應(yīng)壓縮處理,首先需要對(duì)交點(diǎn)數(shù)據(jù)進(jìn)行分解,為更清晰的觀察交點(diǎn)坐標(biāo)值的特征,本實(shí)例采用“db5”小波對(duì)信號(hào)進(jìn)行六層分解;對(duì)分解的第六層到第一層的高、低頻系數(shù)進(jìn)行重構(gòu),利用低頻小波系數(shù)發(fā)掘更多的細(xì)節(jié)信息,通過高頻小波技術(shù)識(shí)別實(shí)體特征,從而實(shí)現(xiàn)對(duì)切片后交點(diǎn)數(shù)據(jù)的自適應(yīng)性壓縮。
3.2 本文切片方法與原始切片方法的對(duì)比
通過圖片很容易發(fā)現(xiàn),原始的切片截面不如經(jīng)過自適應(yīng)壓縮后的切片截面光滑,由于多余數(shù)據(jù)點(diǎn)和錯(cuò)誤數(shù)據(jù)點(diǎn)的存在,使得傳統(tǒng)方法切片后的切片截面的精度降低,直接影響著快速成型的精度。
通過對(duì)比采用本文方法進(jìn)行切片和傳統(tǒng)方法使用同樣層厚進(jìn)行切片后的模型不難發(fā)現(xiàn)采用本文方法進(jìn)行切片的模型精度更高,如圖10、圖11所示。
4 結(jié)論
分層處理一直是快速成型技術(shù)研究的熱點(diǎn),本文借助于等厚分層切片技術(shù),提出了一種基于小波技術(shù)的切片數(shù)據(jù)壓縮方法,該方法實(shí)現(xiàn)簡(jiǎn)單高效,同時(shí)又能最大限度的保留細(xì)節(jié)和特征信息,通過對(duì)交點(diǎn)信號(hào)進(jìn)行六次分解和高、低頻系數(shù)重構(gòu)后使切片平面二維數(shù)據(jù)得到壓縮,并剔除了冗余的數(shù)據(jù)點(diǎn),使得截面的輪廓更加精確光順;本文的切片方法通過與傳統(tǒng)切片方法的截線圖和模型的切片對(duì)比發(fā)現(xiàn)本文提出的切片方法在保留特征上有優(yōu)勢(shì),壓縮效果更理想,并且不需要設(shè)置閾值或者其他參數(shù),就可以自適應(yīng)的保留細(xì)節(jié)和特征點(diǎn)實(shí)現(xiàn)截面數(shù)據(jù)的自動(dòng)化壓縮,在提高切片模型的精度的同時(shí)減少了冗余數(shù)據(jù)量。
(編輯:關(guān)毅)