本發(fā)明涉及3D打印技術中三維模型結構優(yōu)化技術,具體涉及一種距離引導下的自適應混合支撐結構生成方法。
背景技術:隨著美國《時代》周刊將3D打印技術列為“美國十大增長最快的工業(yè)”,3D打印技術的發(fā)展呈現(xiàn)出快速增長勢頭。3D打印技術是一種新興的快速成型技術,是一種以數(shù)字模型文件為基礎,運用粉末狀金屬或塑料等粘合材料,通過逐層打印的方式來構造物體的技術。從行業(yè)分布來看,用于消費電子領域的打印技術仍然占主導地位,大約占20.3%的市場份額,其他主要領域依次是汽車(19.5%)、醫(yī)療和醫(yī)科(15.1%)、工業(yè)及商用機器(10.8%);從區(qū)域分布來看,北美地區(qū)(40.2%)、歐洲(29.1%)、亞洲(26.3%)三大區(qū)域占主導地位,其中亞洲地區(qū)主要集中于日本(38.7%)及中國(32.9%)。3D打印機誕生于20世紀80年代中期,是由美國科學家最早發(fā)明的。3D打印機是指利用3D打印技術生產(chǎn)出真實三維物體的一種設備,其基本原理是利用特殊的耗材(膠水、樹脂或粉末等)按照由電腦預先設計好的三維立體模型,通過黏結劑的沉積將每層粉末黏結成型,最終打印出3D實體。目前市場上的快速成型技術已經(jīng)有數(shù)十種,其中主要工藝有熔融沉積制造技術(FusedDepositionModeling,F(xiàn)DM),立體平板印刷技術(StereoLithographyApparatus,SLA),選擇性激光燒結技術(SelectedLaserSintering,SLS),激光成型技術(DigitalLightingProcess,DLP),疊層實體制造技術(LaminatedObjectManufacturing,LOM)和UV紫外線成型技術等。3D打印技術工藝的上可以描述為一種增材制造的技術,對于普通3D打印機,由于所打印的耗材的性質(zhì)所限,打印機都必需在一個水平的打印平臺上進行。而且如果打印物有懸垂結構的話,則必需在打印材料的基礎上另外增加支撐結構來防止打印時材料塌陷造成造型失敗。因此有關3D打印支撐結構設計技術的相關研究應運而生,一些開源的、商用的3D打印軟件生成的支撐結構過于密集,而且是未經(jīng)優(yōu)化的柱狀支撐結構,打印后不僅浪費大量打印材料,而且不易剔除。J.Vanek提出了一種樹型的支撐結構,所有支撐點均由上開始兩兩向下延伸產(chǎn)生樹枝狀結構,產(chǎn)生節(jié)點,再由節(jié)點繼續(xù)向下生成柱狀結構,最終延伸至底層。此種方法的優(yōu)點是對頂層密集的支撐點支撐效果比較好,非常省材料,但缺點是對不對稱的模型,支撐不穩(wěn)固,可打印性差。DumasJ提出了一種腳手架型的支撐結構,該結構由橫縱交錯的橋型框架組成,由橋的橫梁承載大部分支撐點。此種方法的優(yōu)點是對于多樣化的模型具有較好的結構穩(wěn)定性。但缺點是橋型結構橫梁的跨度不易過長,否則會出現(xiàn)一定幾率的下垂,造成整體結構變形。建筑行業(yè)還使用一種桁架結構,穩(wěn)定性強,并且可用作連接多個部件。還有一些人提出類似于上述兩種類型的方法,但始終沒有較好的方法保證從細節(jié)到整體的全方位穩(wěn)固,并且相對減少支撐結構材料用量。通過對已有的支撐結構進行實驗分析,最后得出本發(fā)明提出的一種距離引導下的自適應混合支撐結構生成方法。
技術實現(xiàn)要素:本發(fā)明提供一種距離引導下的自適應混合支撐結構生成方法,該方法可以對三維模型生成一種混合的支撐結構。為了實現(xiàn)上述問題,本發(fā)明提供了一種距離引導下的自適應混合支撐結構生成方法,該方法具體包括:A、支撐懸點檢測,載入一個三維模型,該模型是無孔洞、無邊緣邊、無翻轉(zhuǎn)三角面的,對輸入的三維模型首先獲取所有三角面片的頂點坐標、三角面片的法向量,之后篩選法向量在設定的閾值范圍內(nèi)的三角面片及面片的頂點坐標,再對篩選出的三角面片的三個頂點分別求取其重心作為初始的支撐懸點,可以減少處理數(shù)據(jù)量。針對部分模型由于底面不平產(chǎn)生的冗余支撐懸點,利用閾值約束的方法對這部分無效點進行過濾。最終得到優(yōu)化后的支撐點。B、支撐結構生成器,可生成三種不同類型的支撐結構,第一種為樹型結構(Treestructure),將支撐點集進行等間距采樣,間距為可以自支撐的閾值間距,得到的采樣點作為樹型結構的支撐點集,每相鄰兩支撐點向內(nèi)側斜向下延伸兩條支柱,兩支柱相交于一點作為節(jié)點,由此節(jié)點向垂直下方延伸一條支柱,從而構成一個標準的樹型結構;第二種結構為腳手架型結構(Scaffoldingstructure),首先將支撐點集分別向下生成小的柱狀支柱,之后在支柱下方自適應地橫縱生成若干橋型(Bridgestructure)結構,支柱末端與橋型結構的橫梁相接,從而構成一個標準的橋型結構。第三種為簡單桁架支撐結構,由一個基本膠結三角形依次增加二元體組成的支撐結構。C、混合支撐結構生成,使用A步驟得到的優(yōu)化后的支撐點作為訓練樣本,首先對其進行K-means聚類,聚類后得到的k個簇,然后分別對每個簇中的支撐點集計算歐式距離,并求均值,得到的均值若小于閾值,則選用B步驟中的樹型結構作為此部分支撐點的支撐結構,若大于等于閾值且,則選用腳手架型結構作為此部分支撐點的支撐結構。另外,若簇中的支撐點數(shù)量小于2,或者腳手架型支撐結構已迭代完畢,則開始選用簡單桁架支撐結構作為支撐點的支撐結構。以上判定方法中如遇到使用樹型支撐結構作為支撐點時,樹型的主干支柱末端作為新的支撐點,組成的點集繼續(xù)迭代上述混合支撐結構生成步驟,直至迭代為所有新生支撐點均為腳手架型支撐結構。當腳手架型支撐結構迭代完畢后,將該層腳手架末端節(jié)點和支撐節(jié)點進行記錄,待坐標范圍內(nèi)出現(xiàn)另一組最鄰近的節(jié)點后,在兩組節(jié)點間使用簡單桁架結構進行連接。所述步驟A具體包括:A1、首先將三維模型文件載入,文件格式為.stl。載入的模型為無孔洞、無邊緣邊、無翻轉(zhuǎn)三角面的;A2、對于用戶在A1步驟中載入的三維模型,首先獲取所有三角面片(Facet)的頂點坐標、三角面片的法向量;A3、篩選A2步驟中得到的所有三角面片的法向量的值在設定的法向量閾值范圍內(nèi)的所有三角面片;A4、提取A3步驟中篩選過后得到的三角面片集,將每個三角面片的三個頂點分別求取其重心作為初始的支撐懸點,以減小處理數(shù)量;A5、對于A4步驟中得到的初始支撐懸點,部分模型由于底面不平會產(chǎn)生冗余支撐懸點,可以利用閾值約束的方法對這部分無效點進行過濾。所述步驟B具體包括:B1、用戶可通過支撐結構生成器,生成三種不同類型的支撐結構;B2、使用B1步驟中支撐結構生成器生成一種樹型結構(Treestructure)的支撐結構,如圖2所示。即將支撐點集進行等間距采樣,間距為可以自支撐的閾值間距,得到的采樣點作為樹型結構的支撐點集,每相鄰兩支撐點向內(nèi)側斜向下延伸兩條支柱,兩支柱相交于一點作為節(jié)點,由此節(jié)點向垂直下方延伸一條支柱,從而構成一個標準的樹型結構,如圖3所示;B3、使用B1步驟中支撐結構生成器生成一種腳手架型結構(Scaffoldingstructure)的支撐結構,如圖5所示。即首先將支撐點集分別向下生成小的柱狀支柱,之后在支柱下方自適應地橫縱生成若干橋型(Bridgestructure)結構,縱橫延伸方式如圖4所示,支柱末端與橋型結構的橫梁相接,從而構成一個標準的橋型結構。B4、使用B1步驟中支撐結構生成器生成一種簡單桁架結構,由一個基本膠結三角形依次增加二元體組成的支撐結構,如圖6。B5、選用B2、B3、B4步驟中的哪種支撐結構,由步驟C中的算法決定。所述步驟C具體包括:C1、使用A5步驟得到的優(yōu)化后的支撐點作為訓練樣本,首先對其進行K-means聚類,聚類后得到k個簇(cluster)。K-means聚類算法,也被稱為k-平均或k-均值算法,是一種廣泛使用的聚類算法。它是將各個聚類子集內(nèi)的所有數(shù)據(jù)樣本的均值作為聚類的代表點,算法的主要思想是通過迭代過程把數(shù)據(jù)集劃分為不同的類別,使得評價聚類性能的準則函數(shù)達到最優(yōu),從而使生成的每個簇內(nèi)緊湊,類間獨立。如圖8所示。K-means算法具體算法描述如下:首先通過A5步驟得到優(yōu)化后的支撐點作為訓練樣本{x(1),...,x(m)},每個樣本x(i)∈Rn。1.隨機選取k個聚類質(zhì)心點(clustercentroids)為μ1,μ2,...,μk∈Rn。2.重復下面的過程直至收斂:對于每一個樣例i(i∈Z+),計算其應屬于的類:對于每一個類j(j∈Z+),重新計算該類的質(zhì)心:k為預先設定的聚類數(shù),c(i)代表樣例i與k個類中距離最近的那個類,c(i)的值是1到k中的一個。質(zhì)心μj代表對同屬一個類的樣本中心點的預測。C2、對C1步驟得到的k個簇中的支撐點集計算歐式距離,并求均值。C3、對C2步驟得到的均值與設定的閾值進行比較,若小于閾值,則選用B2中的樹型結構作為此部分支撐點的支撐結構。C4、對C2步驟得到的均值與設定的閾值進行比較,若大于等于閾值,則選用B3中的腳手架型結構作為此部分支撐點的支撐結構。C5、對C1步驟得到的k個簇中,若簇中支撐點個數(shù)小于2,或者腳手架型支撐結構已迭代完畢,則開始選用簡單桁架支撐結構作為支撐點的支撐結構。C6、對于C3、C4、C5的判定步驟中若使用了C3步驟生成的樹型支撐結構,則將樹型的主干支柱末端作為新的支撐點,組成的新的點集繼續(xù)迭代C3、C4、C5中的步驟,直至迭代為所有新生支撐點集均判定并使用C4或C5步驟中的支撐結構為止。若C4步驟中的腳手架型支撐結構迭代完畢,將該層腳手架末端節(jié)點和支撐節(jié)點進行記錄,待坐標范圍內(nèi)出現(xiàn)另一組最鄰近的節(jié)點后,在兩組節(jié)點間使用簡單桁架結構進行連接,如圖7所示。與現(xiàn)有技術相比,本發(fā)明提出的方法具有如下有益效果。1)節(jié)省性,優(yōu)化后生成的自適應的混合支撐結構比普通單一支撐結構更加節(jié)省材料用量。2)穩(wěn)定性,使用聚類算法合理的將支撐點采用何種支撐結構進行聚類,由此優(yōu)化后的混合支撐結構,很好的利用不同支撐方法的優(yōu)點來彌補其它方法的缺點,尤其在結構上的混合,使支撐點的應力可以均勻的分散到整體的支撐結構上。3)可打印性,由距離引導的自適應混合支撐結構,能夠適用于絕大部分未經(jīng)過優(yōu)化處理的模型,適用性強,一次打印成功率高。因此,本發(fā)明具有一定的應用價值和意義。附圖說明圖1為距離引導下的自適應混合支撐結構生成方法的分析流程圖。圖2為樹形支撐結構示意圖。圖3為樹形支撐結構作用于支撐懸點示意圖,其中圖(a)為樹形支撐結構俯視圖,圖(b)為樹形結構正視圖。圖4為腳手架結構節(jié)點處的三種基本連接結構示意圖。其中(a)為第一種腳手架結構節(jié)點處的基本連接結構示意圖,(b)為第二種腳手架結構節(jié)點處的基本連接結構示意圖,(c)為第一種腳手架結構節(jié)點處的基本連接結構示意圖圖5為腳手架支撐結構示意圖。圖6為平面簡單桁架支撐結構示意圖。圖7為立體簡單桁架支撐結構示意圖。圖8為使用K-means算法對支撐點進行聚類結果圖,其中圖(a)為聚類前的支撐點集,圖(b)為經(jīng)聚類后的聚類結果,支撐點集簇。具體實施方式一種距離引導下的自適應混合支撐結構生成方法,該方法具體包括:A、支撐懸點檢測,載入一個三維模型,該模型最好是無孔洞、無邊緣邊、無翻轉(zhuǎn)三角面的,對輸入的三維模型首先獲取所有三角面片的頂點坐標、三角面片的法向量,之后篩選法向量在設定的閾值范圍內(nèi)的三角面片及面片的頂點坐標,再對篩選出的三角面片的三個頂點分別求取其重心作為初始的支撐懸點,可以減少處理數(shù)據(jù)量。針對部分模型由于底面不平產(chǎn)生的冗余支撐懸點,利用閾值約束的方法對這部分無效點進行過濾。最終得到優(yōu)化后的支撐點。B、支撐結構生成器,可生成三種不同類型的支撐結構,第一種為樹型結構(Treestructure),將支撐點集進行等間距采樣,間距為可以自支撐的閾值間距,得到的采樣點作為樹型結構的支撐點集,每相鄰兩支撐點向內(nèi)側斜向下延伸兩條支柱,兩支柱相交于一點作為節(jié)點,由此節(jié)點向垂直下方延伸一條支柱,從而構成一個標準的樹型結構;第二種結構為腳手架型結構(Scaffoldingstructure),首先將支撐點集分別向下生成小的柱狀支柱,之后在支柱下方自適應地橫縱生成若干橋型(Bridgestructure)結構,支柱末端與橋型結構的橫梁相接,從而構成一個標準的橋型結構。第三種為簡單桁架支撐結構,由一個基本膠結三角形依次增加二元體組成的支撐結構。C、混合支撐結構生成,使用A步驟得到的優(yōu)化后的支撐點作為訓練樣本,首先對其進行K-means聚類,聚類后得到的k個簇,然后分別對每個簇中的支撐點集計算歐式距離,并求均值,得到的均值若小于閾值,則選用B步驟中的樹型結構作為此部分支撐點的支撐結構,若大于等于閾值,則選用腳手架型結構作為此部分支撐點的支撐結構。另外,若簇中的支撐點數(shù)量小于2,或者腳手架型支撐結構已迭代完畢,則開始選用簡單桁架支撐結構作為支撐點的支撐結構。以上判定方法中如遇到使用樹型支撐結構作為支撐點時,樹型的主干支柱末端作為新的支撐點,組成的點集繼續(xù)迭代上述混合支撐結構生成步驟,直至迭代為所有新生支撐點均為腳手架型支撐結構。當腳手架型支撐結構迭代完畢后,將該層腳手架末端節(jié)點和支撐節(jié)點進行記錄,待坐標范圍內(nèi)出現(xiàn)另一組最鄰近的節(jié)點后,在兩組節(jié)點間使用簡單桁架結構進行連接。所述步驟A具體包括:A1、首先將三維模型文件載入,文件格式為.stl。載入的模型為無孔洞、無邊緣邊、無翻轉(zhuǎn)三角面的;A2、對于用戶在A1步驟中載入的三維模型,首先獲取所有三角面片(Facet)的頂點坐標、三角面片的法向量;A3、篩選A2步驟中得到的所有三角面片的法向量的值在設定的法向量閾值范圍內(nèi)的所有三角面片;A4、提取A3步驟中篩選過后得到的三角面片集,將每個三角面片的三個頂點分別求取其重心作為初始的支撐懸點,以減小處理數(shù)量;A5、對于A4步驟中得到的初始支撐懸點,部分模型由于底面不平會產(chǎn)生冗余支撐懸點,可以利用閾值約束的方法對這部分無效點進行過濾。所述步驟B具體包括:B1、用戶可通過支撐結構生成器,生成三種不同類型的支撐結構;B2、使用B1步驟中支撐結構生成器生成一種樹型結構(Treestructure)的支撐結構,如圖2所示。即將支撐點集進行等間距采樣,間距為可以自支撐的閾值間距,得到的采樣點作為樹型結構的支撐點集,每相鄰兩支撐點向內(nèi)側斜向下延伸兩條支柱,兩支柱相交于一點作為節(jié)點,由此節(jié)點向垂直下方延伸一條支柱,從而構成一個標準的樹型結構,如圖3所示;B3、使用B1步驟中支撐結構生成器生成一種腳手架型結構(Scaffoldingstructure)的支撐結構,如圖5所示。即首先將支撐點集分別向下生成小的柱狀支柱,之后在支柱下方自適應地橫縱生成若干橋型(Bridgestructure)結構,縱橫延伸方式如圖4所示,支柱末端與橋型結構的橫梁相接,從而構成一個標準的橋型結構。B4、使用B1步驟中支撐結構生成器生成一種簡單桁架結構,由一個基本膠結三角形依次增加二元體組成的支撐結構,如圖6。B5、選用B2、B3、B4步驟中的哪種支撐結構,由步驟C中的算法決定。所述步驟C具體包括:C1、使用A5步驟得到的優(yōu)化后的支撐點作為訓練樣本,首先對其進行K-means聚類,聚類后得到的k個簇(cluster)。K-means聚類算法,也被稱為k-平均或k-均值算法,是一種廣泛使用的聚類算法。它是將各個聚類子集內(nèi)的所有數(shù)據(jù)樣本的均值作為聚類的代表點,算法的主要思想是通過迭代過程把數(shù)據(jù)集劃分為不同的類別,是的評價聚類性能的準則函數(shù)達到最優(yōu),從而使生成的每個簇內(nèi)緊湊,類間獨立。如圖8所示。K-means算法具體算法描述如下:首先通過A5步驟得到優(yōu)化后的支撐點作為訓練樣本{x(1),...,x(m)},每個樣本x(i)∈Rn。1.隨機選取k個聚類質(zhì)心點(clustercentroids)為μ1,μ2,...,μk∈Rn。2.重復下面的過程直至收斂:對于每一個樣例i(i∈Z+),計算其應屬于的類:對于每一個類j(j∈Z+),重新計算該類的質(zhì)心:k為預先設定的聚類數(shù),c(i)代表樣例i與k個類中距離最近的那個類,c(i)的值是1到k中的一個。質(zhì)心μj代表對同屬一個類的樣本中心點的預測。C2、對C1步驟得到的k個簇中的支撐點集計算歐式距離,并求均值。C3、對C2步驟得到的均值與設定的閾值進行比較,若小于閾值,則選用B2中的樹型結構作為此部分支撐點的支撐結構。C4、對C2步驟得到的均值與設定的閾值進行比較,若大于等于閾值,則選用B3中的腳手架型結構作為此部分支撐點的支撐結構。C5、對C1步驟得到的k個簇中,若簇中支撐點個數(shù)小于2,或者腳手架型支撐結構已迭代完畢,則開始選用簡單桁架支撐結構作為支撐點的支撐結構。C6、對于C3、C4、C5的判定步驟中若使用了C3步驟生成的樹型支撐結構,則將樹型的主干支柱末端作為新的支撐點,組成的新的點集繼續(xù)迭代C3、C4、C5中的步驟,直至迭代為所有新生支撐點集均判定并使用C4或C5步驟中的支撐結構為止。若C4步驟中的腳手架型支撐結構迭代完畢,將該層腳手架末端節(jié)點和支撐節(jié)點進行記錄,待坐標范圍內(nèi)出現(xiàn)另一組最鄰近的節(jié)點后,在兩組節(jié)點間使用簡單桁架結構進行連接,如圖7所示。