本發(fā)明涉及3d打印技術(shù)優(yōu)化方法領(lǐng)域,尤其涉及一種面向3d打印的內(nèi)部填充優(yōu)化方法。
背景技術(shù):
3d打印技術(shù)是直接利用模型的數(shù)字文件通過(guò)逐層疊加的方式來(lái)構(gòu)造實(shí)體的技術(shù),可采用的材料包括多種粉末狀金屬與高分子材料。由于徹底改變了加工成形模式,3d打印技術(shù)可以用來(lái)加工傳統(tǒng)減材或等材加工方法難以制造的零件,可以提高加工零件的復(fù)雜性。此外,3d打印技術(shù)簡(jiǎn)化了加工流程,可由數(shù)字化文件直接驅(qū)動(dòng)加工,大大降低了單件試制、小批量個(gè)性化定制產(chǎn)品的生產(chǎn)周期與成本。憑借這些優(yōu)勢(shì),3d打印技術(shù)已經(jīng)在建筑設(shè)計(jì)、醫(yī)療輔助、工業(yè)模型、復(fù)雜結(jié)構(gòu)、零配件、動(dòng)漫模型等領(lǐng)域都已經(jīng)有了一定程度的應(yīng)用。
在3d打印之前需要對(duì)數(shù)字化三維模型進(jìn)行一些處理,包括模型的優(yōu)化、切片以及路徑生成幾個(gè)主要步驟,這些步驟完成從數(shù)字化模型到打印機(jī)可讀取代碼之間的轉(zhuǎn)換。與傳統(tǒng)加工方法的一個(gè)區(qū)別是在模型的處理過(guò)程中可以通過(guò)調(diào)整一些工藝參數(shù)來(lái)改變模型的內(nèi)部結(jié)構(gòu)以提供更高的設(shè)計(jì)靈活性與性能提升空間。同時(shí)對(duì)工藝參數(shù)的優(yōu)化可以提高成形效率與成形件的質(zhì)量。
雖然3d打印技術(shù)帶來(lái)了諸多傳統(tǒng)加工方法所沒(méi)有的技術(shù)優(yōu)勢(shì),但也存在著一些問(wèn)題,比如成形件的力學(xué)性能、表面質(zhì)量仍然無(wú)法與傳統(tǒng)制造方法相媲美,因此目前3d打印技術(shù)存在著一些需要改進(jìn)與解決的問(wèn)題。其中一個(gè)棘手的問(wèn)題就是加工時(shí)間過(guò)長(zhǎng),特別是在處理大體積的實(shí)體零件時(shí),填充內(nèi)部空間不僅需要花費(fèi)了很長(zhǎng)的加工時(shí)間,而且消耗了大部分的成形材料,因此可以考慮通過(guò)優(yōu)化內(nèi)部結(jié)構(gòu)來(lái)減少內(nèi)部填充的體積。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種在保證待成形工件的最小壁厚要求的基礎(chǔ)上,利用最小成形傾斜角優(yōu)化待成形工件的內(nèi)部結(jié)構(gòu)來(lái)減少待成形工件的內(nèi)部填充體積、節(jié)約成形材料的面向3d打印的內(nèi)部填充優(yōu)化方法。
一種面向3d打印的內(nèi)部填充優(yōu)化方法,包括如下步驟:
步驟1:輸入待成形件模型和待成形件的最小壁厚t,確定待加工實(shí)體的成形方位與切片層厚t;
步驟2:獲取待成形件的最小成形傾斜角θ,
步驟3:根據(jù)切片層厚t對(duì)實(shí)體模型進(jìn)行切片,切片層的總數(shù)為
步驟4:按照從上到下的順序依次根據(jù)各切片層的輸入輪廓ci獲得對(duì)應(yīng)的內(nèi)輪廓ci-in:
步驟4-1:獲取第i層切片層作為當(dāng)前切片層
步驟4-2:從第
步驟4-3:獲取當(dāng)前切片層的影響層集合
{ci-[t/t],ci-[t/t]+1,…,ci,…ci+[t/t]-1,ci+[t/t]},其中ci表示第i層切片層的輸入輪廓;獲取影響層的偏置輪廓集合
{c(i-[t/t])offset,c(i-[t/t]+1)offset,…,ci-offset,…c(i+[t/t]-1)offset,c(i+[t/t])offset},其中,c(i-[t/t])offset表示第i-t/t層切片層的偏置輪廓,以此類推;將所有影響層的偏置輪廓定義的區(qū)域進(jìn)行布爾運(yùn)算,求得的交集區(qū)域的輪廓即作為當(dāng)前切片層的第一內(nèi)輪廓ci-in1;
步驟4-4:根據(jù)最小成形傾斜角θ生成具有自支撐能力的第二內(nèi)部輪廓ci-in2:判斷當(dāng)前切片層的第一內(nèi)輪廓ci-in1是否為空,若是則結(jié)束步驟4-4,若否,則判斷當(dāng)前切片層的上一層切片層的內(nèi)輪廓c(i-1)-in是否為空,若是,則將第一內(nèi)輪廓ci-in1向內(nèi)迭代偏置,偏置距離為t×cotθ,迭代的終止條件為偏置得到的多邊形的內(nèi)切圓半徑小于t×cotθ,將該偏置得到的多邊形作為當(dāng)前切片層的第二內(nèi)部輪廓ci-in2;若否,則將上一層切片層的內(nèi)輪廓c(i-1)-in向內(nèi)偏置,偏置距離為t×cotθ,將偏置得到的輪廓投影到當(dāng)前切片層,投影得到的輪廓作為當(dāng)前切片層的第二內(nèi)部輪廓ci-in2;
步驟4-5:將第一內(nèi)部輪廓ci-in1和第二內(nèi)部輪廓ci-in2進(jìn)行布爾交運(yùn)算獲得內(nèi)輪廓ci-in,
步驟4-6:對(duì)輸入輪廓ci和內(nèi)輪廓ci-in做布爾差集運(yùn)算獲得當(dāng)前切片層的填充區(qū)域;
步驟4-7:獲取第i+1個(gè)切片層作為當(dāng)前切片層,重復(fù)步驟4-1到步驟4-7;
步驟5:所有切片層的填充區(qū)域依次序共同組成填充路徑,將填充路徑輸出為3d打印路徑文件。
進(jìn)一步,步驟4-6中,獲得當(dāng)前切片層的填充區(qū)域后,判斷當(dāng)前切片層的填充區(qū)域是否具有厚度小于最小壁厚t的部位,若有,則修正和調(diào)整內(nèi)輪廓ci-in使填充區(qū)域的所有部位的厚度均大于t,以修正和調(diào)整后的內(nèi)輪廓作為當(dāng)前內(nèi)輪廓;將當(dāng)前內(nèi)輪廓與輸入輪廓做布爾差集運(yùn)算、獲得的結(jié)果作為當(dāng)前切片層的填充區(qū)域。
進(jìn)一步,步驟4-6中,對(duì)內(nèi)輪廓進(jìn)行修正與調(diào)整的具體方法是:
步驟4-6-1:判斷當(dāng)前切片層的待填充區(qū)域是否由一條封閉的內(nèi)輪廓定義,若是,則進(jìn)入步驟步驟4-6-2;若否,則認(rèn)為該待填充區(qū)域由一條以上的內(nèi)輪廓定義,進(jìn)入步驟4-6-3;
步驟4-6-2:將內(nèi)輪廓向外迭代偏置,偏置距離為小于t的常量,迭代終止條件為:該待填充區(qū)域的內(nèi)切圓半徑大于t;迭代完成后的內(nèi)輪廓即為修正與調(diào)整后的內(nèi)輪廓ci-in;
步驟4-6-3:生成待填充區(qū)域的中線輪廓,中線輪廓由待填充區(qū)域的中線簇形成,中線簇由輸入輪廓和內(nèi)輪廓之間的中線組成,中線上的任意一點(diǎn)均為輸入輪廓與內(nèi)輪廓的中間點(diǎn)、或者內(nèi)輪廓與內(nèi)輪廓的中間點(diǎn);以t/2為半徑的圓生成包絡(luò)線,包絡(luò)線與輸入輪廓內(nèi)切,待填充區(qū)域的僅由內(nèi)輪廓定義的部分、以中線上的點(diǎn)作為包絡(luò)線的圓心,將待填充區(qū)域與包絡(luò)線覆蓋的區(qū)域做布爾加運(yùn)算、求得的區(qū)域的內(nèi)輪廓即修正后的內(nèi)輪廓ci-in。
本發(fā)明使用最小壁厚和最小成形傾斜角計(jì)算出內(nèi)輪廓,將內(nèi)輪廓和輸入輪廓圍成的區(qū)域作為待填充區(qū)域,內(nèi)輪廓內(nèi)部的區(qū)域無(wú)需填充,而非如現(xiàn)有技術(shù)中有輸入輪廓定義的區(qū)域作為待填充區(qū)域,使用最小壁厚和最小成形傾斜角參與計(jì)算待填充區(qū)域,使得待填充區(qū)域既能夠被順利加工,也能夠充分發(fā)揮材料的自支撐能力,在保證了工件的可成形性。
本發(fā)明的優(yōu)點(diǎn)在于:以輸入輪廓與內(nèi)輪廓定義的區(qū)域作為切片層的填充區(qū)域,在保證了可成形性的基礎(chǔ)上對(duì)實(shí)體模型的內(nèi)部填充區(qū)域進(jìn)行優(yōu)化,減少了工件的內(nèi)部填充體積,提高了成形效率、減少了成形材料的耗費(fèi)。
附圖說(shuō)明
圖1為本發(fā)明的流程圖。
圖2為最小成形傾斜角示意圖,(a)是切片后的倒金字塔形模型,(b)是最小成形傾斜角。
圖3生成第一內(nèi)輪廓ci的流程示意圖。
圖4為生成第二內(nèi)輪廓ci2的流程示意圖。
圖5是生成第二內(nèi)輪廓的示意圖,(a)是將當(dāng)前切片層的第一內(nèi)輪廓向內(nèi)迭代偏置一次的示意圖,(b)是將上一切片層的內(nèi)輪廓向內(nèi)偏置投影的示意圖。
(a)-圖5(b)為本發(fā)明生成ci2的兩種情況示意圖;
圖6為一個(gè)實(shí)施例模型以及進(jìn)行內(nèi)部?jī)?yōu)化后的結(jié)果示意圖,(a)是實(shí)施例使用的待成形件模型,(b)是待成形件模型切片后的示意圖,(c)是使用本發(fā)明優(yōu)化后的待成形件模型內(nèi)部結(jié)構(gòu)示意圖;(d)是(c)的一個(gè)縱截面示意圖。
圖7是實(shí)施例模型的填充路徑示意圖,(a)是未使用本發(fā)明優(yōu)化的填充路徑示意圖,(b)是使用本發(fā)明優(yōu)化后的填充路徑示意圖。
圖8是一條以上內(nèi)輪廓定義的填充區(qū)域由包絡(luò)線進(jìn)行修整的示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明,以下實(shí)施例不構(gòu)成對(duì)本方明的限定。
圖1所示為本發(fā)明面向3d打印技術(shù)的內(nèi)部填充優(yōu)化方法的流程圖。以附圖6(a)中的模型為例,來(lái)闡明內(nèi)部填充優(yōu)化方法。
步驟1:輸入待成形件模型和待成形件的最小壁厚t,確定待加工實(shí)體的成形方位與切片層厚t;成形方位如圖6(a)所示,層厚設(shè)定為0.2mm;
步驟2:獲取待成形件的最小成形傾斜角θ,
最小成形傾斜角θ是在不添加支撐結(jié)構(gòu)的前提下,使用具體的3d打印工藝與材料加工的結(jié)構(gòu)中傾斜面與水平面的最小夾角。如圖2(a)所示的一個(gè)倒立金字塔模型。待成形件的最小壁厚t是對(duì)模型內(nèi)部填充進(jìn)行優(yōu)化之后,壁厚在強(qiáng)度要求允許下的最小值,在實(shí)施例定為5mm。
步驟3:對(duì)待成形件模型進(jìn)行切片,獲得二維切片集合;根據(jù)步驟1設(shè)定的層厚t對(duì)模型進(jìn)行切片,利用一組間隔為t的相互平行的平面集合與模型相交,輸出相交的二維輪廓集合,最頂部層片編號(hào)為1,越往下編號(hào)逐漸增加,最底層編號(hào)為[h/t],其中h為模型的高度,[]為取整符號(hào)。本例中模型高度70mm,切片后一共有350層,故最底層編號(hào)為350。
步驟4:按照從上到下的順序依次根據(jù)各層的輸入輪廓ci獲得內(nèi)輪廓ci-in,具體步驟如圖3所示,闡述如下;
步驟4-1:確定當(dāng)前層片ci所處的位置,判斷是否滿足以下兩式
其中,[t/t]為10,[h/t]為350。通過(guò)判斷i的值進(jìn)行如下處理
如果判斷結(jié)果為是,則表明第i層處于模型頂部或底部,為了滿足最小壁厚值,這些層需要實(shí)體填充而不可以進(jìn)行優(yōu)化。則該層的偏移輪廓ci-offset與內(nèi)輪廓ci-in均為空,結(jié)束步驟4。如果判斷結(jié)果為否,進(jìn)入步驟4-2;
步驟4-2:從第
步驟4-3:根據(jù)壁厚要求t生成內(nèi)輪廓ci-in1,具體步驟如下;
步驟4-3-1:確定第i層的影響層集合;影響層集合由正下方與正上方若干連續(xù)層片組成,影響層集合為{ci-[t/t],ci-[t/t]+1...ci...ci+[t/t]-1,ci+[t/t]},一共有2[t/t]+1層,本實(shí)施例中由于[t/t]=10,則影響層集合為{ci-10,ci-9...ci...ci+9,ci+10},一共有21層。
步驟4-3-2:對(duì)所有影響層的偏置輪廓ci-offset定義的區(qū)域進(jìn)行布爾運(yùn)算,求得交集區(qū)域的輪廓即為該層的內(nèi)輪廓ci-in1;
步驟4-4:根據(jù)最小成形傾斜角θ生成內(nèi)輪廓ci-in2,具體步驟如圖4所示,具體闡述如下:
步驟4-4-1:判斷當(dāng)前層的內(nèi)輪廓ci-in1是否為空,如果判斷結(jié)果為是,則結(jié)束步驟4-4;如果判斷結(jié)果為否,進(jìn)入步驟4-4-2;
步驟4-4-2:判斷當(dāng)前層的上方層c(i-1)-in是否為空,如果判斷結(jié)果為是,則進(jìn)入步驟4-4-3;如果判斷結(jié)果為否,進(jìn)入步驟4-4-4;
步驟4-4-3:將內(nèi)輪廓ci-in1向內(nèi)迭代偏置,偏置距離為t×cotθ,其中t為切片層厚,θ為可成形最小傾斜角,迭代的終止條件是偏置得到多邊形內(nèi)切圓的半徑小于t×cotθ;將該偏置輪廓作為第i層的內(nèi)輪廓ci-in2。具體如圖5(a)所示;
步驟4-4-4:將輪廓c(i-1)-in向內(nèi)偏置,偏置距離為t×cotθ,然后將其投影至第i層,得到第i層的內(nèi)輪廓ci-in2。具體如圖5(b)所示;
步驟4-5:將ci-in1與ci-in2進(jìn)行布爾交運(yùn)算獲得內(nèi)輪廓ci-in;
步驟4-6:對(duì)ci與ci-in進(jìn)行布爾差集運(yùn)算獲得當(dāng)前層的填充區(qū)域,判斷當(dāng)前切片層的填充區(qū)域是否具有厚度小于最小壁厚t的部位,若有,則修正和調(diào)整內(nèi)輪廓ci-in使填充區(qū)域的所有部位的厚度均大于t,以修正和調(diào)整后的內(nèi)輪廓作為當(dāng)前內(nèi)輪廓;將當(dāng)前內(nèi)輪廓與輸入輪廓做布爾差集運(yùn)算、獲得的結(jié)果作為當(dāng)前切片層的填充區(qū)域。
對(duì)內(nèi)輪廓進(jìn)行修正與調(diào)整,具體方法如下:
步驟4-6-1:如果待填充區(qū)域中出現(xiàn)厚度小于t的區(qū)域,對(duì)該厚度小于t的區(qū)域進(jìn)行判斷,如果該厚度小于t的區(qū)域由一條封閉的內(nèi)輪廓定義,則進(jìn)入步驟步驟4-6-2;如果該厚度小于t的區(qū)域由一條以上的內(nèi)輪廓定義,則進(jìn)入步驟4-6-3;
步驟4-6-2:將該厚度小于t的區(qū)域向外迭代偏置,直至其內(nèi)切圓半徑大于t為止;
步驟4-6-3:生成待填充區(qū)域a的中線輪廓cz,中線輪廓cz由待填充區(qū)域a的中線簇形成,中線簇由輸入輪廓ci和內(nèi)輪廓ci-in之間的中線組成,中線上的任意一點(diǎn)均為輸入輪廓ci與內(nèi)輪廓ci-in的中間點(diǎn)、或者內(nèi)輪廓ci-in與內(nèi)輪廓ci-in的中間點(diǎn);以t/2為半徑的圓r生成包絡(luò)線,包絡(luò)線與輸入輪廓ci內(nèi)切,待填充區(qū)域a的僅由內(nèi)輪廓ci-in定義的部分、以中線上的點(diǎn)作為包絡(luò)線的圓心,將待填充區(qū)域a與包絡(luò)線覆蓋的區(qū)域做布爾加運(yùn)算、求得的區(qū)域的內(nèi)輪廓即修正后的內(nèi)輪廓ci-in,如圖8所示。
步驟5:所有切片層的填充區(qū)域依次序共同組成填充路徑,將填充路徑輸出為3d打印路徑文件。內(nèi)部?jī)?yōu)化后的結(jié)果如圖6(c)和圖6(d)所示,圖6(d)為圖(c)的一個(gè)截面,生成的填充路徑如圖7所示,其中圖7(b)為采用本發(fā)明提出的優(yōu)化方法后的填充路徑,圖7(a)為未采用本發(fā)明優(yōu)化后生成的填充路徑。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的一般技術(shù)人員來(lái)說(shuō),本發(fā)明還可以有各種更改和變化。在不脫離本發(fā)明原理的前提下,所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。