徐文鵬,苗龍濤,侯守明,強(qiáng)曉煥,曾艷陽(yáng)
?
基于體素模型的3D打印支撐算法
徐文鵬1,苗龍濤1,侯守明1,強(qiáng)曉煥2,曾艷陽(yáng)1
(1. 河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454100;2. 河南理工大學(xué)測(cè)繪與國(guó)土信息工程學(xué)院,河南 焦作 454100)
3D打印技術(shù)是通過(guò)對(duì)材料的逐層堆積來(lái)構(gòu)建物體,但對(duì)模型懸空的區(qū)域需要添加支撐結(jié)構(gòu)。支撐結(jié)構(gòu)不僅會(huì)造成打印材料的浪費(fèi),而且會(huì)延長(zhǎng)打印時(shí)間并對(duì)模型外表有所損傷。為此,提出一種基于體素模型的支撐算法,針對(duì)體素化后的模型,分析體素之間的相互支撐作用,并引入體素支撐能量函數(shù)概念和計(jì)算方法,計(jì)算出需要添加支撐的體素,從而得到需要添加支撐結(jié)構(gòu)的區(qū)域,并由該區(qū)域生成支撐結(jié)構(gòu),之后通過(guò)實(shí)驗(yàn)對(duì)算法進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果顯示該算法能夠更加準(zhǔn)確地對(duì)模型生成支撐,同時(shí),基于體素模型的支撐算法對(duì)于模型內(nèi)部支撐計(jì)算,也具有很好的適用性。
3D打??;體素模型;支撐能量函數(shù);支撐算法
3D打印是一種以數(shù)字模型為基礎(chǔ),運(yùn)用各種可粘結(jié)材料逐層堆積的快速成型技術(shù),在實(shí)際工作中,打印軟件將輸入模型逐層切片,規(guī)劃打印路徑,再由3D打印機(jī)將材料逐層粘合,從而構(gòu)建物體。與傳統(tǒng)制造技術(shù)相比,3D打印這種獨(dú)特的加工方式,可以構(gòu)建任意復(fù)雜結(jié)構(gòu)及形狀的產(chǎn)品,大大降低了制造約束條件;同時(shí),復(fù)雜的產(chǎn)品生產(chǎn)過(guò)程,被簡(jiǎn)化為打印機(jī)自動(dòng)加工,減少了人工操作,也降低了產(chǎn)品制造對(duì)工人技能的要求,此外,3D打印可以很方便地訂制各種產(chǎn)品,滿足人們的個(gè)性化需求。正是基于這些優(yōu)點(diǎn),近年來(lái),隨著3D打印技術(shù)迅速發(fā)展,新的產(chǎn)品及技術(shù)如雨后春筍般出現(xiàn),同時(shí),也為3D打印的數(shù)字幾何處理帶來(lái)新的研究問(wèn)題[1-2],其中為模型添加支撐結(jié)構(gòu)就是一個(gè)重要研究的問(wèn)題。
3D打印是通過(guò)對(duì)材料的逐層堆積構(gòu)建物體,而對(duì)于物體懸空的區(qū)域來(lái)說(shuō),常見(jiàn)的熔融沉積型打印機(jī)(FDM)、光固化成型打印機(jī)(SLA)、數(shù)字光處理成型打印機(jī)(DLP)和激光選區(qū)熔化型打印機(jī)(SLM)等都不能很好地使材料成型,需要在這些區(qū)域底部添加支撐結(jié)構(gòu)來(lái)保證模型正常打印,并在打印結(jié)束之后去除支撐。支撐結(jié)構(gòu)會(huì)造成材料的浪費(fèi),增加打印成本;由于支撐結(jié)構(gòu)與模型表面粘連,去除支撐結(jié)構(gòu)會(huì)對(duì)模型表面造成操作,影響模型外觀;另外,支撐結(jié)構(gòu)還會(huì)延長(zhǎng)打印時(shí)間,降低工作效率。因此,如何盡可能地減少或優(yōu)化支撐結(jié)構(gòu),就顯得尤為重要。
在此背景之下,本文提出一種基于體素模型的支撐算法。該算法根據(jù)打印機(jī)精度,對(duì)模型體素化處理,得到體素模型。再根據(jù)體素層與層之間的相互支撐作用,來(lái)模擬3D打印逐層堆積的工作原理,并引入支撐能量概念和計(jì)算方法,計(jì)算體素支撐能量,以體素能量大小為判斷標(biāo)準(zhǔn),來(lái)判斷需要添加支撐的體素,從而得到需要添加支撐的區(qū)域,再根據(jù)此區(qū)域來(lái)完成支撐生成任務(wù)。
關(guān)于3D打印支撐這一問(wèn)題,已有眾多學(xué)者對(duì)其進(jìn)行研究,大體分為兩個(gè)研究方向:①通過(guò)選取更好的打印方向,來(lái)減少支撐的生成;②選取更為優(yōu)良的支撐結(jié)構(gòu)型式來(lái)生成支撐。RATTANAWONG等[3]通過(guò)對(duì)基本幾何體(四面體、立方體、圓錐體等)的分析驗(yàn)證,得到最佳的打印方向,以此來(lái)確定由基本幾何體組成的復(fù)雜幾何體的打印方向。但是該種方案僅能夠解決復(fù)雜度較低的幾何體,對(duì)于一些復(fù)雜的工藝模型,該種方案并不能有很好的效果。ZHANG等[4]構(gòu)建一個(gè)可以感知模型重要區(qū)域的系統(tǒng),該系統(tǒng)依靠雙層極限學(xué)習(xí)機(jī)制,并結(jié)合已知的一些判斷依據(jù),可以感知出模型的重要視覺(jué)特性,在此基礎(chǔ)上,通過(guò)優(yōu)化打印方向,避免支撐結(jié)構(gòu)出現(xiàn)在模型的重要區(qū)域,防止模型的重要特征受到損傷。SANATI等[5]提出一種基于帕累托(Pareto)的優(yōu)化算法,該算法主要用于優(yōu)化模型打印方向。算法首先求出單個(gè)打印性能的最優(yōu)解,再利用多目標(biāo)遺傳算法來(lái)優(yōu)化這些性能,最終在保證模型的打印時(shí)間、支撐數(shù)量及模型的表面光潔度的要求下,得到最佳的打印方向。該種算法針對(duì)工業(yè)上的機(jī)械零件,具有很好的優(yōu)化效果。STRANO等[6]通過(guò)優(yōu)化打印方向,減少支撐結(jié)構(gòu)的生成,利用3D隱式函數(shù),以胞格結(jié)構(gòu)為支撐型式來(lái)生成疏密不同的支撐結(jié)構(gòu),這種結(jié)構(gòu)易于從模型表面剝除,減少對(duì)模型的表面的損傷。WANG等[7]受到建筑工程桁架結(jié)構(gòu)的啟發(fā),提出蒙皮-剛架結(jié)構(gòu),采用稀疏的桿件相連接對(duì)模型的內(nèi)部空間進(jìn)行優(yōu)化,并通過(guò)一個(gè)評(píng)價(jià)函數(shù)來(lái)檢測(cè)模型的懸空點(diǎn),之后采用支撐柱的結(jié)構(gòu)型式,連接懸空點(diǎn)與最近可打印點(diǎn),在保證模型可打印的同時(shí),大大減少了材料的消耗。陳巖等[8]在此基礎(chǔ)上,對(duì)其進(jìn)行改進(jìn),通過(guò)對(duì)網(wǎng)格模型采樣,并經(jīng)大量測(cè)試,提出利用能量函數(shù)來(lái)尋找需要添加支撐的點(diǎn)集,并對(duì)支撐端口進(jìn)行優(yōu)化,減少支撐桿與模型表面接觸面積,從而使得支撐易于剝除,保護(hù)模型外觀不受傷害。VANEK等[9]通過(guò)選取合適的打印方向,使得需要添加支撐的區(qū)域面積最小,之后采用漸近優(yōu)化算法,來(lái)保證生成支撐的總長(zhǎng)度最小,并借鑒Autodesk Meshmixer的支撐結(jié)構(gòu)型式,生成一種類似的樹狀支撐結(jié)構(gòu)。宋國(guó)華等[10]提出采用對(duì)稱的樹狀分枝結(jié)構(gòu)型式來(lái)生成支撐,增加支撐結(jié)構(gòu)的穩(wěn)定性,提高打印模型的成功率。HERGEL和LEFEBVRE[11]發(fā)現(xiàn)腳手架具有更好的穩(wěn)定性和更高的支撐強(qiáng)度,于是提出一種類似于腳手架的支撐結(jié)構(gòu)型式,利用梁柱構(gòu)件來(lái)生成支撐,支撐結(jié)構(gòu)具有很好的支撐強(qiáng)度和穩(wěn)定性。HU等[12]通過(guò)優(yōu)化打印方向,并對(duì)模型表面進(jìn)行適當(dāng)優(yōu)化,來(lái)增加模型表面的自支撐部分,從而達(dá)到減少支撐結(jié)構(gòu)的目的。
盡管當(dāng)前已有眾多學(xué)者對(duì)支撐問(wèn)題進(jìn)行研究,但傳統(tǒng)的支撐算法主要分為兩類:①根據(jù)模型表面三角面片的傾斜角度[13],即通過(guò)計(jì)算所有懸空并且法線與垂直方向夾角較小的面片,并通過(guò)對(duì)些面片采樣來(lái)生成支撐,這在一些常見(jiàn)的3D打印軟件Meshmixer (http://www.meshmixer.com/)、Magics(http://www.materialise.com/)和Cura(http:// www.ultimaker.com/)中都有應(yīng)用;②將模型數(shù)據(jù)切片[14-15],通過(guò)對(duì)相鄰兩層切片作布爾差分運(yùn)算,來(lái)計(jì)算懸空區(qū)域,并在懸空區(qū)域下方生成支撐結(jié)構(gòu),HUANG等[16]又對(duì)其進(jìn)行優(yōu)化,提高此算法的穩(wěn)定性,且使算法能夠?qū)δP蜕蠎铱盏捻旤c(diǎn)和邊線提供良好的支撐。傳統(tǒng)的支撐算法較為成熟,適用面廣,但目前仍存在一些不足之處,表現(xiàn)為基于模型三角面片傾角的支撐算法,當(dāng)模型表面存在一些懸空的尖角區(qū)域時(shí),如圖1所示,該區(qū)域每個(gè)面片的法向與垂直方向夾角均較大。算法有可能會(huì)將這些面片標(biāo)記為不需要添加支撐,但若要正常打印模型,該區(qū)域是需要添加支撐結(jié)構(gòu)的,所以基于面片的支撐算法對(duì)這種帶有懸空尖角區(qū)域的模型處理效果不夠穩(wěn)定。而基于連續(xù)切片作布爾差分運(yùn)算的支撐算法,其不足之處在于,一方面支撐區(qū)域受切片路徑的影響,另一方面,相鄰切片布爾運(yùn)算得到的結(jié)果,需要添加支撐結(jié)構(gòu)的區(qū)域往往較大,結(jié)果往往不夠精確。
圖1 帶有懸空尖角區(qū)域的模型
針對(duì)傳統(tǒng)算法中存在的一些問(wèn)題,本文提出一種基于體素模型生成支撐結(jié)構(gòu)的算法。算法主要借鑒了文獻(xiàn)[8]中的支撐能量函數(shù)思想,將其在網(wǎng)格模型中的應(yīng)用推廣到體素模型中,通過(guò)分析體素與體素之間的相互支撐作用,來(lái)判斷體素自身的支撐情況,并由體素生成支撐結(jié)構(gòu)。本文算法的主要優(yōu)點(diǎn)是將原模型用體素來(lái)表示,將體素作為分析對(duì)象,以便更好地檢測(cè)出懸空的體素,由此確定需要添加支撐結(jié)構(gòu)的區(qū)域。另外,由于體素體積小,模型精度高,而支撐結(jié)構(gòu)又是基于體素生成,從而能夠得到更為準(zhǔn)確的支撐結(jié)果。
本文通過(guò)對(duì)模型體素化,得到體素模型,在此基礎(chǔ)上,根據(jù)體素間的相互支撐作用,引入針對(duì)體素的單元支撐能量函數(shù)概念和計(jì)算方法,計(jì)算體素的支撐能量,再以體素支撐能量為判斷標(biāo)準(zhǔn),來(lái)判斷需要添加支撐的體素,由此得到需要添加支撐的模型區(qū)域,根據(jù)此區(qū)域來(lái)生成支撐結(jié)構(gòu),完成支撐生成任務(wù)。
體素模型是對(duì)模型體素化處理后得到,通過(guò)將網(wǎng)格模型轉(zhuǎn)換為實(shí)體對(duì)象,用基本體素來(lái)填充整個(gè)模型。常見(jiàn)的體素形式有四面體和六面體,體素化后的模型如圖2所示。由于3D打印的本質(zhì)也是用材料層層堆疊,填滿模型所包含的空間,由此可看出,二者的處理過(guò)程有很大相似之處,因此,基于體素模型來(lái)考慮支撐結(jié)構(gòu)的生成,既自然也合理。因此,本文根據(jù)模型的要求來(lái)設(shè)置不同的打印精度,據(jù)此來(lái)設(shè)置體素大小,得到體素模型,再分析體素之間的相互支撐作用,以此為基礎(chǔ)來(lái)生成支撐結(jié)構(gòu)。
圖2 Bunny模型的兩種表示方式
具有一定結(jié)構(gòu)的物體各部分間能互為支撐、互相支持,如建筑工程上砌墻的磚塊,每一層都能得到下一層的支撐,這樣通過(guò)逐層堆砌,形成墻體進(jìn)而建成房屋,如圖3(a)所示。體素化后的模型也是如此,模型上每一層體素都會(huì)受到其下一層體素的支撐作用來(lái)抵消該體素所受的重力,達(dá)到平衡狀態(tài),如圖3(b)所示。因此,引入了體素支撐能量概念,用以表示體素模型中體素與體素之間的相互支撐作用及體素的所受支撐效果。
圖3 磚塊及體素之間的相互支撐作用
若用表示體素,用()表示體素自身所具有的支撐能量。則受到下層相鄰體素的支撐,得到這些體素所傳遞的支撐能量。支撐能量數(shù)值的大小可以反映體素所受支撐程度的高低,()值越大,表明該體素已被支撐的程度越高,在打印時(shí)越穩(wěn)定,而()值越小,則表示被支撐的程度越不好,當(dāng)()值低于一個(gè)閾值min時(shí),則該體素需要支撐才能順利打印。
下面來(lái)分析體素支撐能量函數(shù)的計(jì)算方式。對(duì)于任一體素,若該體素位于最底層base,打印時(shí)其自身與打印平臺(tái)相連,則打印平臺(tái)對(duì)其提供支撐能量,所以底層體素不需要添加支撐結(jié)構(gòu),同時(shí)可將支撐能量設(shè)為最大值0;若體素位于其他層,其下方相鄰體素會(huì)向貢獻(xiàn)其支撐能量,則體素具有的支撐能量為下方相鄰體素所貢獻(xiàn)的支撐能量總和()。為了避免支撐能量在向上傳遞過(guò)程中,不斷膨脹,影響計(jì)算結(jié)果的正確性,所以當(dāng)()>0時(shí),就需要將()修正為0,以避免上述膨脹情形產(chǎn)生。因此,根據(jù)分析,可以得到支撐能量函數(shù)計(jì)算式
其中,v為體素下方相鄰體素;為下方相鄰體素的數(shù)量;表示下方相鄰體素v的支撐能量傳遞系數(shù)。由于支撐能量在傳遞過(guò)程中會(huì)發(fā)生衰減,所以用支撐能量傳遞系數(shù)表示支撐能量的衰減情況。的取值與下方體素的位置、打印材料的粘滯性及打印精度有關(guān)。當(dāng)下方體素與所計(jì)算體素的距離較遠(yuǎn),則值越小,反之越大。根據(jù)體素與下方相鄰體素的位置,取值可分為3種情況:當(dāng)下方體素0位于被支撐體素正下方時(shí),其能量傳遞系數(shù)最大,為1;當(dāng)下方體素為1、2、3和4時(shí),它們與體素距離要稍遠(yuǎn)些,因此支撐能量系數(shù)變小,為2;當(dāng)下方體素為5、6、7和8時(shí),它們與體素距離最遠(yuǎn),因此支撐能量系數(shù)也最小,為3,如圖4所示。此外,打印材料的粘滯性以及打印精度也對(duì)有影響。打印材料粘滯性越強(qiáng),打印精度越高,則支撐能量衰減就越慢,相應(yīng)的取值就越大,反之則越小。
另外需要說(shuō)明的是,本文計(jì)算體素的支撐能量時(shí),沒(méi)有考慮同層相鄰體素之間相互支撐作用,主要有兩方面原因:①同層相鄰體素間的支撐作用實(shí)質(zhì)上還是來(lái)源于下層相鄰體素所提供的支撐,如果同時(shí)考慮的話可能會(huì)有所重復(fù);②如果考慮同層相鄰體素的支撐能量計(jì)算,易引起循環(huán)計(jì)算,導(dǎo)致計(jì)算復(fù)雜性大大增加。
圖4 下方體素所處位置影響α取值
支撐生成任務(wù)按先后順序分為兩步:①尋找需要添加支撐的區(qū)域;②為需添加支撐的區(qū)域添加支撐結(jié)構(gòu)。
2.3.1 尋找需要添加支撐的區(qū)域
對(duì)于如何尋找需要添加支撐的區(qū)域,首先根據(jù)模型打印精度,對(duì)網(wǎng)格模型體素化處理得到體素模型,再由支撐能量函數(shù)計(jì)算出每個(gè)體素的支撐能量,由支撐能量閾值min篩選出自身支撐能量小于閾值的體素,從而得到需要添加支撐結(jié)構(gòu)的區(qū)域。
在遍歷計(jì)算體素自身支撐能量時(shí),當(dāng)某一體素的支撐能量小于min時(shí),需要標(biāo)記該體素,同時(shí),修改其支撐能量為0。之后計(jì)算其上層體素的支撐能量時(shí),需要調(diào)用該體素的支撐能量,該體素既已確定添加支撐,支撐結(jié)構(gòu)會(huì)為其提供支撐能量,則支撐能量應(yīng)當(dāng)變?yōu)?。具體算法如下:
算法1.
輸入:給定一個(gè)三維網(wǎng)格模型。
輸出:需要支撐的體素集out。
步驟1.對(duì)體素化,得到體素集in;
步驟2.將底層所有體素的支撐能量函數(shù)值賦為初值0;
步驟3.對(duì)體素集in中的體素,從第二層開始,根據(jù)其高度由下至上按如下步驟進(jìn)行處理;
步驟4.按式(1)計(jì)算體素的支撐能量函數(shù),得到(),如果()
步驟5.最終得到需要添加支撐的體素集out。
2.3.2 支撐結(jié)構(gòu)的生成
對(duì)于支撐結(jié)構(gòu)的生成,可在得到需要添加支撐結(jié)構(gòu)的體素集后,根據(jù)體素集所確定的區(qū)域,來(lái)完成支撐生成的任務(wù)。本文主要研究更加準(zhǔn)確地找到需要添加支撐的區(qū)域,從而較為準(zhǔn)確地生成支撐結(jié)構(gòu),而非優(yōu)化支撐結(jié)構(gòu)型式,因此本文選用較為簡(jiǎn)單方便的柱式結(jié)構(gòu)作為支撐結(jié)構(gòu)型式。具體支撐結(jié)構(gòu)生成的方法是通過(guò)對(duì)需添加支撐的體素中心點(diǎn)投影,若體素下方垂直方向有其他體素,則選取距離最近的體素中心點(diǎn)作為投影點(diǎn),若體素下方垂直方向沒(méi)有其他體素,則直接投影到打印平臺(tái),由體素的中心點(diǎn)與投影點(diǎn)的高度差,確定出支撐桿的長(zhǎng)度,并根據(jù)體素單元的大小,來(lái)確定支撐桿的半徑,由此生成的支撐桿即為模型的支撐結(jié)構(gòu),算法如下:
算法2.
輸入:支撐體素集。
輸出:添加支撐結(jié)構(gòu)的模型。
步驟1.對(duì)體素集采樣,得到新的體素集1;
步驟2.根據(jù)體素中心點(diǎn)對(duì)體素投影;
步驟2.1.如果下方垂直方向有其他體素,選取距離最近的體素中心點(diǎn)為投影點(diǎn);
步驟2.2.如果垂直下方?jīng)]有體素,則直接投影到打印平臺(tái);
步驟3.根據(jù)體素中心點(diǎn)與投影點(diǎn)生成支撐桿,所得的支撐桿即為所生成的支撐結(jié)構(gòu)。合并支撐桿與原模型,得到最終模型。
在CPU為Inteli7-6500U 2.50 GHz、內(nèi)存為16 GB的Windows7電腦上,選用熔融沉積型(FDM)打印機(jī)測(cè)試模型,打印機(jī)的型號(hào)為MakerBot Replicator 2,打印材料為常見(jiàn)的PLA,固定打印機(jī)精度為0.10 mm,模型填充率設(shè)為10%,打印模型。
可選取測(cè)試模型,通過(guò)對(duì)能量傳遞系數(shù)賦值,并設(shè)定支撐能量初值0,能量閾值min,來(lái)計(jì)算出體素的支撐能量,并根據(jù)支撐能量閾值min得到不能打印的體素區(qū)域。在此基礎(chǔ)上,打印未添加支撐結(jié)構(gòu)的模型,找出模型上實(shí)際不能打印的區(qū)域,通過(guò)對(duì)比,修正和min的取值。
通過(guò)多次實(shí)驗(yàn)測(cè)試并修正,0取值100;1、2和3分別取值為0.50、0.25和0.20;min取值為30較為合適,可以得到一個(gè)較為不錯(cuò)的支撐結(jié)果。在此基礎(chǔ)上,再選取實(shí)驗(yàn)?zāi)P?,運(yùn)行本算法,打印模型并對(duì)比實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 實(shí)驗(yàn)結(jié)果
此外,對(duì)ABS塑料也進(jìn)行了實(shí)驗(yàn)測(cè)試,0仍取值100,min取值為30,雖然ABS材料的熔點(diǎn)高于PLA材料,但由于其冷卻時(shí)間較短,與PLA材料相比,ABS材料的粘滯性要大一點(diǎn),所以,能量傳遞系數(shù)要稍大一點(diǎn)。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,ABS材料的12和3分別取值為0.60、0.35和0.30,較為合適。同樣情況下,使用ABS材料的模型生成支撐更少一點(diǎn),則打印Bunny測(cè)試,Bunny大小為43 mm′33 mm′41 mm,ABS材料的模型比PLA材料的模型少約0.88 g。
同時(shí),可選取Bunny、Panda和Fertilty等 模型,進(jìn)行實(shí)驗(yàn)測(cè)試,模型尺寸、體素?cái)?shù)量及有關(guān)運(yùn)算時(shí)間等實(shí)驗(yàn)相關(guān)數(shù)據(jù)見(jiàn)表1。從表1可看到,隨著模型體素?cái)?shù)量的增加,算法的運(yùn)算時(shí)間也在增長(zhǎng),說(shuō)明算法的運(yùn)算時(shí)間與體素的數(shù)量緊密相關(guān)。
表1 本文算法實(shí)驗(yàn)數(shù)據(jù)
再將本文算法生成的支撐結(jié)構(gòu),與當(dāng)前主流的3D打印軟件Cura、Meshmixer和Majics生成的支撐結(jié)構(gòu)作對(duì)比。Cura軟件是直接在懸空區(qū)域下方擠出支撐結(jié)構(gòu),較為浪費(fèi)材料;Meshmixer軟件和Majics軟件為了節(jié)省材料,首先對(duì)懸空的需要添加支撐的面片進(jìn)行采樣,對(duì)采樣點(diǎn)進(jìn)行整合,然后選用不同的支撐結(jié)構(gòu)型式,Meshmixer軟件選用樹狀作為支撐結(jié)構(gòu)型式,Majics軟件則提供多種結(jié)構(gòu)型式,但通常選用塊狀結(jié)構(gòu)來(lái)生成支撐。如前所述,由于本文選用較為簡(jiǎn)單方便的柱體作為支撐桿,可能會(huì)造成多余的材料消耗。實(shí)驗(yàn)對(duì)比如圖6所示。
圖6 4種支撐生成方式比較
在支撐生成區(qū)域大小方面,本文算法有一些優(yōu)勢(shì)。以Bunny為例,在本文設(shè)定的打印精度下,直觀上觀察,Meshmixer、Cura和Majics都在尾巴處生成一些多余的支撐,且在耳朵、下巴和前胸部生成的支撐區(qū)域也較大,本文算法相對(duì)生成支撐區(qū)域較小,尾巴處幾乎沒(méi)有添加支撐,耳朵、下巴和前胸也沒(méi)有其他算法生成區(qū)域大。另外,通過(guò)計(jì)算模型表面添加支撐結(jié)構(gòu)的區(qū)域面積比較大小。本文算法的支撐區(qū)域面積是通過(guò)由計(jì)算體素的大小與體素的數(shù)量得到;Cura軟件的支撐區(qū)域面積通過(guò)計(jì)算其支撐區(qū)域在底部的投影,并測(cè)量出投影面積;Majics軟件自帶面積測(cè)量,對(duì)各支撐區(qū)域的表面積進(jìn)行求和;Meshmixer軟件暫時(shí)沒(méi)有較好的方法來(lái)計(jì)算其支撐區(qū)域的面積,因此沒(méi)有列入。最終得到的結(jié)果見(jiàn)表2,3種算法對(duì)比發(fā)現(xiàn),本文算法的支撐區(qū)域面積較小,而Cura軟件生成的支撐區(qū)域面積較大。
表2 3種算法支撐區(qū)域面積對(duì)比(mm2)
在打印材料消耗方面(表3),Meshmixer軟件生成的樹狀支撐結(jié)構(gòu),能夠減少材料的消耗,占有較大優(yōu)勢(shì);而本文算法雖然生成的支撐區(qū)域較少,但是由于選用柱狀的支撐結(jié)構(gòu)型式稍顯簡(jiǎn)單,且當(dāng)支撐桿長(zhǎng)度越長(zhǎng)時(shí),越浪費(fèi)材料;Majics軟件與Cura軟件類似,是通過(guò)在模型懸空區(qū)域下方擠出密集的支撐結(jié)構(gòu),相對(duì)來(lái)講,較為耗費(fèi)材料。
表3 4種算法打印材料消耗對(duì)比(g)
在打印穩(wěn)定性方面,Cura軟件生成的支撐比較密集,較為穩(wěn)定;本文算法是基于體素生成支撐桿結(jié)構(gòu),受體素尺寸影響,桿的直徑較小,當(dāng)支撐桿的長(zhǎng)度較長(zhǎng)時(shí),支撐的穩(wěn)定性不夠好;Meshmixer軟件中的樹狀支撐在打印大面積懸空區(qū)域時(shí),樹狀結(jié)構(gòu)由于上部支撐點(diǎn)較多,而底部?jī)H有少數(shù)點(diǎn)與打印平臺(tái)粘連,這種結(jié)構(gòu)不夠穩(wěn)定,在打印過(guò)程中,經(jīng)常會(huì)出現(xiàn)支撐結(jié)構(gòu)與打印平臺(tái)分離的情況,造成打印失??;而Majics軟件生成的支撐結(jié)構(gòu)與模型表面僅靠一些稀疏的點(diǎn)相接觸,且接觸點(diǎn)的面積較小,打印過(guò)程中支撐結(jié)構(gòu)容易與模型表面相分離,支撐結(jié)構(gòu)沒(méi)有起到支撐作用,造成打印失敗。
因此,4種算法都能夠較好地完成支撐生成任務(wù),同時(shí)保證模型的正常打印。本文算法的主要優(yōu)點(diǎn)是在于模型支撐生成區(qū)域面積較小,但是由于支撐結(jié)構(gòu)型式稍顯簡(jiǎn)單,在消耗材料方面沒(méi)有Meshmixer軟件有優(yōu)勢(shì);在打印穩(wěn)定性方面,與Meshmixer軟件,Majics軟件相似,偶爾會(huì)出現(xiàn)不穩(wěn)定的現(xiàn)象,如果能采用更優(yōu)的支撐結(jié)構(gòu)型式,應(yīng)該能有更好的材料消耗與穩(wěn)定性表現(xiàn)。
針對(duì)3D打印支撐問(wèn)題,本文提出一種基于體素模型生成支撐結(jié)構(gòu)的算法,算法著重分析了體素之間的相互支撐作用,并對(duì)支撐不夠穩(wěn)定的體素生成支撐桿。經(jīng)實(shí)驗(yàn)測(cè)試,本文算法能夠更加準(zhǔn)確地找出模型需要添加支撐的區(qū)域,除此之外,采用基于體素模型的模型支撐算法,能夠較好地適用模型的內(nèi)部支撐計(jì)算。
本文工作在以下方面可以有所改進(jìn)。首先,由于本文算法的主要目的是尋找較為準(zhǔn)確的支撐區(qū)域,對(duì)如何選取穩(wěn)定良好的支撐結(jié)構(gòu)型式未作深入分析,所以采用了較為簡(jiǎn)單的圓柱來(lái)生成支撐結(jié)構(gòu)。當(dāng)圓柱長(zhǎng)度與半徑的比太大時(shí),支撐柱的穩(wěn)定性會(huì)不夠好,下一步將考慮選用更為穩(wěn)定的支撐結(jié)構(gòu)型式,增加支撐的穩(wěn)定性和健壯性,從而提高支撐打印成功率。其次,本文算法需要對(duì)模型體素化處理,由于體素化后的模型,體素?cái)?shù)量巨大,造成算法效率較低,下一步可以考慮結(jié)合GPU技術(shù)來(lái)進(jìn)一步加速計(jì)算。
[1] 劉利剛, 徐文鵬, 王偉明, 等. 3D打印中的幾何計(jì)算研究進(jìn)展[J]. 計(jì)算機(jī)學(xué)報(bào), 2015, 38(6): 1243-1267.
[2] 胡瑞珍, 黃惠. 3D 打印啟發(fā)下的模型實(shí)例化優(yōu)化研究綜述[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2015, 27(6): 961-967.
[3] RATTANAWONG W, MASOOD S H, IOVENITTI P. A volumetric approach to part-build orientations in rapid prototyping [J]. Journal of Materials Processing Technology, 2001, 119(1-3): 348-353.
[4] ZHANG X T, LE X Y, PANOTOPOULOU A, et al. Perceptual models of preference in 3D printing direction [J]. ACM Transactions on Graphics, 2015, 34(6): 1-12.
[5] SANATI NEZHAD A, BARAZANDEH F, RAHIMI A R, et al. Pareto-based optimization of part orientation in stereolithography [J]. Journal of Engineering Manufacture, 2010, 224(10): 1591-1598.
[6] STRANO G, HAO L, EVERSON R M, et al. A new approach to the design and optimisation of support structures in additive manufacturing [J]. The International Journal of Advanced Manufacturing Technology, 2013, 66(9): 1247-1254.
[7] WANG W M, WANG T Y, YANG Z W, et al. Cost-effective printing of 3D objects with skin-frame structures [J]. ACM Transactions on Graphics, 2013, 32(6): 1-10
[8] 陳巖, 王士瑋, 楊周旺, 等. FDM 三維打印的支撐結(jié)構(gòu)的設(shè)計(jì)算法[J]. 中國(guó)科學(xué): 信息科學(xué), 2015, 45(2): 259-269.
[9] VANEK J, GALICIA J A G, BENES B. Clever support: efficient support structure generation for digital fabrication [J]. Computer Graphics Forum, 2014, 33(5): 117-125.
[10] 宋國(guó)華, 敬石開, 許文婷, 等. 面向熔融沉積成型的樹狀支撐結(jié)構(gòu)生成設(shè)計(jì)方法[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2016, 22(3): 583-588.
[11] HERGEL J, LEFEBVRE S. Bridging the gap: automated steady scaffoldings for 3D printing [J]. ACM Transactions on Graphics, 2014, 33(4): 1-10.
[12] HU K L, JIN S, WANG C C L. Support slimming for single material based additive manufacturing [J]. Computer-Aided Design, 2015, 65: 1-10.
[13] ALEXANDER P, ALLEN S, DUTTA D. Part orientation and build cost determination in layered manufacturing [J]. Computer-Aided Design, 1998, 30(5): 343-356.
[14] SNEAD D E, SMALLEY D R, COHEN A L, et al. Boolean layer comparison slice: U.S. Patent 5, 321, 622 [P]. 1994-06-14.
[15] CHALASANI K, JONES L, ROSCOE L. Support generation for fused deposition modeling [C]//Proceedings of Solid Freeform Fabrication Symposium. Austin: University of Texas Press, 1995: 229-241.
[16] HUANG X M, YE C S, MO J H, et al. Slice data based support generation algorithm for fused deposition modeling [J]. Tsinghua Science & Technology, 2009, 14(S1): 223-228.
Construction of Support Structure Based on Voxelization Models for 3D Printing
XU Wenpeng1, MIAO Longtao1, HOU Shouming1, QIANG Xiaohuan2, ZENG Yanyang1
(1. School of Computer Science and Technology, Henan Polytechnic University, Jiaozuo Henan 454100, China; 2. School of Surveying and Land Information Engineering, Henan Polytechnic University, Jiaozuo Henan 454100, China)
3D printing technology can fabricate models by additive accumulation of a material that is fused together layer by layer, but the overhang area should be added support structure. The support structure will not only cause a waste of printing material, but also increase the printing time and damage the appearance of the model. In this paper, we propose an algorithm on support structure based on the voxelization model, which analyzes the interaction of voxels, and introduces the support energy parameters and calculation method. Then we calculate the area of the voxels which need to add support structure, and finally, we generate the support structure according the voxels area. The experimental results show that the algorithm can add support structure of the model more accuracy. At the same time, the voxel-based support algorithm can be used for a research on internal support structure of a model.
3D printing; voxelization model; support energy function; support algorithm
TP 391
10.11996/JG.j.2095-302X.2018020228
A
2095-302X(2018)02-0228-07
2017-07-12;
2017-08-12
河南省科技攻關(guān)項(xiàng)目(162102310090);河南省高等學(xué)校重點(diǎn)科研項(xiàng)目(16A520011)
徐文鵬(1976–),男,江西九江人,副教授,博士。主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué)。E-mail:wpxu08@gmail.com
曾艷陽(yáng)(1987–),男,河南信陽(yáng)人,講師,博士。主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué)與幾何處理。E-mail:zyyhost@qq.com