本發(fā)明涉及無(wú)線控制技術(shù)領(lǐng)域,尤其涉及一種用于3D打印的填充形狀生成方法。
背景技術(shù):
3D打印,是當(dāng)今熱門的一種快速成型技術(shù),它是一種以數(shù)字模型文件為基礎(chǔ),運(yùn)用粉末狀金屬或塑料等可粘合材料,通過(guò)逐層打印的方式來(lái)構(gòu)造物體的技術(shù)。雖然3D打印可以降低生產(chǎn)成本和生產(chǎn)時(shí)間,但由于一個(gè)模型一般會(huì)擁有數(shù)量很大的層數(shù),而每個(gè)層片的內(nèi)部均需要通過(guò)填充的方式對(duì)整體結(jié)構(gòu)進(jìn)行固化和支撐,如果填充率為100%,那打印的就是實(shí)心的模型,這樣既不經(jīng)濟(jì)也影響速度。所以,一般3D打印的時(shí)候?yàn)榱斯?jié)省材料和時(shí)間,其填充率均不設(shè)置為100%的。
目前,在現(xiàn)有技術(shù)中,其填充方式一般為直線平行掃描填充法:將STL數(shù)字模型文件進(jìn)行切片處理后,生成掃描路徑,根據(jù)填充密度的要求,奇數(shù)層按X軸方向掃描填充,偶數(shù)層按Y軸方向掃描填充,兩層間根據(jù)填充密度要求生成正方形。此算法結(jié)構(gòu)簡(jiǎn)單,掃描時(shí)間快,但奇偶層之間在X、Y方向交叉點(diǎn)上進(jìn)行上下粘連,其使得產(chǎn)品的整體結(jié)構(gòu)并不緊密,機(jī)械強(qiáng)度與抗沖擊力不強(qiáng),容易損壞。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述問(wèn)題,本發(fā)明的目的是提供一種用于3D打印的填充形狀生成方法,包括:
導(dǎo)入模型每一層的輪廓環(huán)數(shù)據(jù),得到一個(gè)以上的輪廓環(huán);
在一個(gè)輪廓環(huán)中,生成兩條以上相互平行的直線,每?jī)芍本€之間的 間隔步長(zhǎng)相等,且每根直線上均有與所述輪廓環(huán)相接的交點(diǎn);
在每一條直線上,找出該直線與輪廓環(huán)上的交點(diǎn),并根據(jù)相鄰的交點(diǎn)得到在輪廓環(huán)內(nèi)的線段;
以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成填充波形,直到該填充波形與輪廓環(huán)相接為止;
以一條已生成填充波形的直線的為基礎(chǔ)線,判斷其相鄰的直線是否均已生成填充波形,如未生成,則將該基礎(chǔ)線與該相鄰的直線組成直線組,并生成新的填充波形,且兩相鄰的填充波形的相位相同或相反;如已生成,則完成填充。
進(jìn)一步,所述以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成填充波形還包括:
判斷填充波形的波形形式,若為方波,以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成方波填充波形;若為鋸齒波,以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成鋸齒波填充波形。
進(jìn)一步,兩相鄰的填充波形的相位相同或相反還包括:
當(dāng)填充波形的波形形式為方波時(shí),兩相鄰的填充波形的相位相同;
當(dāng)填充波形的波形形式為鋸齒波時(shí),兩相鄰的填充波形的相位相反。
進(jìn)一步,所述在該直線組中的兩條相互平行的線段之間,往復(fù)的生成方波填充波形包括:
以第一條線段的第一個(gè)交點(diǎn)為起點(diǎn)P1,在該第一條線段上取一個(gè)間隔步長(zhǎng)得到點(diǎn)P2,生成填充線段P1P2,再以P2點(diǎn)為起點(diǎn),作垂直于第二條線段的垂直線,使該第二條線段的垂直線與第二條線段相交于點(diǎn)P3,生成填充線段P2P3,再以P3為起點(diǎn),在第二條線段上取一個(gè)間隔步長(zhǎng)得到點(diǎn)P4,再以P4點(diǎn)為起點(diǎn),作垂直于第一條線段的垂直線,使該第 一條線段的垂直線與第一條線段相交于點(diǎn)P5,生成填充線段P4P5,并將P5定義為起點(diǎn)P1;且在生成填充線段P1P2、P2P3、P3P4、P4P5前,判斷填充線段P1P2、P2P3、P3P4、P4P5,是否與輪廓環(huán)相交,如相交,則不生成對(duì)應(yīng)的線段。
進(jìn)一步,所述在該直線組中的兩條相互平行的線段之間,往復(fù)的生成鋸齒波填充波形包括:
以第一條線段的第一個(gè)交點(diǎn)為起點(diǎn)P1’,在第一條線段上取一個(gè)步長(zhǎng)得到點(diǎn)P2’,作P2’到第二條線段的垂直線,該第二條線段的垂直線與第二條線段相交于點(diǎn)P3’,生成填充線段P1’P3’,再以P3’為基點(diǎn),在第二條線段上取一個(gè)步長(zhǎng)得到點(diǎn)P4’,作P4’到第一條線段的垂直線,第一條線段的垂直線與第一條線段相交于P5’,連接P3’P5’,并將P5’定義為起點(diǎn)P1’;且在生成填充線段P1’P3’、P3’P5’前,判斷填充線段P1’P3’、P3’P5’,是否與輪廓環(huán)相交,如相交,則不生成對(duì)應(yīng)的線段。
進(jìn)一步,所述在每一條直線上,找出該直線與輪廓環(huán)上的交點(diǎn),并根據(jù)相鄰的交點(diǎn)得到在輪廓環(huán)內(nèi)的線段還包括:
記錄每一條直線上在輪廓環(huán)內(nèi)的線段數(shù)量。
進(jìn)一步,所述以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成填充波形,直到該填充波形與輪廓環(huán)相接為止之后包括:
判斷直線組中的每條直線是否含有兩條以上的線段,若含有兩條以上的線段,則在當(dāng)前直線組的填充波形的結(jié)束點(diǎn)所在的直線上,以整數(shù)倍的間隔步長(zhǎng)搜索在該直線上的另一條線段,在搜索到另一條線段時(shí),再次生成填充波形。
進(jìn)一步,所述在一個(gè)輪廓環(huán)中,生成兩條以上相互平行的直線包括:
計(jì)算輪廓環(huán)的坐標(biāo),并根據(jù)輪廓環(huán)的Y軸坐標(biāo),生成兩條以上平行于X軸的直線,且輪廓環(huán)的Y軸最大值和最小值均分別與一平行于X 軸的直線相切。
進(jìn)一步,所述在一個(gè)輪廓環(huán)中,生成兩條以上相互平行的直線,每?jī)芍本€之間的間隔步長(zhǎng)相等之前包括:
輸入填充密度百分比。
進(jìn)一步,所述間隔步長(zhǎng)為:
間隔步長(zhǎng)=(輪廓環(huán)的Y軸最大值-輪廓環(huán)的Y軸最小值)×填充密度百分比。
本發(fā)明所提供的一種用于3D打印的填充形狀生成方法,其增加了填充材料之間的接合面,極大的提高了產(chǎn)品的機(jī)械強(qiáng)度與抗沖擊力,使得打印出來(lái)的產(chǎn)品更加堅(jiān)固耐用。
附圖說(shuō)明
圖1為本發(fā)明的一個(gè)實(shí)施例的工作流程示意圖;
圖2為本發(fā)明中另一個(gè)實(shí)施例的工作流程示意圖;
圖3為本發(fā)明中的獲取交點(diǎn)步驟的工作原理圖;
圖4為本發(fā)明中的生成方波中一個(gè)步驟的工作原理圖;
圖5為本發(fā)明中的生成方波中另一個(gè)步驟的工作原理圖;
圖6為本發(fā)明中的生成鋸齒波中一個(gè)步驟的工作原理圖;
圖7為本發(fā)明中的生成鋸齒波中另一個(gè)步驟的工作原理圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
請(qǐng)參閱圖1、圖3,本發(fā)明一個(gè)實(shí)施例提供一種用于3D打印的填充形狀生成方法,包括:
101.導(dǎo)入輪廓環(huán)數(shù)據(jù)
導(dǎo)入模型每一層的輪廓環(huán)數(shù)據(jù),得到一個(gè)以上的輪廓環(huán)C;
102.生成平行的直線
在一個(gè)輪廓環(huán)C中,生成兩條以上相互平行的直線B,每?jī)芍本€B之間的間隔步長(zhǎng)D相等,且每根直線B上均有與所述輪廓環(huán)C相接的交點(diǎn)A;
103.獲取交點(diǎn)
在每一條直線B上,找出該直線B與輪廓環(huán)C上的交點(diǎn)A,并根據(jù)相鄰的交點(diǎn)A得到在輪廓環(huán)C內(nèi)的線段;
104.生成相位相同或相反的填充波形
以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成填充波形,直到該填充波形與輪廓環(huán)C相接為止;
以一條已生成填充波形的直線B的為基礎(chǔ)線,判斷其相鄰的直線B是否均已生成填充波形,如未生成,則將該基礎(chǔ)線與該相鄰的直線組成直線組,并生成新的填充波形,且兩相鄰的填充波形的相位相同或相反;如已生成,則完成填充。
請(qǐng)參閱圖2、圖4-圖7,本發(fā)明另一個(gè)實(shí)施例提供一種用于3D打印的填充形狀生成方法,包括:
201.導(dǎo)入輪廓環(huán)數(shù)據(jù)
導(dǎo)入模型每一層的輪廓環(huán)數(shù)據(jù),得到一個(gè)以上的輪廓環(huán);所述導(dǎo)入的方式包括:手動(dòng)輸入或電子導(dǎo)入;
202.輸入填充密度百分比
對(duì)本次需要填充的密度百分比進(jìn)行輸入;
203.生成平行的直線
在一個(gè)輪廓環(huán)中,計(jì)算輪廓環(huán)的坐標(biāo),并根據(jù)輪廓環(huán)的Y軸坐標(biāo),生成兩條以上平行于X軸的直線,且輪廓環(huán)的Y軸最大值和最小值均分別與一平行于X軸的直線相切,其以輪廓環(huán)的Y軸的最小點(diǎn)為起始點(diǎn),作平行于X軸的直線Y=a+b*n;a為外輪廓環(huán)的Y軸最小點(diǎn)的坐標(biāo)值; b為切割輪廓環(huán)的步長(zhǎng);n值為1、2、3....n;這個(gè)值與填充密度成反比。Y的值在外輪廓Y軸最小值和最大值之間;每?jī)芍本€之間的間隔步長(zhǎng)相等,且每根直線上均有與所述輪廓環(huán)相接的交點(diǎn);
其中,間隔步長(zhǎng)=(輪廓環(huán)的Y軸最大值-輪廓環(huán)的Y軸最小值)×填充密度百分比。
204.獲取交點(diǎn)
在每一條直線上,找出該直線與輪廓環(huán)上的交點(diǎn),并根據(jù)相鄰的交點(diǎn)得到在輪廓環(huán)內(nèi)的線段;同時(shí),記錄每一條直線上在輪廓環(huán)內(nèi)的線段數(shù)量;
205.判斷填充波形
判斷填充波形的波形形式,若為方波,以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成方波填充波形;若為鋸齒波,以兩條相鄰的直線組成一直線組,在該直線組中的兩條相互平行的線段之間,往復(fù)的生成鋸齒波填充波形;
206.生成方波
以第一條線段的第一個(gè)交點(diǎn)為起點(diǎn)P1,在該第一條線段上取一個(gè)間隔步長(zhǎng)得到點(diǎn)P2,判斷填充線段P1P2是否與輪廓環(huán)相交,如相交,則不生成填充線段P1P2,如不相交,則生成填充線段P1P2,再以P2點(diǎn)為起點(diǎn),作垂直于第二條線段的垂直線,使該第二條線段的垂直線與第二條線段相交于點(diǎn)P3,判斷填充線段P2P3是否與輪廓環(huán)相交,如相交,則不生成填充線段P2P3,如不相交,則生成填充線段P2P3,再以P3為起點(diǎn),在第二條線段上取一個(gè)間隔步長(zhǎng)得到點(diǎn)P4,判斷填充線段P3P4是否與輪廓環(huán)相交,如相交,則不生成填充線段P3P4,如不相交,則生成填充線段P3P4,再以P4點(diǎn)為起點(diǎn),作垂直于第一條線段的垂直線,使該第一條線段的垂直線與第一條線段相交于點(diǎn)P5,判斷填充線段P4P5是否與輪廓環(huán)相交,如相交,則不生成填充線段P4P5,如不相交,則生 成填充線段P4P5,并將P5定義為起點(diǎn)P1;重復(fù)上述流程,直到與輪廓環(huán)相交為止。
判斷直線組中的每條直線是否含有兩條以上的線段,若含有兩條以上的線段,則在當(dāng)前直線組的填充波形的結(jié)束點(diǎn)所在的直線上,以整數(shù)倍的間隔步長(zhǎng)搜索在該直線上的另一條線段,在搜索到另一條線段時(shí),將該搜索到的點(diǎn)定義為起點(diǎn)P1,再次生成填充波形。
再以一條已生成填充波形的直線的為基礎(chǔ)線,判斷其相鄰的直線是否均已生成填充波形,如未生成,則將該基礎(chǔ)線與該相鄰的直線組成直線組,并生成新的填充波形,且兩相鄰的填充波形的相位相同;
新的填充波形的起始點(diǎn)P1a的定位方法,是以基礎(chǔ)線的P1點(diǎn)到線段P2的垂直落點(diǎn)A1,如果A1在非基礎(chǔ)線的線段上,則A1點(diǎn)就為非基礎(chǔ)線的線段的起始點(diǎn)P1,如果不在線段上,則向前增加一個(gè)步長(zhǎng)到點(diǎn)A2,判斷A2是否在線段上,如果在,則A2為線段起始點(diǎn)P1a,否則繼續(xù)查找,直到到找起始點(diǎn)P1a為止;然后查找P2a、P3a、P4a、P5a。是其所生成的波形與基礎(chǔ)線上的填充波形相位相同;
當(dāng)所有直線上均已生成填充波形,則填充完成。
207.生成鋸齒波
以第一條線段的第一個(gè)交點(diǎn)為起點(diǎn)P1’,在第一條線段上取一個(gè)步長(zhǎng)得到點(diǎn)P2’,作P2’到第二條線段的垂直線,該第二條線段的垂直線與第二條線段相交于點(diǎn)P3’,判斷填充線段P1’P3’,是否與輪廓環(huán)相交,如相交,則不生成對(duì)應(yīng)的線段,如不相交,則生成填充線段P1’P3’,再以P3’為基點(diǎn),在第二條線段上取一個(gè)步長(zhǎng)得到點(diǎn)P4’,作P4’到第一條線段的垂直線,第一條線段的垂直線與第一條線段相交于P5’,判斷填充線段P1’P3’,是否與輪廓環(huán)相交,如相交,則不生成對(duì)應(yīng)的線段,如不相交,則生成填充線段P3’P5’,并將P5’定義為起點(diǎn)P1’;重復(fù)上述流程,直到與輪廓環(huán)相交為止。。
判斷直線組中的每條直線是否含有兩條以上的線段,若含有兩條以上的線段,則在當(dāng)前直線組的填充波形的結(jié)束點(diǎn)所在的直線上,以整數(shù)倍的間隔步長(zhǎng)搜索在該直線上的另一條線段,在搜索到另一條線段時(shí),將該搜索到的點(diǎn)定義為起點(diǎn)P1’,再次生成填充波形。
再以一條已生成填充波形的直線的為基礎(chǔ)線,判斷其相鄰的直線是否均已生成填充波形,如未生成,則將該基礎(chǔ)線與該相鄰的直線組成直線組,并生成新的填充波形,且兩相鄰的填充波形的相位相反;
新的填充波形的起始點(diǎn)P1’a的定位方法,以第一條線的第一個(gè)點(diǎn)P1’,在直線上取一個(gè)步長(zhǎng)的點(diǎn)P2’,做P2’到第二條直線的垂線,取垂直點(diǎn)為P3’,判斷P3’是否在線段3上,如果不在,將P1’增加一個(gè)步長(zhǎng)設(shè)為P1’a點(diǎn),按上面方法查找P3’點(diǎn)的方法,直到查找到P3’落點(diǎn)在線段3上面。第二,P1’a點(diǎn)增加步長(zhǎng)生成結(jié)束后,再以P1’a點(diǎn)為起點(diǎn),減小步長(zhǎng),生成填充波形;是其所生成的波形與基礎(chǔ)線上的填充波形相位相反;
當(dāng)所有直線上均已生成填充波形,則填充完成。
通過(guò)本發(fā)明用戶可根據(jù)待打印模型的特點(diǎn)選擇填充形狀與填充率,填充形狀可選擇正方形、菱形等,大大增加了方便與實(shí)用性,提高成形效率。
以上所述,僅是本發(fā)明的實(shí)施例而已,并非對(duì)本發(fā)明作任何形式上的限制,雖然本發(fā)明已以實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動(dòng)或修飾為等同變化的等效實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。