鬼佬大哥大
  • / 9
  • 下載費用:30 金幣  

一種基于STL模型的切片分層方法.pdf

關 鍵 詞:
一種 基于 STL 模型 切片 分層 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201510244348.X

申請日:

2015.05.14

公開號:

CN104899359A

公開日:

2015.09.09

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 17/50申請日:20150514|||公開
IPC分類號: G06F17/50 主分類號: G06F17/50
申請人: 青島尤尼科技有限公司
發明人: 王紅; 劉啟; 張莉
地址: 266000山東省青島市李滄區北嶗1022號中藝1688創意產業園D2樓205
優先權:
專利代理機構: 青島聯智專利商標事務所有限公司37101 代理人: 邵新華
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510244348.X

授權公告號:

|||

法律狀態公告日:

2015.10.07|||2015.09.09

法律狀態類型:

實質審查的生效|||公開

摘要

本發明提供了一種基于STL模型的切片分層方法,解決現有技術中分層速度慢的技術問題。方法包括確定切片分層數目;確定STL模型的每個三角形面片所在的層數;針對每層切片建立分組矩陣,并生成活性三角形面片表;分組矩陣中包含切片方向與切片平面相交的三角形面片集合;活性三角片表中存儲分組矩陣中所有三角形面片的索引號;基于活性三角形面片表,確定每層中各三角形面片的鄰接關系;對每層切片求交后,結合鄰接關系生成每層切片對應的輪廓環,以得到完整截面輪廓。通過分層建立分組矩陣,并建立分組矩陣的活性三角形面片表,基于鄰接關系,在較小的三角形面片范圍內建立拓撲關系,減少位置判斷次數和計算量,有效提升了分層效率。

權利要求書

權利要求書
1.  一種基于STL模型的切片分層方法,其特征在于,包括:
確定切片分層數目;
確定STL模型的每個三角形面片所在的層數;
針對每層切片建立分組矩陣,并生成活性三角形面片表;所述分組矩陣中包含切片方向與切片平面相交的三角形面片集合;所述活性三角片表中存儲所述分組矩陣中所有三角形面片的索引號;
基于活性三角形面片表,確定每層中各三角形面片的鄰接關系;
對每層切片求交后,結合所述鄰接關系生成每層切片對應的輪廓環,以得到完整截面輪廓。

2.  根據權利要求1所述的基于STL模型的切片分層方法,其特征在于,所述確定切片分層數目,具體為:
確定分層厚度;
根據所述STL模型的高度和所述分層厚度,確定切片分層數目。

3.  根據權利要求2所述的基于STL模型的切片分層方法,其特征在于,所述確定分層厚度,具體為:
計算所述STL模型中,每個三角形面片的最小縱向高度和最大縱向高度;
根據最大縱向高度與最小縱向高度的差值,計算每個三角形面片的縱向高度;
選取最小非零縱向高度作為分層厚度。

4.  根據權利要求3所述的基于STL模型的切片分層方法,其特征在于,所述確定STL模型的每個三角形面片所在的層數,具體為:
若三角形面片的最小縱向高度小于第i層切面的高度,而其最大縱向高度大于所述第i層切面的高度,則所述三角形面片處于第i層;
其中,所述i為從1開始、小于等于分層數目的整數。

5.  根據權利要求1所述的基于STL模型的切片分層方法,其特征在于,所述確定各三角形面片的鄰接關系,具體為:
基于一個三角形面片,確定與其相鄰的三個三角形面片。

6.  根據權利要求5所述的基于STL模型的切片分層方法,其特征在于,所述生成切面輪廓環,具體為:
從第j層切片的活性三角形面片表中的第一個三角形面片開始,計算所述第一個三角形面片與所述第j層切片的交點;
根據三角形面片的鄰接關系,找到與所述第一個三角形面片的鄰接三角形面片,并求出其與所述第j層切片的交點;
根據三角形面片的鄰接關系,找到與所述鄰接三角形面片的鄰接三角形面片,并求出其與所述第j層切片的交點;
根據三角形面片的鄰接關系,直至找到活性三角形面片表中最后一個三角形面片,求出其與所述第j層切面的交點,得到所述切面輪廓環;其中,所述j為從1開始、小于等于分層數目的整數。

7.  根據權利要求1所述的基于STL的切片分層方法,其特征在于,在生成切片輪廓環之后,所述方法還包括:
去除冗余數據點;
保存輪廓環數據;其中所述冗余數據點包括重合點和共線點。

說明書

說明書一種基于STL模型的切片分層方法
技術領域
本發明屬于計算機應用技術領域,具體地說,涉及一種3D打印技術中,基于STL模型的切片分層方法。
背景技術
目前,3D打印領域最常用的打印數據,是通過STL(Stereo Litbography)模型來獲取的。
具體的,是將一個切片平面與整個STL模型由下至上的相交計算一遍,因而判斷某個三角形面片與切片平面是否相交,需要遍歷整個三角形面片集合,計算出交線之后還要進行交線的有序性排列;但,這種算法中,共邊的三角形面片會進行兩次計算,得到的其實是同一個目標點,計算冗余大。雖然在有些算法中,會對整個模型進行拓撲排序,進而簡化獲取交線之后的排序操作,但是,對整個模型進行拓撲排序,本身的計算量就很大,導致了目前對STL模型進行分層的速度偏慢。
發明內容
本發明提供了一種基于STL模型的切片分層方法,通過對STL文件的三角形面片進行分組排序,對三角形面片進行分組矩陣和活性三角形面片表的建立,在較小的范圍內,建立局部的三角形面片鄰接拓撲信息,能夠獲得較高的切片效率,解決現有技術中分層速度慢的技術問題。
為解決上述技術問題,本發明采用以下技術方案予以實現:
提出一種基于STL模型的切片分層方法,包括:確定切片分層數目;確定STL模型的每個三角形面片所在的層數;針對每層切片建立分組矩陣,并生成活性三角形面片表;所述分組矩陣中包含切片方向與切片平面相交的三角形面片集合;所述活性三角片表中存儲所述分組矩陣中所有三角形面片的索引號;基于活性三角形面片表,確定每層中各三角形面片的鄰接關系;對每層切片求交后,結合所述鄰接關系生成每層切片對應的輪廓環,以得到完整截面輪廓。
進一步的,所述確定切片分層數目,具體為:確定分層厚度;根據所述STL模型的高度和所述分層厚度,確定切片分層數目。
進一步的,所述確定分層厚度,具體為:計算所述STL模型中,每個三角形面片的最小縱向高度和最大縱向高度;根據最大縱向高度與最小縱向高度的差值,計算每個三角形面片的縱向高度;選取最小縱向非零高度作為分層厚度。
進一步的,所述確定STL模型的每個三角形面片所在的層數,具體為:若三角形面片的最小縱向高度小于第i層切面的高度,而其最大縱向高度大于所述第i層切面的高度,則所述三角形面片處于第i層;其中,所述i為從1開始、小于等于分層數目的整數。
進一步的,所述確定各三角形面片的鄰接關系,具體為:基于一個三角形面片,確定與其相鄰的三個三角形面片。
進一步的額,所述生成切面輪廓環,具體為:從第j層切片的活性三角形面片表中的第一個三角形面片開始,計算所述第一個三角形面片與所述第j層切片的交點;根據三角形面片的鄰接關系,找到與所述第一個三角形面片的鄰接三角形面片,并求出其與所述第j層切片的交點;根據三角形面片的鄰接關系,找到與所述鄰接三角形面片的鄰接三角形面片,并求出其與所述第j層切片的交點;根據三角形面片的鄰接關系,直至找到活性三角形面片表中最后一個三角形面片,求出其與所述第j層切面的交點,得到所述切面輪廓環;其中,所述j為從1開始、小于等于分層數目的整數。
進一步的,在生成切片輪廓環之后,所述方法還包括:去除冗余數據點;保存輪廓環數據;其中所述冗余數據點包括重合點和共線點。
與現有技術相比,本發明的優點和積極效果是:本發明提出的基于STL的切片分層方法中,首先計算STL模型中所有的三角形面片的縱向高度,手動設定分層厚度,或者選取最小縱向非零高度作為切片分層厚度,根據分層厚度能夠確定分層數目,針對每個分層建立分組矩陣,并生成存儲分組矩陣中所有三角形面片的索引號的活性三角形面片表;分組矩陣中,包含切片方向與切片平面相交的三角形面片的集合;該分組矩陣的建立,降低了對STL模型所有三角形面片位置排序的運算量,而活性三角形面片表的建立,保證了在切片處理過程中,只有活性三角形面片表中的三角形面片參與和切片平面的求交計算,減少了進行三角形面片與切片平面位置關系判斷的次數;根據鄰接關系,尋找活性三角形面片表中每個三角形面片的鄰接三角形面片,能夠縮小搜索比較范圍,有效減少建立拓撲關系的工作量,因此,對于每個與切片平面相交的三角形面片,只需計算一個邊的交點,基于鄰接關系,與三角形面片鄰接的三角形面片可以繼承其一個交點,即兩個相鄰三角形面片的共邊與切片平面的交點只需計算一次,能顯著減少計算量;在切片過程中可直接獲得有向封閉的輪廓環,避免了交線段連接關系的搜索判斷;基于上述改善,本發明提出的方法基于減少的計算量和判斷次數,有效提高了分層速度,解決了現有技術中分層速度慢的技術問題。
結合附圖閱讀本發明實施方式的詳細描述后,本發明的其他特點和優點將變得更加清楚。
附圖說明
圖1為本發明實施例提出的基于STL模型的切片分層方法流程圖;
圖2為本發明實施例中三角形面片與切片平面的位置關系圖;
圖3為本發明實施例中提出的活性三角形面片表的建立示意圖。
具體實施方式      
本發明的設計思路在于,對STL模型整體分組排序,借助活性三角形面片表和鄰接關系,在較小的三角形面片范圍內建立拓撲關系,在此基礎試上再進行切片平面與三角形面片的相交計算,能夠減少切面平面與三角形面片的位置判斷次數,然后對交線進行排序,獲得有序的輪廓環,以便于打印,能夠顯著提升分層速度。
下面結合附圖對本發明的具體實施方式作進一步詳細地說明。
如圖1所示,為本發明實施例提出的基于STL模型的切片分層方法流程圖,包括如下步驟:
步驟S11:確定切片分層數目。
確定切片分層數目是根據分層厚度決定的,確定分層厚度后,根據STL模型的高度和分層的厚度,例如將STL模型的高度與分層厚度相除,可以確定切片的分層數目;而確定分層厚度的依據是:首先計算STL模型中,每個三角形面片的最小縱向高度和最大縱向高度,然后根據最大縱向高度與最小縱向高度的差值得到每個三角形面片的縱向高度,選取所有縱向高度中最小縱向非零高度值作為分層厚度,也即能夠保證即使是具有最小縱向高度的三角形面片,也能夠與切片平面相切;或者,根據實際情況手動設定分層厚度也可。
步驟S12:確定STL模型的每個三角形面片所在的層數。
該步驟的目的在于建立分組矩陣,使得每個分組矩陣中包含與一個切片平面相交的所有三角形面片,因此,在此之前,需要確定每一個三角形面片所處的層數。
假設STL模型的縱向坐標,也即通常所指的Z軸坐標的最小值為零,若不為零,可以通過坐標平移變換成為零,然后根據每個三角形面片的最小縱向高度Zmin來確定其最先出現在哪一層。
令Zi(i=1,2,…,n)表示第i層切片平面的縱向高度,則與第i層切片平面相切的三角形面片滿足以下關系:Zi-1≤Zmin<Zi且Zmax≥Zi,如圖2中的三角形面片a所示,也即,若三角形面片的最小縱向高度小于第i層切面的高度,而其最大縱向高度大于第i層切面的高度,則該三角形面片處于第i層,這其中,i為從1開始、小于等于分層數目n的整數。
一些特殊情況的處理如下:當存在滿足Zi-1≤Zmin<Zmax<Zi或Zi-1< Zmin=Zmax<Zi的三角形面片時,如圖2所示的三角形面片b,其本身不與切片平面相交,若將其丟棄,會導致模型上微小特征丟失,這也是步驟S11中選取所有縱向高度中最小縱向高度值作為分層厚度的原因,需要保證分層厚度小于、至少等于最小縱向高度,以實現保留模型上的微小特征。對于Zi-1=Zmin=Zmax或者Zi= Zmin=Zmax的三角形面片,則根據正確描述STL模型的三角形面片所具備的性質及交線計算時的處理方法,可將其丟棄。
當模型中所有的三角形面片的層數確定后,即可以建立分組矩陣了。
步驟S13:針對每層切片建立分組矩陣,并生成活性三角形面片表。
由上可知,分組矩陣中包含切片方向與切片平面相交的三角形面片集合;其分組依據就是根據STL模型中每個三角形面片的最小縱向高度與最大縱向高度建立,當每個三角形面片所處的層數確定后,處于同一層的三角形面片即組成了一個分組矩陣。
如圖3所示,可以使用一個二維的數組來存放與一個切片平面相交的所有三角形面片的索引號,例如Ti=(ti1, ti2, ti3, ti4………),其中,i為切片平面的層數,從1至n,每個t對應一個索引號,也即針對每一個分組矩陣建立一個活性三角形面片表,活性三角形面片表中存儲對應分組矩陣中所有三角形面片的索引號;該索引號對應STL模型文件中讀取三角形面片數據時的三角形面片的索引號。實際使用中,可以設置一個動態的二維數組,在由下至上切的過程中,每打印一層時,動態更新二維數組的數值。
步驟S14:基于活性三角形面片表,確定每層中各三角形面片的鄰接關系。
這里的三角形面片的鄰接關系,是指與一個三角形面片與與其相鄰的三個三角形面片之間的位置關系。
每個分組矩陣中的所有三角形面片,每個三角形面片都具備三個與其相鄰的三個三角形面片,這三個相鄰的三角形面片中,可能會存在與該三角形面片處于同一個分組矩陣的三角形面片。
步驟S15:對每層切片求交后,結合鄰接關系生成每層切片對應的輪廓環,以得到完整截面輪廓。
具體的,從第j層切片平面開始,j為從1開始、直至切片分層n的整數,執行切片求交算法。
在求交過程中,首先計算活性三角形面片中第1個與該切片平面相交的三角形面片的交點坐標,其在活性三角形面片表中對應tj1,然后根據其鄰接關系找到與其相鄰的三個三角形面片,這三個三角形面片中,與切片平面相交的三角形面片可能是一個,也可能是兩個,在固定順時針或者逆時針方向搜索時,與切片平面相交的相鄰三角形面片為一個或者沒有,例如為tj2,求出其與切片平面的交點,
然后繼續根據三角形面片的鄰接關系,找到與該鄰接的三角形面片鄰接的三角形面片,例如可能是tj3,并求出其與切片平面的交點;如此根據三角形面片的鄰接關系,繼續找鄰接的三角形面片求交點,直至找到活性三角形面片表中最后一個三角形面片,求出其與切片平面的交點,由此得到一個有向的封閉切面輪廓環。
這種根據三角形面片的鄰接關系建立的拓撲關系,能夠在較小的三角形面片范圍內建立拓撲關系,大量減少切片平面與三角形面片的位置判斷次數,從而提升分層速度,提高工作效率。
與一層切片平面相交的三角形面片中,可能形成不止一個輪廓環,因此,需要在計算出一個輪廓環之后,對比活性三角形面片表,找出沒有計算出輪廓環的三角形面片的索引號,重復上述過程計算輪廓環,直至一個切面的所有輪廓環計算完畢,最終得到一層完整的截面輪廓。
從第一層開始,直至第n層,重復上述過程,得到n層輪廓環,最終得到STL模型的完整輪廓。
在生成切片輪廓環之后,還需要去除諸如重合點和共線點的冗余數據點,然后將處理之后的輪廓環數據保存,以供打印使用。
上述本發明實施例提出的基于STL模型的切片分層方法,通過分層建立分組矩陣,并對每個分組矩陣建立活性三角形面片表,根據活性三角形面片表中的三角形面片的鄰接關系,建立小范圍三角形面片的拓撲關系,縮小搜索比較范圍,以此來減少切片平面與三角形面片的位置判斷次數,明顯的提升了分層的速度。對于每個與切片平面相交的三角形面片,只需計算一個交點,鄰接的三角形面片繼承鄰接面片的一個交點,也即共邊的三角形面片與切片平面只計算一個交點,減少了計算量,有效提高使用STL模型打印的效率。
應該指出的是,上述說明并非是對本發明的限制,本發明也并不僅限于上述舉例,本技術領域的普通技術人員在本發明的實質范圍內所做出的變化、改型、添加或替換,也應屬于本發明的保護范圍。

關于本文
本文標題:一種基于STL模型的切片分層方法.pdf
鏈接地址:http://www.wwszu.club/p-6369797.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大