一種基于切片文件的三維打印均勻壁厚抽殼方法
【專利摘要】本發(fā)明公開了一種基于切片文件的三維打印均勻壁厚抽殼方法,包括:輸入模型切片文件,確定抽殼影響層數(shù);對某一切片上的某一輪廓多邊形中的一個采樣點(diǎn)及其法線作豎直平面;用該平面截當(dāng)前切片以下和以上的切片,計算并連接有效交點(diǎn)得到一條壁線;對壁線在進(jìn)行偏置,得到偏置壁線;計算偏置壁線和當(dāng)前水平面交點(diǎn)并將其添加至輪廓多邊形對應(yīng)的抽殼多邊形;按以上步驟遍歷所有切層上所有輪廓多邊形,消除抽殼多邊形上自相交環(huán)并調(diào)整其方向和原始輪廓多邊形方向相反,將其添加至當(dāng)前層輪廓多邊形中,得到一系列抽殼切片并最終輸出。本發(fā)明對當(dāng)前切片輪廓法向壁線進(jìn)行偏置,能夠獲得壁厚均勻的抽殼多邊形輪廓;且可在打印設(shè)備中設(shè)置或修改抽殼壁厚值。
【專利說明】一種基于切片文件的三維打印均勻壁厚抽殼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及三維打印實(shí)體模型抽殼方法,尤其涉及一種基于切片文件的三維打印均勻壁厚抽殼方法。
【背景技術(shù)】
[0002]三維打印是20世紀(jì)80年代發(fā)展起來的一項顛覆傳統(tǒng)生產(chǎn)方式的革命性技術(shù),又叫快速原型、增材制造等。三維打印首先通過通用計算機(jī)輔助設(shè)計(CAD)軟件建模;然后將得到的模型文件導(dǎo)入計算機(jī)輔助制造(CAM)軟件。在CAM軟件里,模型一般需經(jīng)歷缺陷修復(fù)、支撐生成、切片生成等過程,最終將三維實(shí)體模型轉(zhuǎn)化為一系列二維切片輸出。切片文件包含了指導(dǎo)三維打印設(shè)備運(yùn)動的信息,三維打印設(shè)備讀取切片文件并完成打印過程。切片文件由一系列平面輪廓在建造方向上層疊而成。每層切片又由若干順、逆時針多邊形輪廓組成,這些輪廓圍成了當(dāng)前層上的打印區(qū)域。
[0003]輸入三維打印CAM軟件的模型一般表示成實(shí)心實(shí)體。一方面,打印時,如果在每一層切片輪廓內(nèi)掃描填充,必然非常耗時、耗材;在滿足工件強(qiáng)度要求的前提下,為了節(jié)省打印時間和材料,可對實(shí)體模型進(jìn)行抽殼操作,得到原始模型的殼體模型。另一方面,實(shí)際工程應(yīng)用對殼體模型也有一定的需求,如熔模鑄造,為了避免燒鑄過程中出現(xiàn)漲殼現(xiàn)象,通常將鑄模原型做成殼體結(jié)構(gòu)。進(jìn)一步地,在熔模鑄造中,如果鑄模原型殼體厚度不均勻,鑄件在固化過程中可能因?yàn)槭湛s不均勻而損毀。因此,以實(shí)際工程應(yīng)用為背景的三維打印對抽殼操作提出的要求是生成壁厚盡量均勻的殼體模型。
[0004]現(xiàn)有三維打印實(shí)體模型的抽殼方法主要有三種:一是針對原始CAD模型進(jìn)行抽殼,二是針對切片文件進(jìn)行抽殼,三是結(jié)合切片文件和原始CAD模型進(jìn)行抽殼。
[0005]針對第一種方法,Lam等提出了一種基于次邊界八叉樹結(jié)構(gòu)的偏置方法來獲得原始模型的縮減模型,縮減模型加上原始模型即為抽殼模型(參見Lam Tff, Yu KM, CheungKM, Li CL, Octree reinforced thin—shell rapid prototyping, Journal of MaterialsProcessing Technology, 1997.63 (1- 3): 784-787)。Li 等通過 AutoCAD 軟件直接對CSG (constructive solid geometry)格式的實(shí)體模型進(jìn)行偏置操作,得到原始模型的薄壁模型(參見 Li CL, Yu KM, Lam Tff, Implementation and evaluation of thin-shellrapid prototype, Computers in Industry, 1998.35(2): 185-193)??紤]到直接計算三維模型的完美偏置曲面難度較大,Koc等提出將三維曲面偏置過程中產(chǎn)生的復(fù)雜的自相交問題轉(zhuǎn)化到二維平面中消除,他們首先用頂點(diǎn)偏置法得到原始模型的粗糙偏置模型,然后用水平面去截該偏置模型,在二維平面內(nèi)消除偏置截交曲線上的自相交問題,從而得到完美的抽殼切片(參見 Koc B, Lee YS, Non-uniform offsetting and hollowingobjects by using biarcs fitting for rapid prototyping processes, Computers inIndustry, 2002.47(I):1-23)。
[0006]針對第二種方法,Ganesan等提出了一種用NURBS曲線表示的切片輪廓的直接偏置方法,獲取原始輪廓曲線的抽殼偏置曲線;但該方法在切片上均勻偏置,無法在三維空間獲得壁厚均勻的抽殼模型(參見GanesanM, Fadel GM, Hollowing rapid prototyping partsusing offsetting techniques, Proceedings of the Fifth International Conferenceon Rapid Prototyping, 1994.University of Dayton)。
[0007]針對第三種方法,Zhang等提出對二維切片輪廓進(jìn)行不等距偏置,對輪廓上的某一點(diǎn),其偏置距離由該點(diǎn)在原始CAD模型上對應(yīng)面片的傾斜程度決定,并給出了偏置距離的計算公式,該方法理論上能夠獲得壁厚均勻的抽殼模型(參見Zhang Z1DingY, Hong J, A new hollowing process for rapid prototype models, Rapid PrototypingJournal, 2004.10(3):166-175)。
[0008]根據(jù)上述文獻(xiàn)分析可知,現(xiàn)有技術(shù)可能存在的不足之處有:一、直接對CAD模型進(jìn)行偏置計算困難,不易實(shí)現(xiàn),且抽殼模型一旦獲得,殼壁厚度在打印設(shè)備中難以修改;二、現(xiàn)有關(guān)于直接對切片文件進(jìn)行抽殼的文獻(xiàn)較少,而僅有的技術(shù)難以獲得壁厚均勻的抽殼模型。
【發(fā)明內(nèi)容】
[0009]為了解決現(xiàn)有方法在針對三維打印基于切片文件直接抽殼技術(shù)中存在的不足,本發(fā)明提供了一種基于切片文件的三維打印均勻壁厚抽殼方法,該方法在偏置過程中考慮了上、下層切片位置對當(dāng)前層抽殼點(diǎn)位置的影響,因此能夠獲得壁厚均勻的一系列抽殼點(diǎn)。
[0010]本方法基本思想是在當(dāng)前層切片輪廓的法向構(gòu)造豎直平面,用該豎直平面去截各相關(guān)水平切片輪廓,得到一條 截交壁線,然后在該水平面內(nèi)對該壁線進(jìn)行偏置并計算偏置曲線和當(dāng)前層切片的交點(diǎn),從而獲得抽殼點(diǎn)。
[0011]一種基于切片文件的三維打印均勻壁厚抽殼方法,包括如下步驟:
[0012]步驟1、輸入待打印模型的切片文件,以及所需的抽殼壁厚t ;從切片文件中提取切片層厚值h,計算抽殼影響層數(shù)值;t、h、均為大于零的實(shí)數(shù);
[0013]步驟2、針對第i層切片Li上的第j個輪廓多邊形Ej,對輪廓多邊形Ej上的第k個采樣點(diǎn)pk,設(shè)采樣點(diǎn)Pk處法向量為nk,過采樣點(diǎn)Pk沿Hk方向作豎直平面a k ;其中1、k和j為大于零的自然數(shù),且i值小于等于總的切片層數(shù),j小于等于第i層切片Li上的輪廓多邊形總數(shù),k小于等于第j個輪廓多邊形總的采樣點(diǎn)數(shù);
[0014]步驟3、用豎直平面a k分別去截第i層切片Li以下和以上的層切片,即第1-?層到1+?層切片,計算得到每層切片上的一個有效交點(diǎn);從采樣點(diǎn)Pk開始向上或向下分別連接這些有效交點(diǎn),得到一條壁線Ck ;
[0015]步驟4、在豎直平面α,內(nèi)對壁線Ck向nk所指的那一側(cè)進(jìn)行偏置,偏置距離為t,得到壁線Ck的偏置壁線(fv;其中t為大于零的實(shí)數(shù);
[0016]步驟5、計算偏置壁線G和第i層水平面的交點(diǎn)Hk,交點(diǎn)Hk為采樣點(diǎn)Pk對應(yīng)的抽
殼點(diǎn);將交點(diǎn)Hk添加至輪廓多邊形對應(yīng)的抽殼多邊形爲(wèi);更新k值,跳至步驟2直至Ej
上所有采樣點(diǎn)被遍歷;其中第i層水平面為第i層切片Li所在的平面;若交點(diǎn)Hk不存在,則直接更新k值,跳至步驟2直至上所有采樣點(diǎn)被遍歷;
[0017]步驟6、消除以上得到的抽殼多邊形乓上的自相交環(huán),并調(diào)整抽殼多邊形^方向使其和輪廓多邊形方向相反;將抽殼多邊形$添加至當(dāng)前第i層切片Li中;更新j值,跳至步驟2直至當(dāng)前層所有原始輪廓多邊形被遍歷;
[0018]步驟7、更新i值,跳至步驟2直至切片文件中所有切片被遍歷;輸出均勻壁厚的抽殼切片文件。
[0019]本發(fā)明的抽殼方法的輸入僅為切片文件,而不包含任何原始模型的CAD文件或信息;本發(fā)明說明過程中認(rèn)為切片文件中各層切片沿水平方向,抽殼基本方法為采用豎直平面對各水平切片進(jìn)行截交,得到豎直平面內(nèi)模型壁上的一條截交壁線,然后在豎直平面內(nèi)對該壁線偏置得到精確地抽殼壁厚值。
[0020]進(jìn)一步地,所述步驟I中輸入的切片文件由一系列沿水平方向的輪廓層疊而成;每層切片又包含若干輪廓多邊形,其中逆時針輪廓多邊形表示實(shí)體外邊界,順時針輪廓多邊形表示實(shí)體內(nèi)邊界。步驟I中,提取切片層厚值h時:若切片文件中包含切片層厚的字段,讀取該字段獲得切片層厚度值h;如果切片文件中不包含該字段,則取兩相鄰層高度值相減得到厚度值h。
[0021]在對第i層切片抽殼過程中,i層切片以上或以下一定范圍內(nèi)的切片輪廓對該層抽殼形狀都會有影響,這個抽殼影響層數(shù)值和抽殼壁厚t以及切片層厚h相關(guān)。所以,作為優(yōu)選,步驟I中,通過下述公式(I)計算得到抽殼影響層數(shù)值:
[0022]nr=t/h+l (I)。
[0023]作為優(yōu)選,步驟2中,所述輪廓多邊形Ej上采樣點(diǎn)Pk處nk具體求法如下:
[0024]( I)如果采樣點(diǎn)Pk位于輪廓多邊形Ej的頂點(diǎn)上,則:
[0025]當(dāng)輪廓多邊形Ej的方向?yàn)槟鏁r針,則相應(yīng)的nk方向沿著輪廓多邊形Ej在采樣點(diǎn)Pk處的內(nèi)角平分線設(shè)置;
[0026]當(dāng)輪廓多邊形&的方向?yàn)轫槙r針,則相應(yīng)的nk方向沿著輪廓多邊形&在采樣點(diǎn)Pk處外角平分線設(shè)置;
[0027](2)如果采樣點(diǎn)Pk位于輪廓多邊形Ej的某條邊上,則:
[0028]當(dāng)輪廓多邊形方向?yàn)槟鏁r針,相應(yīng)的nk方向沿著與該邊垂直且指向多邊形內(nèi)側(cè)的方向上設(shè)置;
[0029]當(dāng)輪廓多邊形方向?yàn)轫槙r針,相應(yīng)的nk方向沿著與該邊垂直且指向多邊形外側(cè)的方向上設(shè)置。無論是以上哪種情況,nk始終在水平平面內(nèi)。
[0030]進(jìn)一步地,所述步驟3中在用豎直平面α,去截某一層水平切片Lq(qe [1-nr,i+nj)上的輪廓多邊形時,可能存在多個交點(diǎn),但有效交點(diǎn)只有一個。步驟3中,在用豎直平面a k去截某一層切片上的輪廓多邊形時,若存在多個交點(diǎn),則需要選取一個交點(diǎn)為有效交點(diǎn);從多個交點(diǎn)中選取有效交點(diǎn)的方法如下:將得到的各個交點(diǎn)在當(dāng)前切片的水平面內(nèi)沿nk方向進(jìn)行排序,找出位于nk最尾端的交點(diǎn)為有效交點(diǎn)。對第i層切片,其有效交點(diǎn)即為Pk。
[0031]步驟3中,所述豎直平面α,和某一層切片上的輪廓多邊形也可能不存在任何交點(diǎn),此時再人為在豎直平面ak和該層切片的交線上沿nk正向無窮遠(yuǎn)處構(gòu)造一個點(diǎn),并將該點(diǎn)添加至壁線Ck ;若該層切片在第i層切片Li上方,則壁線Ck向上停止生長,即不再檢測該層切片以上的切片和豎直平面a k的相交情況;反之則壁線Ck向下停止生長。
[0032]進(jìn)一步地,所述步驟4中對空間壁線的偏置可參見現(xiàn)有文獻(xiàn)中方法,但要求保證輸出的偏置線上無自相交的情況。
[0033]作為優(yōu)選,步驟6中,消除抽殼多邊形爲(wèi)上的自相交環(huán)使用Lai等提出的FLTM
法。該方法能夠?qū)⒍S的平面多邊形自相交問題轉(zhuǎn)化到一維數(shù)軸上分析,簡化自相交的處理過程,效率較高(參見 Lai YL, Wu JSS, Hung JP, hen JH, A simple method for invalidloops removal of planar offset curves, The International Journal of AdvancedManufacturing Technology,2006.27(11):1153-1162)。
[0034]步驟6中,在消除了抽殼多邊形鳥上的自相交環(huán)后,若抽殼多邊形@分裂成多個
子多邊形,調(diào)整每個子多邊形的方向與原始輪廓多邊形&方向相反,S卩:如果輪廓多邊BEj為逆時針,則調(diào)整子多邊形的方向?yàn)轫槙r針;如果輪廓多邊形&為順時針,則調(diào)整子多邊形
方向?yàn)槟鏁r針,然后將調(diào)整后抽殼多邊形$添加到當(dāng)前第i層切片Li中,作為新的輪廓多邊形。
[0035]進(jìn)一步地,所述在當(dāng)前層第i層切片Li上對所有原始輪廓多邊形進(jìn)行抽殼操作之后,當(dāng)前層上需要掃描的區(qū)域由原始輪廓多邊形和抽殼多邊形共同圍成,其中逆時針多邊形表示實(shí)體外邊界,順時針多邊形表示實(shí)體內(nèi)邊界。
[0036]本發(fā)明一種基于切片文件的三維打印均勻壁厚抽殼方法,具有的有益的效果是:
[0037]對當(dāng)前切片輪廓法向壁線進(jìn)行偏置,能夠獲得壁厚均勻的抽殼多邊形輪廓;直接對切片文件進(jìn)行抽殼,不涉及原始CAD模型任何信息,因此可在打印設(shè)備中設(shè)置或修改抽殼壁厚值,操作簡單,可調(diào)節(jié)性強(qiáng)。
【專利附圖】
【附圖說明】
[0038]圖1為本發(fā)明基于切片文件的三維打印均勻壁厚抽殼方法流程圖。
[0039]圖2 (a)為本發(fā)明實(shí)施例部分中一個簡單的球體模型。
[0040]圖2 (b)為圖2 Ca)所示的球體模型的切片文件。
[0041]圖3為輪廓多邊形上采樣點(diǎn)Pk法向nk求解時兩種情況,圖3 Ca)中采樣點(diǎn)Pk在輪廓多邊形的頂點(diǎn)處;圖3 (b)中,采樣點(diǎn)Pk在輪廓多邊形的一個邊上。
[0042]圖4為本發(fā)明實(shí)施例部分根據(jù)采樣點(diǎn)構(gòu)造的豎直平面α,以及截交得到的壁線Ck。
[0043]圖5為豎直平面a k和水平切層輪廓多邊形截交時有效交點(diǎn)求法,圖5 Ca)為存在兩個交點(diǎn)的情況,圖5 (b)為存在多個交點(diǎn)的情況。
[0044]圖6偏置壁線以及抽殼點(diǎn)計算。
[0045]圖7為切層上由原始多邊形和抽殼多邊形圍成的殼體區(qū)域。
[0046]圖8為實(shí)例中對球體切片文件壁厚均勻的抽殼結(jié)果。
【具體實(shí)施方式】
[0047]下面結(jié)合附圖和實(shí)施例對本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實(shí)施例不構(gòu)成對本發(fā)明的限定。
[0048]本發(fā)明基于切片文件的三維打印均勻壁厚抽殼方法的流程圖如圖1所示,具體實(shí)施步驟如下:
[0049]步驟101、輸入待打印模型的切片文件,以及所需的抽殼壁厚t ;從切片文件中提取切片層厚值h,計算抽殼影響層數(shù)值n^t/h+Ι。t、h、均為大于零的實(shí)數(shù)。
[0050]輸入的切片文件在三維打印CAM軟件(如Magics RP)中生成,由一系列沿水平方向的輪廓層疊而成,如圖2所示;圖2 (a)為一個簡單的球體模型,圖2 (b)為該球形模型對應(yīng)的切片文件。圖2 (b)中的切片文件中的每層切片又包含若干輪廓多邊形,其中逆時針輪廓表示實(shí)體外邊界,順時針輪廓表示實(shí)體內(nèi)邊界。在輸入的切片文件中,一般包含切片層厚的字段,讀取該字段獲得切片層厚度值h ;如果切片文件中不包含該字段,則取兩相鄰層高度值相減得到厚度值h,如圖2所示,在對第i層切片抽殼過程中,i層切片以上或以下一定范圍內(nèi)的切片輪廓對該層抽殼形狀都會有影響,這個層數(shù)范圍值\和抽殼壁厚t以及切片層厚h相關(guān),具體關(guān)系式為:r^=t/h+l。
[0051]步驟102、針對第i層切片Li上的第j個輪廓多邊形Ej ;對輪廓多邊形Ej上的采樣點(diǎn)Pk,設(shè)采樣點(diǎn)Pk處法向量為nk,過采樣點(diǎn)Pk沿nk方向作豎直平面Cik。其中1、k和j為大于零的自然數(shù),且i值小于等于總的切片層數(shù),j小于等于第i層切片Li上的輪廓多邊形總數(shù),k小于等于第j個輪廓多邊形總的采樣點(diǎn)數(shù)。
[0052]簡單起見,對第i層切片Li上的輪廓多邊形按距離均勻采樣,任意一個采樣點(diǎn)Pk處法向量nk具體求法如下:(I)如圖3 (a)所示,如果采樣點(diǎn)Pk恰好位于輪廓多邊形Ej的頂點(diǎn)上,則相應(yīng)的nk方向沿著輪廓多邊形在采樣點(diǎn)Pk處角的內(nèi)角平分線(輪廓多邊形Ej的方向?yàn)槟鏁r針)或外角平分線(輪廓多邊形的方向?yàn)轫槙r針);(2)如圖3 (b)所示,如果采樣點(diǎn)Pk位于輪廓多邊形Ej的某條邊上,則相應(yīng)的nk方向沿著與該邊垂直且指向多邊形內(nèi)側(cè)(輪廓多邊形的方向?yàn)槟鏁r針)或外側(cè)(輪廓多邊形的方向?yàn)轫槙r針)的方向上。無論是以上哪種情況,nk始終在水平平面內(nèi)。圖4給出了根據(jù)采樣點(diǎn)Pk和向量nk構(gòu)造出的豎直平面ctk402。
[0053]步驟103、用豎直平面a k分別去截第i層切片以下和以上的層切片,即第層到1+?層切片,計算得到`每層切片上的一個有效交點(diǎn);從匕開始向上或向下分別連接這些有效交點(diǎn),得到一條壁線Ck401。
[0054]按上述方法得到的壁線Ck如圖4所示。需要注意的是,在用豎直平面ak去截某一層水平切片Lq (q e [1-n" i+nj)上的輪廓多邊形時,可能存在多個交點(diǎn),但有效交點(diǎn)只有一個。圖5給出了 XY平面內(nèi)存在兩個或兩個以上交點(diǎn)的有效交點(diǎn)選取實(shí)例,圖5 (a)為交點(diǎn)為兩個的情況,圖5 (b)為交點(diǎn)為四個的情況,其中有效點(diǎn)選取的具體方法如下:將得到的各個交點(diǎn)在當(dāng)前切片水平面內(nèi)沿向量nk方向進(jìn)行排序,找出位于向量最尾端的交點(diǎn)為有效交點(diǎn),即得到圖5 (a)和圖5 (b)中的有效點(diǎn)501。對第i層切片,其有效交點(diǎn)即為Pk。
[0055]上述所述豎直平面α k和水平切片Lq上的輪廓多邊形也可能不存在任何交點(diǎn),此時再人為在豎直平面a k和水平切片Lq的交線上沿nk正向無窮遠(yuǎn)處構(gòu)造一個點(diǎn),并將該點(diǎn)添加至壁線Ck。若水平切片Lq在第i層切片Li上方,則壁線Ck向上停止生長,即不再檢測水平切片Lq以上的水平面和豎直平面a k的相交情況;反之則壁線Ck向下停止生長。
[0056]由于模型的頂端和底端是不用抽殼的,所以尋找有效點(diǎn)時,對于接近頂端(底端)的層,如果不夠K層,那么按照實(shí)際存在的切片的層數(shù)進(jìn)行計算即可,最終得到壁線。
[0057]步驟104、在豎直平面a k內(nèi)對壁線Ck向向量nk所指的那一側(cè)進(jìn)行偏置,偏置距離
為t,得到Ck的偏置壁線(^。
[0058]對空間壁線的偏置可參見現(xiàn)有文獻(xiàn)中方法,但要求保證輸出的偏置線上無自相交的情況,且偏置效率要求盡可能高。本實(shí)施例中對空間曲線的偏置使用Choi等提出的PWID法,該方法能在接近線性時間內(nèi)輸出無自相交的偏置線(參見Choi BK, ParkSC,A Pair-Wise Offset Algorithm for2d Point-Sequence Curve, Computer-AidedDesign, 31 (1999):735-745.)D圖6給出了在豎直平面a k內(nèi)多壁線Ck偏置距離t的結(jié)果。
[0059]步驟105、計算偏置壁線C和第i層水平面(第i層切片Li所在的平面)的交點(diǎn)
Hk, Hk為Pk對應(yīng)的抽殼點(diǎn);將Hk添加至輪廓多邊形Ej對應(yīng)的抽殼多邊形爲(wèi);k++ (即更新k
值,可采用遞增或者遞減的方式更新,O <k<M,M為輪廓多邊形&上采樣點(diǎn)的總數(shù)),跳至步驟102直至輪廓多邊形上所有點(diǎn)被遍歷。
[0060]如圖6所示,Hk為偏置壁線和當(dāng)前水平面的交點(diǎn),即Pk對應(yīng)的抽殼點(diǎn)。需要注意的是,偏置壁線C1和第i層水平面的交點(diǎn)Hk可能存在,也可能不存在。若Hk存在,則將Hk
添加至抽殼多邊形為;否則直接k++,跳至步驟102。
[0061]步驟106、消除以上得到的抽殼多邊形g上的自相交環(huán),并調(diào)整鳥方向使其和Ej
方向相反;將4添加至當(dāng)前切片Li中;j++(即更新j值,可采用遞增或者遞減的方式更新,
O < j < P,P為第i層切片Li上輪廓多邊形的總數(shù)),跳至步驟102直至當(dāng)前層所有原始輪廓多邊形被遍歷。
[0062]消除抽殼多邊形鳥上的自相交環(huán)使用Lai等提出的FLTM法,該方法能夠?qū)⒍S
的平面多邊形自相交問題轉(zhuǎn)化到一維數(shù)軸上分析,簡化自相交的處理過程,效率較高(參見 Lai YLj Wu JSSj Hung JPj Chen JHj A simple method for invalid loops removal ofplanar offset curves, The International Journal of Advanced Manufacturing Technology, 2006.27(11): 1153-1162)。
[0063]如圖7所示,在消除了抽殼多邊形爲(wèi)上的自相交環(huán)后,抽殼多邊形可能分裂成多個子多邊形,調(diào)整每個子多邊形的方向和原始多邊形&方向相反。具體地,如果抽殼多邊形為逆時針,則調(diào)整抽殼多邊形^方向?yàn)轫槙r針;如果抽殼多邊形為順時針,則調(diào)
整抽殼多邊形馬方向?yàn)槟鏁r針。然后將$添加到當(dāng)前切片層Li中,作為新的輪廓多邊形。
[0064]步驟107、i++ (即更新i值,可采用遞增或者遞減的方式更新,O < i≤0,O為切片文件中切片的總數(shù)),跳至步驟102直至切片文件中所有切片被遍歷;輸出均勻壁厚的抽殼切片文件。
[0065]如圖7所示,在當(dāng)前層Li上對所有原始輪廓多邊形進(jìn)行抽殼操作之后,當(dāng)前層上需要掃描的區(qū)域由原始輪廓多邊形和抽殼多邊形共同圍成,其中逆時針多邊形表示實(shí)體外邊界,順時針多邊形表示實(shí)體內(nèi)邊界。
[0066]本發(fā)明的一個典型實(shí)施實(shí)例如下:
[0067]1.本例中選擇的待打印零件為以球體模型,切片文件如圖1所示。該球體模型半徑約為50mm,切片層厚h=0.5mm。
[0068]2.將上述切片文件導(dǎo)入用C++語言按本發(fā)明方法編寫的測試程序中,在測試程序中,設(shè)置抽殼壁厚t=5mm,則影響層數(shù)值nf5/0.5+1=11,即計算當(dāng)前層抽殼多邊形時需向上和向下分別考慮11層(模型低端和頂端例外)。
[0069]圖8給出了對上述球體切片文件的抽殼結(jié)果。由圖8可知,無論在那個高度上,模型彎曲程度如何變化,抽殼模型802 (深色)和原始模型801 (淺色)之間間距均勻,即抽殼壁厚均勻。該實(shí)例說明了本發(fā)明方法具有一定的實(shí)用性。
[0070]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的一般技術(shù)人員來說,本發(fā)明還可以有各種更改和變化。在不脫離本發(fā)明原理的前提下,所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,包括如下步驟: 步驟1、輸入待打印模型的切片文件,以及所需的抽殼壁厚t ;從切片文件中提取切片層厚值h,計算抽殼影響層數(shù)值K ;其中t、h和為大于零的實(shí)數(shù); 步驟2、針對第i層切片Li上的第j個輪廓多邊形Ej,對輪廓多邊形Ej上的第k個采樣點(diǎn)Pk,設(shè)采樣點(diǎn)Pk處法向量為nk,過采樣點(diǎn)Pk沿nk方向作豎直平面a k ;其中1、k和j為大于零的自然數(shù); 步驟3、用豎直平面a k分別去截第i層切片Li以下和以上的層切片,即第1-r^層到i+r^層切片,計算得到每層切片上的一個有效交點(diǎn);從采樣點(diǎn)Pk開始向上或向下分別連接這些有效交點(diǎn),得到一條壁線Ck ; 步驟4、在豎直平面a k內(nèi)對壁線Ck向nk所指的那一側(cè)進(jìn)行偏置,偏置距離為t,得到壁線Ck的偏置壁線其中t為大于零的實(shí)數(shù); 步驟5、計算偏置壁線^和第i層水平面的交點(diǎn)Hk ,交點(diǎn)Hk為采樣點(diǎn)Pk對應(yīng)的抽殼點(diǎn);將交點(diǎn)Hk添加至輪廓多邊形對應(yīng)的抽殼多邊形爲(wèi);更新k值,跳至步驟2直至上所有采樣點(diǎn)被遍歷;其中第i層水平面為第i層切片Li所在的平面;若交點(diǎn)Hk不存在,則直接更新k值,跳至步驟2直至上所有采樣點(diǎn)被遍歷; 步驟6、消除以上得到的抽殼多邊形上的自相交環(huán),并調(diào)整抽殼多邊形五,萬向使其和輪廓多邊形方向相反;將抽殼多邊形爲(wèi)添加至當(dāng)前第i層切片Li中;更新j值,跳至步驟2直至當(dāng)前層所有原始輪廓多邊形被遍歷; 步驟7、更新i值,跳至步驟2直至切片文件中所有切片被遍歷;輸出均勻壁厚的抽殼切片文件。
2.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟I中,提取切片層厚值h時:若切片文件中包含切片層厚的字段,讀取該字段獲得切片層厚度值h ;如果切片文件中不包含該字段,則取兩相鄰層高度值相減得到厚度值h。
3.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟I中,通過下述公式(I)計算得到抽殼影響層數(shù)值\: nr=t/h+l (1)。
4.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟2中,所述輪廓多邊形上采樣點(diǎn)Pk處nk具體求法如下: (O如果采樣點(diǎn)Pk位于輪廓多邊形Ej的頂點(diǎn)上,則: 當(dāng)輪廓多邊形的方向?yàn)槟鏁r針,則相應(yīng)的nk方向沿著輪廓多邊形在采樣點(diǎn)Pk處的內(nèi)角平分線設(shè)置; 當(dāng)輪廓多邊形的方向?yàn)轫槙r針,則相應(yīng)的nk方向沿著輪廓多邊形在采樣點(diǎn)Pk處外角平分線設(shè)置; (2)如果采樣點(diǎn)Pk位于輪廓多邊形Ej的某條邊上,則: 當(dāng)輪廓多邊形&的方向?yàn)槟鏁r針,相應(yīng)的nk方向沿著與該邊垂直且指向多邊形內(nèi)側(cè)的方向上設(shè)置; 當(dāng)輪廓多邊形&的方向?yàn)轫槙r針,相應(yīng)的nk方向沿著與該邊垂直且指向多邊形外側(cè)的方向上設(shè)置。
5.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟3中,在用豎直平面a k去截某一層切片上的輪廓多邊形時,若存在多個交點(diǎn),則需要選取一個交點(diǎn)為有效交點(diǎn);從多個交點(diǎn)中選取有效交點(diǎn)的方法如下:將得到的各個交點(diǎn)在當(dāng)前切片的水平面內(nèi)沿nk方向進(jìn)行排序,找出位于nk最尾端的交點(diǎn)為有效交點(diǎn)。
6.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟3中,所述豎直平面α,和某一層切片上的輪廓多邊形也可能不存在任何交點(diǎn),此時再人為在豎直平面ak和該層切片的交線上沿nk正向無窮遠(yuǎn)處構(gòu)造一個點(diǎn),并將該點(diǎn)添加至壁線Ck ;若該層切片在第i層切片Li上方,則壁線Ck向上停止生長,即不再檢測該層切片以上的切片和豎直平面a k的相交情況;反之則壁線Ck向下停止生長。
7.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟6中,消除抽殼多邊形Z;上的自相交環(huán)使用FLTM法。
8.根據(jù)權(quán)利要求1所述的基于切片文件的三維打印均勻壁厚抽殼方法,其特征在于,步驟6中,在消除了抽殼多邊形爲(wèi)上的自相交環(huán)后,若抽殼多邊形五/分裂成多個子多邊形,調(diào)整每個子多邊形的方向與原始輪廓多邊形&方向相反,即:如果輪廓多邊形&為逆時針,則調(diào)整子多邊形的方向?yàn)轫槙r針;如果輪廓多邊形&為順時針,則調(diào)整子多邊形方向?yàn)槟鏁r針,然后將調(diào)整后抽殼多邊形4添加到當(dāng)`前第i層切片Li中,作為新的輪廓多邊形。
【文檔編號】G06F17/50GK103823649SQ201410064158
【公開日】2014年5月28日 申請日期:2014年2月25日 優(yōu)先權(quán)日:2014年2月25日
【發(fā)明者】傅建中, 林志偉, 賀永, 沈洪垚, 付國強(qiáng), 賴金濤 申請人:浙江大學(xué)