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