本發(fā)明屬于3d打印領(lǐng)域,尤其涉及一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法及系統(tǒng)。
背景技術(shù):
3d打印,又稱(chēng)增材制造(additivemanufacturing,am),是一種以數(shù)字模型文件為基礎(chǔ),采用材料逐層累加的方式制造實(shí)體的技術(shù)。3d打印在定制化幾何設(shè)計(jì)與處理上具有天然的優(yōu)勢(shì),在醫(yī)療、教育、娛樂(lè)、時(shí)尚等領(lǐng)域的應(yīng)用越來(lái)越廣泛,對(duì)模型進(jìn)行實(shí)例化制造也變得更加便捷,同時(shí)其優(yōu)化問(wèn)題也開(kāi)始引起研究人員的注意。
為了節(jié)省打印材料以及打印時(shí)間,通常都會(huì)改變模型的內(nèi)部填充結(jié)構(gòu),對(duì)模型進(jìn)行形變或者在對(duì)其進(jìn)行切割后分塊打印,以降低其對(duì)支撐結(jié)構(gòu)的需求。所以我們希望生成的多層旋轉(zhuǎn)體能夠在較為壓縮的空間上進(jìn)行打印,并且可以一體打印無(wú)需后期組裝。
簡(jiǎn)單多邊形是一類(lèi)常見(jiàn)的,由簡(jiǎn)單閉折線所圍成的多邊形。對(duì)于任意的一個(gè)對(duì)稱(chēng)的簡(jiǎn)單多邊形,可以很容易的通過(guò)偏移的方式對(duì)它進(jìn)行分層,產(chǎn)生一個(gè)三維多層旋轉(zhuǎn)體。這種方法雖然高效,但是同時(shí)也存在著一些局限性:(1)如果直接使用偏移的方法進(jìn)行分層,那么多邊形的形狀信息會(huì)隨著分層不斷的進(jìn)行偏移而被破壞;(2)為了保留形狀信息,考慮直接使用縮放的方式來(lái)進(jìn)行分層。在靜態(tài)的情況下,直接縮放可以滿足用戶的要求,而當(dāng)每個(gè)分層繞軸進(jìn)行旋轉(zhuǎn)運(yùn)動(dòng)時(shí)就可能發(fā)生層與層之間的碰撞,從而影響到整個(gè)結(jié)構(gòu)旋轉(zhuǎn)的自由度。
綜上所述,現(xiàn)有的面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法可以做到分層,但是沒(méi)有考慮到旋轉(zhuǎn)時(shí)的碰撞問(wèn)題。因此,亟需找到一種由任意的簡(jiǎn)單多邊形生成三維旋轉(zhuǎn)體的方法,此旋轉(zhuǎn)體的每一層在旋轉(zhuǎn)時(shí)不會(huì)與其它層發(fā)生碰撞,并且此三維旋轉(zhuǎn)體可以在壓縮空間上一體打印無(wú)需后期組裝。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法,本發(fā)明的方法提出根據(jù)給定任意簡(jiǎn)單多邊形生成多層旋轉(zhuǎn)體的方法,旋轉(zhuǎn)體各個(gè)層可以自由旋轉(zhuǎn)而不會(huì)發(fā)生碰撞。
本發(fā)明的一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法,包括:
步驟(1):初始化當(dāng)前分層為相鄰?fù)鈱?,以?dāng)前分層中掃掠面多邊形面積最小為優(yōu)化目標(biāo),查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸;
步驟(2):根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層;
步驟(3):將得到的當(dāng)前分層的相連內(nèi)層作為外層,迭代執(zhí)行步驟(1)-步驟(2),直到當(dāng)前分層的面積小于一個(gè)定值,得到給定多邊形的所有分層;
步驟(4):將給定多邊形的所有分層的數(shù)據(jù)生成三維模塊,進(jìn)而輸入至3d打印機(jī)而得到多層旋轉(zhuǎn)體。
進(jìn)一步的,所述步驟(1)中查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸的具體過(guò)程為:
步驟(1-1):每個(gè)分層在繞對(duì)稱(chēng)軸旋轉(zhuǎn)時(shí),會(huì)產(chǎn)生一個(gè)掃掠面,其中,掃掠面多邊形是當(dāng)前分層與其關(guān)于對(duì)稱(chēng)軸的對(duì)稱(chēng)多邊形的并集;
步驟(1-2):選取當(dāng)前分層上兩個(gè)不同的點(diǎn)組成一個(gè)點(diǎn)對(duì),每個(gè)點(diǎn)對(duì)則確定一條軸,遍歷所有點(diǎn)對(duì)找到一條對(duì)稱(chēng)軸使得掃掠面多邊形面積最小。
這樣能夠通過(guò)計(jì)算其內(nèi)部輪廓與內(nèi)部輪廓所對(duì)應(yīng)的旋轉(zhuǎn)軸,使之能夠在上層空間內(nèi)自由旋轉(zhuǎn)而不發(fā)生碰撞。
進(jìn)一步的,在所述步驟(1-1)中,當(dāng)前分層在旋轉(zhuǎn)時(shí)是否會(huì)與相鄰?fù)鈱舆M(jìn)行碰撞取決于掃掠面多邊形與相鄰?fù)鈱邮欠裣嘟弧?/p>
進(jìn)一步的,在所述步驟(1-2)中,不同對(duì)稱(chēng)軸產(chǎn)生不同的掃掠多邊形。
進(jìn)一步的,所述步驟(2)中根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層的具體過(guò)程為:
步驟(2-1):求掃掠面多邊形的最小有向包圍盒(orientedboundingbox,obb);
步驟(2-2):通過(guò)旋轉(zhuǎn),平移和縮放變換找到相鄰?fù)鈱觾?nèi)最大的矩形,此矩形的長(zhǎng)寬比與步驟(2-1)中所求最小有向包圍盒的長(zhǎng)寬比一致;
步驟(2-3):根據(jù)旋轉(zhuǎn)角度,位移和縮放系數(shù)計(jì)算變換矩陣;對(duì)當(dāng)前分層應(yīng)用變換矩陣。
這樣能夠使任一給定的多邊形能夠在上層空間內(nèi)自由旋轉(zhuǎn)而不發(fā)生碰撞,同時(shí)面積最大。
進(jìn)一步的,在所述步驟(4)中,將給定多邊形的所有分層的數(shù)據(jù)生成三維模塊的具體過(guò)程為:
步驟(4-1):根據(jù)每一層的輪廓線生成帶狀結(jié)構(gòu);
步驟(4-2):在帶狀結(jié)構(gòu)上挖空?qǐng)A柱生成t型結(jié)構(gòu),生成三維模型輸出stl格式的文件。
本發(fā)明還提供了一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成系統(tǒng)。
本發(fā)明的一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成系統(tǒng),包括:
最優(yōu)對(duì)稱(chēng)軸查找單元,其用于初始化當(dāng)前分層為相鄰?fù)鈱?,以?dāng)前分層中掃掠面多邊形面積最小為優(yōu)化目標(biāo),查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸;
當(dāng)前分層的相連內(nèi)層獲取模塊,其用于根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層;
給定多邊形的所有分層獲取模塊,其用于將得到的當(dāng)前分層的相連內(nèi)層作為外層,查找最優(yōu)對(duì)稱(chēng)軸并獲取當(dāng)前分成的相連內(nèi)層,直到當(dāng)前分層的面積小于一個(gè)定值,得到給定多邊形的所有分層;
多層旋轉(zhuǎn)體生成模塊,其用于將給定多邊形的所有分層的數(shù)據(jù)生成三維模塊,進(jìn)而輸入至3d打印機(jī)而得到多層旋轉(zhuǎn)體。
進(jìn)一步的,所述最優(yōu)對(duì)稱(chēng)軸查找單元包括:
掃掠面產(chǎn)生模塊,其用于當(dāng)每個(gè)分層在繞對(duì)稱(chēng)軸旋轉(zhuǎn)時(shí),會(huì)產(chǎn)生一個(gè)掃掠面,其中,掃掠面多邊形是當(dāng)前分層與其關(guān)于對(duì)稱(chēng)軸的對(duì)稱(chēng)多邊形的并集;
對(duì)稱(chēng)軸選取模塊,其用于選取當(dāng)前分層上兩個(gè)不同的點(diǎn)組成一個(gè)點(diǎn)對(duì),每個(gè)點(diǎn)對(duì)則確定一條軸,遍歷所有點(diǎn)對(duì)找到一條對(duì)稱(chēng)軸使得掃掠面多邊形面積最小。
進(jìn)一步的,所述當(dāng)前分層的相連內(nèi)層獲取模塊,其包括:
最小有向包圍盒求取模塊,其用于求掃掠面多邊形的最小有向包圍盒;
相鄰?fù)鈱觾?nèi)最大矩形查找模塊,其用于通過(guò)旋轉(zhuǎn),平移和縮放變換找到相鄰?fù)鈱觾?nèi)最大的矩形,此矩形的長(zhǎng)寬比與最小有向包圍盒的長(zhǎng)寬比一致;
變換矩陣計(jì)算模塊,其用于根據(jù)旋轉(zhuǎn)角度,位移和縮放系數(shù)計(jì)算變換矩陣;對(duì)當(dāng)前分層應(yīng)用變換矩陣。
進(jìn)一步的,所述多層旋轉(zhuǎn)體生成模塊包括:
帶狀結(jié)構(gòu)生成模塊,其用于根據(jù)每一層的輪廓線生成帶狀結(jié)構(gòu);
三維模型輸出模塊,其用于在帶狀結(jié)構(gòu)上挖空?qǐng)A柱生成t型結(jié)構(gòu),生成三維模型輸出stl格式的文件。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
(1)本發(fā)明對(duì)于給定的簡(jiǎn)單多邊形,計(jì)算其內(nèi)部輪廓與內(nèi)部輪廓所對(duì)應(yīng)的旋轉(zhuǎn)軸,使之能夠在上層空間內(nèi)自由旋轉(zhuǎn)而不發(fā)生碰撞,同時(shí)面積最大,經(jīng)過(guò)迭代最終在多邊形內(nèi)生成多層輪廓結(jié)構(gòu)。
(2)本發(fā)明生成的模型,可以通過(guò)3d打印一次成型不需要后期組裝;
(3)本發(fā)明生成的模型,可以在壓縮的空間上進(jìn)行打印,提高了3d打印的效率,降低了3d打印的成本。
附圖說(shuō)明
構(gòu)成本申請(qǐng)的一部分的說(shuō)明書(shū)附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。
圖1為本發(fā)明的面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法流程圖;
圖2(a)為對(duì)稱(chēng)軸z1對(duì)應(yīng)不同的掃掠面;
圖2(b)為對(duì)稱(chēng)軸z2對(duì)應(yīng)不同的掃掠面;
圖3為點(diǎn)對(duì)間的測(cè)地距離;
圖4(a)為在多邊形的邊界框內(nèi)生成的隨機(jī)點(diǎn)備用;
圖4(b)為選擇中心點(diǎn)的過(guò)程;
圖4(c)為優(yōu)化位置的結(jié)果;
圖5(a)為帶狀結(jié)構(gòu)的示意圖;
圖5(b)為t型結(jié)構(gòu)的示意圖;
圖6為生成與對(duì)稱(chēng)軸垂直的線段過(guò)程;
圖7(a)為旋轉(zhuǎn)結(jié)構(gòu)連接的兩層模型;
圖7(b)為旋轉(zhuǎn)結(jié)構(gòu)連接的兩層模型的局部放大模型;
圖8是本發(fā)明面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成系統(tǒng)的結(jié)構(gòu)示意圖;
圖9是最優(yōu)對(duì)稱(chēng)軸查找單元的結(jié)構(gòu)示意圖;
圖10是當(dāng)前分層的相連內(nèi)層獲取模塊的結(jié)構(gòu)示意圖;
圖11是多層旋轉(zhuǎn)體生成模塊的結(jié)構(gòu)示意圖。
具體實(shí)施方式
應(yīng)該指出,以下詳細(xì)說(shuō)明都是例示性的,旨在對(duì)本申請(qǐng)?zhí)峁┻M(jìn)一步的說(shuō)明。除非另有指明,本文使用的所有技術(shù)和科學(xué)術(shù)語(yǔ)具有與本申請(qǐng)所屬技術(shù)領(lǐng)域的普通技術(shù)人員通常理解的相同含義。
需要注意的是,這里所使用的術(shù)語(yǔ)僅是為了描述具體實(shí)施方式,而非意圖限制根據(jù)本申請(qǐng)的示例性實(shí)施方式。如在這里所使用的,除非上下文另外明確指出,否則單數(shù)形式也意圖包括復(fù)數(shù)形式,此外,還應(yīng)當(dāng)理解的是,當(dāng)在本說(shuō)明書(shū)中使用術(shù)語(yǔ)“包含”和/或“包括”時(shí),其指明存在特征、步驟、操作、器件、組件和/或它們的組合。
如圖1所示,本發(fā)明的面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成方法,包括:
步驟(1):初始化當(dāng)前分層為相鄰?fù)鈱?,以?dāng)前分層中掃掠面多邊形面積最小為優(yōu)化目標(biāo),查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸。
其中,初始化當(dāng)前分層p1為相鄰?fù)鈱觩。每一層都是相似的簡(jiǎn)單多邊形;
具體地,所述步驟(1)中查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸的具體過(guò)程為:
步驟(1-1):每個(gè)分層在繞對(duì)稱(chēng)軸旋轉(zhuǎn)時(shí),會(huì)產(chǎn)生一個(gè)掃掠面,相鄰分層在旋轉(zhuǎn)時(shí)是否會(huì)與分層p1進(jìn)行碰撞取決于掃掠面多邊形q與分層p1是否相交。掃掠面多邊形q是當(dāng)前分層p1關(guān)于旋轉(zhuǎn)軸z的對(duì)稱(chēng)多邊形p1′與p1的并集;
步驟(1-2):找到一條對(duì)稱(chēng)軸z使得掃掠面多邊形q的面積最小。p1周長(zhǎng)為lp,選取p1上兩個(gè)不同的點(diǎn)組成一個(gè)點(diǎn)對(duì),每個(gè)點(diǎn)對(duì)可以確定一條軸。如圖2中,不同軸的選擇會(huì)產(chǎn)生不同的掃掠多邊形q。遍歷所有的點(diǎn)對(duì),可以找到一個(gè)面積最小的q。與此q對(duì)應(yīng)的軸z即為所求。
其中,對(duì)于步驟(1-2),對(duì)點(diǎn)對(duì)進(jìn)行篩選從而減少不必要的計(jì)算。通過(guò)約束點(diǎn)對(duì)間測(cè)地距離的范圍來(lái)對(duì)旋轉(zhuǎn)軸進(jìn)行篩選,我們規(guī)定下界為
如圖3所示,z3點(diǎn)對(duì)間的距離為g3,z4點(diǎn)對(duì)間的距離為g4,g3在范圍內(nèi)保留,g4不在范圍內(nèi)所以被剔除。
這樣能夠通過(guò)計(jì)算其內(nèi)部輪廓與內(nèi)部輪廓所對(duì)應(yīng)的旋轉(zhuǎn)軸,使之能夠在上層空間內(nèi)自由旋轉(zhuǎn)而不發(fā)生碰撞。
步驟(2):根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層;
具體地,根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層的具體包括以下步驟:
步驟(2-1):求掃掠面多邊形的最小有向包圍盒;在求得q和軸z之后,接下來(lái)就要在p中找到最大的q′,q′=k·o·q。k為縮放系數(shù),o為位置信息。我們把問(wèn)題“求多邊形p內(nèi)最大多邊形q”簡(jiǎn)化,首先求多邊形q的最小有向包圍盒r,然后求p中最大的r′=k·o·r。把問(wèn)題轉(zhuǎn)化為:求多邊形p內(nèi)最大r′。
求得q的最小有向包圍盒r,包圍盒長(zhǎng)寬比為ratio,半長(zhǎng)軸ry相對(duì)于水平面的夾角為α。接下來(lái)就要求多邊形p內(nèi)最大r′;
步驟(2-2):通過(guò)旋轉(zhuǎn),平移和縮放變換找到相鄰?fù)鈱觾?nèi)最大的矩形r′,此矩形的長(zhǎng)寬比與步驟(2-1)中所求包圍盒的長(zhǎng)寬比一致。為了簡(jiǎn)化計(jì)算,對(duì)輸入p進(jìn)行一些預(yù)處理。需要對(duì)p上的點(diǎn)做一個(gè)簡(jiǎn)化,減少點(diǎn)的個(gè)數(shù)進(jìn)而減少計(jì)算量。如圖4(a),在多邊形的邊界框內(nèi)生成100個(gè)隨機(jī)點(diǎn)備用。
首先選擇方向θ,設(shè)長(zhǎng)寬比為ratio的測(cè)試矩形r2的長(zhǎng)邊初始狀態(tài)為水平。旋轉(zhuǎn)角θ的范圍為[-90,90°]。每次計(jì)算偏轉(zhuǎn)1°。
如圖4(b),選擇中心點(diǎn)c。在預(yù)處理部分,我們?cè)趐的內(nèi)部隨機(jī)生成了100個(gè)點(diǎn)。依次選取每個(gè)點(diǎn)作為矩形r2的中心點(diǎn)。過(guò)當(dāng)前中心點(diǎn)引兩條相互垂直的線段lx,ly。其中矩形長(zhǎng)邊ly與水平線的夾角為當(dāng)前的旋轉(zhuǎn)角度θ。在lx,ly上各自均勻地取3個(gè)補(bǔ)償點(diǎn)作為中心點(diǎn)進(jìn)行檢測(cè),補(bǔ)償點(diǎn)可能會(huì)產(chǎn)生更好的效果。計(jì)算ly與p輪廓的交點(diǎn)a,b。然后取中心點(diǎn)到a,b兩個(gè)交點(diǎn)中距離較小的值dy。那么2dy就是當(dāng)前中心點(diǎn)和旋轉(zhuǎn)角度上最大可能的長(zhǎng)度。在ly上的補(bǔ)償點(diǎn)c1,c2,c3與中心點(diǎn)使用同樣的方式計(jì)算。同理,lx上的補(bǔ)償點(diǎn)使用寬度來(lái)計(jì)算和表示。
如圖4(c),給定z,c,找到最大長(zhǎng)度dmax,同時(shí)滿足矩形位于多邊形內(nèi)。記錄當(dāng)前求得的最大長(zhǎng)度的一半為dmax,當(dāng)前中心點(diǎn)或者其補(bǔ)償點(diǎn)作為矩形的中心。首先判斷當(dāng)前中心點(diǎn)及其補(bǔ)償點(diǎn)的dx是否小于當(dāng)前求得的最大長(zhǎng)度dmax,如果當(dāng)前點(diǎn)的dx大于dmax,判斷當(dāng)前寬度為
步驟(2-3):在步驟(2-2)為了計(jì)算方便,統(tǒng)一從長(zhǎng)軸水平角度為0°開(kāi)始,而r是存在初始角度α的。真實(shí)的旋轉(zhuǎn)角度應(yīng)為旋轉(zhuǎn)角度θ-α。得到位置o,旋轉(zhuǎn)角度θ-α和縮放系數(shù)k之后計(jì)算出變換矩陣,對(duì)當(dāng)前分層p1應(yīng)用變換矩陣。
步驟(3):將得到的當(dāng)前分層的相連內(nèi)層作為外層,迭代執(zhí)行步驟(1)-步驟(2),直到當(dāng)前分層的面積小于一個(gè)定值,得到給定多邊形的所有分層。
步驟(4):將給定多邊形的所有分層的數(shù)據(jù)生成三維模塊,進(jìn)而輸入至3d打印機(jī)而得到多層旋轉(zhuǎn)體。
該步驟的具體包括以下步驟:
步驟(4-1):讀入并處理輸入數(shù)據(jù)。
如圖6,對(duì)于每一層輪廓對(duì)應(yīng)的
步驟(4-2):根據(jù)處理之后的數(shù)據(jù)生成三維模型。
首先生成如圖5(a)的帶狀模型。根據(jù)更新之后的每一層的輪廓對(duì)應(yīng)的內(nèi)外圈的點(diǎn)
最后:返回生成的三維模型并打印得到三維多層旋轉(zhuǎn)體。
圖8是本發(fā)明的面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成系統(tǒng)的結(jié)構(gòu)示意圖。
如圖8所示,本發(fā)明的一種面向3d打印的簡(jiǎn)單多邊形多層旋轉(zhuǎn)體生成系統(tǒng),包括:
(1)最優(yōu)對(duì)稱(chēng)軸查找單元,其用于初始化當(dāng)前分層為相鄰?fù)鈱?,以?dāng)前分層中掃掠面多邊形面積最小為優(yōu)化目標(biāo),查找當(dāng)前分層中的最優(yōu)對(duì)稱(chēng)軸。
其中,如圖9所示,所述最優(yōu)對(duì)稱(chēng)軸查找單元包括:
掃掠面產(chǎn)生模塊,其用于當(dāng)每個(gè)分層在繞對(duì)稱(chēng)軸旋轉(zhuǎn)時(shí),會(huì)產(chǎn)生一個(gè)掃掠面,其中,掃掠面多邊形是當(dāng)前分層與其關(guān)于對(duì)稱(chēng)軸的對(duì)稱(chēng)多邊形的并集;
對(duì)稱(chēng)軸選取模塊,其用于選取當(dāng)前分層上兩個(gè)不同的點(diǎn)組成一個(gè)點(diǎn)對(duì),每個(gè)點(diǎn)對(duì)則確定一條軸,遍歷所有點(diǎn)對(duì)找到一條對(duì)稱(chēng)軸使得掃掠面多邊形面積最小。
(2)當(dāng)前分層的相連內(nèi)層獲取模塊,其用于根據(jù)旋轉(zhuǎn)角度來(lái)優(yōu)化當(dāng)前分層的位置和縮放比例,得到當(dāng)前分層的相連內(nèi)層。
其中,如圖10所示,所述當(dāng)前分層的相連內(nèi)層獲取模塊,包括:
最小有向包圍盒求取模塊,其用于求掃掠面多邊形的最小有向包圍盒;
相鄰?fù)鈱觾?nèi)最大矩形查找模塊,其用于通過(guò)旋轉(zhuǎn),平移和縮放變換找到相鄰?fù)鈱觾?nèi)最大的矩形,此矩形的長(zhǎng)寬比與最小有向包圍盒的長(zhǎng)寬比一致;
變換矩陣計(jì)算模塊,其用于根據(jù)旋轉(zhuǎn)角度,位移和縮放系數(shù)計(jì)算變換矩陣;對(duì)當(dāng)前分層應(yīng)用變換矩陣。
(3)給定多邊形的所有分層獲取模塊,其用于將得到的當(dāng)前分層的相連內(nèi)層作為外層,查找最優(yōu)對(duì)稱(chēng)軸并獲取當(dāng)前分層的相連內(nèi)層,直到當(dāng)前分層的面積小于一個(gè)定值,得到給定多邊形的所有分層。
(4)多層旋轉(zhuǎn)體生成模塊,其用于將給定多邊形的所有分層的數(shù)據(jù)生成三維模塊,進(jìn)而輸入至3d打印機(jī)而得到多層旋轉(zhuǎn)體。
其中,如圖11所示,所述多層旋轉(zhuǎn)體生成模塊包括:
帶狀結(jié)構(gòu)生成模塊,其用于根據(jù)每一層的輪廓線生成帶狀結(jié)構(gòu);
三維模型輸出模塊,其用于在帶狀結(jié)構(gòu)上挖空?qǐng)A柱生成t型結(jié)構(gòu),生成三維模型輸出stl格式的文件。
本發(fā)明對(duì)于給定的簡(jiǎn)單多邊形,計(jì)算其內(nèi)部輪廓與內(nèi)部輪廓所對(duì)應(yīng)的旋轉(zhuǎn)軸,使之能夠在上層空間內(nèi)自由旋轉(zhuǎn)而不發(fā)生碰撞,同時(shí)面積最大,經(jīng)過(guò)迭代最終在多邊形內(nèi)生成多層輪廓結(jié)構(gòu)。
本發(fā)明生成的模型,可以通過(guò)3d打印一次成型不需要后期組裝;
本發(fā)明生成的模型,可以在壓縮的空間上進(jìn)行打印,提高了3d打印的效率,降低了3d打印的成本。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以?xún)?nèi)。