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