本發(fā)明涉及一種模型分割和打包方法,尤其涉及一種用于3D打印的模型分割和打包方法,屬于3D打印應(yīng)用類領(lǐng)域。
背景技術(shù):
3D打印技術(shù)可實(shí)現(xiàn)由數(shù)字化模型到實(shí)體模型的轉(zhuǎn)換,但目前其打印成本與打印時(shí)間要遠(yuǎn)遠(yuǎn)超過傳統(tǒng)制造方法。分割是為了將給定模型分解為若干分塊,使得各分塊得以打印成型; 打包算法, 即能夠?qū)⒎纸獾玫降姆謮K進(jìn)行智能打包,高效、智能地放置在指定大?。?例如打印機(jī)工作容積大?。?的容器內(nèi),從而可以同一批次打印多個(gè)分塊, 以高效利用打印容積、材料,進(jìn)而節(jié)省打印時(shí)間和支撐材料。此外,受打印機(jī)工作容積的制約,3D打印機(jī)單次可打印物體的最大尺寸依然有限,對(duì)于較大體積的物體,由于無法直接打印,因此也需要對(duì)模型進(jìn)行分割、堆積、打包進(jìn)而打印成型。
目前的打印技術(shù)在不同應(yīng)用中的約束和優(yōu)化目標(biāo)不同。打包問題是典型的組合優(yōu)化問題也是問題,針對(duì)模型的分割和打包的幾何方面的優(yōu)化問題, 本發(fā)明提出一種解決框架, 對(duì)于給定模型和具體的打印機(jī)工作容積, 利用該框架可以得到相應(yīng)的分割和打包方案, 其模型分割個(gè)數(shù)少、 分塊堆積緊湊, 改善了模型打印效率不高這一急需解決的
問題。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)不足,本發(fā)明提供一種用于3D打印的模型分割和打包方法,是將給定模型分割為若干金字塔形狀的分塊,然后利用一種改進(jìn)的禁忌搜索算法尋找最優(yōu)打包方案,盡可能地減少支撐材料的體積,根據(jù)分塊體積給出利于全局優(yōu)化的初始解,并通過控制鄰域生成規(guī)則以及候選解集,使得搜索更加高效并大幅提高尋優(yōu)速度;最后,將打印成型的各部件拼合成整體。達(dá)到了模型分割產(chǎn)生的分塊個(gè)數(shù)少、打包高效合理;有效地提高打印效率,還減少了打印時(shí)間和支撐材料消耗。
為解決現(xiàn)有技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:
一種用于3D打印的模型分割和打包方法,包括:
步驟一,金字塔形狀分解;
在模型內(nèi)部散列若干樣本點(diǎn),通過聚類方法逐漸構(gòu)建出越來越大的分塊,將這些分塊進(jìn)一步合并形成若干候選金字塔形狀塊,通過解決精確覆蓋問題確立最終的分解方案;
步驟二,尋找最優(yōu)打包方案;
將各分塊體素化處理,然后給定初始分塊打包序列,并將其作為搜索的開始采用禁忌搜索算法對(duì)所有分塊打包序列進(jìn)行搜索, 找到最優(yōu)的打包序列;
步驟三,對(duì)接測(cè)試;
通過迭代將尚未打包的分塊與堆進(jìn)行對(duì)接測(cè)試,逐步將所有分塊打包成堆;對(duì)于一個(gè)有序的分塊集合,按照順序?qū)γ總€(gè)分塊進(jìn)行對(duì)接測(cè)試。
步驟四,分塊打包序列優(yōu)化;
在禁忌搜索的過程中, 每產(chǎn)生一個(gè)新的序列,都要找到序列中各個(gè)分塊的最優(yōu)擺放位置, 因此要按照序列中分塊的前后順序, 對(duì)每個(gè)分塊與已打包的整體進(jìn)行一系列的對(duì)接測(cè)試, 對(duì)接測(cè)試產(chǎn)生大量移動(dòng)方案( 平移、旋轉(zhuǎn)) ,分塊打包入堆后,選擇堆的支撐結(jié)構(gòu)體積最小的移動(dòng),來確定單個(gè)分塊的最優(yōu)移動(dòng);
步驟五,對(duì)領(lǐng)域及候選解集的控制;
采用隨機(jī)法來隨機(jī)交換序列中的兩個(gè)分塊,生產(chǎn)尚未搜索過的區(qū)域,若最優(yōu)解在搜索過程中被更新,則執(zhí)行集中搜索策略;用集中性領(lǐng)域中的最優(yōu)序列組成候選解集,進(jìn)一步進(jìn)行搜索;若在當(dāng)前搜索區(qū)域進(jìn)行了若干次數(shù)的搜索后依然沒有找到更優(yōu)的解,則實(shí)行分散搜索策略,候選解集由多樣性領(lǐng)域中的隨機(jī)序列組成;
步驟六,將打印成型的各部件拼合成整體。
進(jìn)一步的,在步驟五中,所述的若干次數(shù)的搜索設(shè)置為4次。
本發(fā)明的有益效果是:有效地提高打印效率,還減少了打印時(shí)間和支撐材料消耗。
具體實(shí)施方式
為了使本領(lǐng)域技術(shù)人員能夠更加理解本發(fā)明技術(shù)方案,下面結(jié)合實(shí)施例對(duì)本發(fā)明做進(jìn)一步分析。
一種用于3D打印的模型分割和打包方法,包括:
步驟一,金字塔形狀分解;
在模型內(nèi)部散列若干樣本點(diǎn),通過聚類方法逐漸構(gòu)建出越來越大的分塊,將這些分塊進(jìn)一步合并形成若干候選金字塔形狀塊,通過解決精確覆蓋問題確立最終的分解方案;
步驟二,尋找最優(yōu)打包方案;
將各分塊體素化處理,然后給定初始分塊打包序列,并將其作為搜索的開始采用禁忌搜索算法對(duì)所有分塊打包序列進(jìn)行搜索, 找到最優(yōu)的打包序列;
步驟三,對(duì)接測(cè)試;
通過迭代將尚未打包的分塊與堆進(jìn)行對(duì)接測(cè)試,逐步將所有分塊打包成堆;對(duì)接
測(cè)試是為了找到分塊的最佳移動(dòng)旋轉(zhuǎn)方式,從而與已打包整體更好地緊密對(duì)接。
對(duì)于一個(gè)有序的分塊集合,按照順序?qū)γ總€(gè)分塊進(jìn)行對(duì)接測(cè)試。
步驟四,分塊打包序列優(yōu)化;
在禁忌搜索的過程中, 每產(chǎn)生一個(gè)新的序列,都要找到序列中各個(gè)分塊的最優(yōu)擺放位置, 因此要按照序列中分塊的前后順序, 對(duì)每個(gè)分塊與已打包的整體進(jìn)行一系列的對(duì)接測(cè)試, 對(duì)接測(cè)試產(chǎn)生大量移動(dòng)方案( 平移、旋轉(zhuǎn)) ,分塊打包入堆后,選擇堆的支撐結(jié)構(gòu)體積最小的移動(dòng),來確定單個(gè)分塊的最優(yōu)移動(dòng);
步驟五,對(duì)領(lǐng)域及候選解集的控制;
采用隨機(jī)法來隨機(jī)交換序列中的兩個(gè)分塊,生產(chǎn)尚未搜索過的區(qū)域,若最優(yōu)解在搜索過程中被更新,則執(zhí)行集中搜索策略;用集中性領(lǐng)域中的最優(yōu)序列組成候選解集,進(jìn)一步進(jìn)行搜索;若在當(dāng)前搜索區(qū)域進(jìn)行了4次的搜索后依然沒有找到更優(yōu)的解,則實(shí)行分散搜索策略,候選解集由多樣性領(lǐng)域中的隨機(jī)序列組成;
步驟六,將打印成型的各部件拼合成整體。
本發(fā)明本文提的所述方法, 解決了3D打印中大體積物體無法打印的問題, 同時(shí)提出一種對(duì)解空間進(jìn)行搜索的改進(jìn)禁忌搜索算法。算法框架以模型整體作為輸入,最終輸出為高效的分塊打包方案, 由于各分塊緊密地堆積在一起, 打印時(shí)間與打印材料分別節(jié)省了14%~38% 、 21%~46% , 打印效率也得到了極大的提高。由于本算法將模型分成了若干分塊, 因此打印成型后,需要手工將其拼裝成整體。
以上對(duì)本申請(qǐng)所提供的技術(shù)方案進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了實(shí)施例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。