面向三維打印的三維模型處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及三維打印技術(shù)領(lǐng)域,特別涉及一種面向三維打印的三維模型處理方法及裝置。
【背景技術(shù)】
[0002]三維模型一般是由三角網(wǎng)格構(gòu)成的。三維打印由于受到技術(shù)的局限性,只能打印特定的三維模型。世界上的有一小部分三維模型是針對三維打印而設(shè)計的,因此這部分模型基本可以直接打印,并且取得比較好的打印效果。
[0003]當(dāng)前,大多數(shù)三維模型并不是針對三維打印而設(shè)計的,例如,動漫、游戲、建筑等領(lǐng)域中的三維模型,由于這些三維模型的設(shè)計者沒有考慮到三維打印的要求,故而在對這些三維模型的打印過程中,非常容易出現(xiàn)錯誤。
[0004]最新的現(xiàn)有技術(shù)中,針對三維打印技術(shù)陸續(xù)給出了一些解決方案,取得了初步進展,但仍然存在多種問題和缺陷,也沒有針對三維打印的需求設(shè)計出一套完整的解決方案,導(dǎo)致三維打印技術(shù)的一些問題一直無法得到解決。
[0005]因此,有必要提出一種面向三維打印的三維模型處理方法及裝置,以能夠解決上述問題,提供三維打印的整體解決方案。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種避免出現(xiàn)打印錯誤的面向三維打印的三維模型處理方法及裝置。
[0007]根據(jù)本發(fā)明的一個方面,提供了一種面向三維打印的三維模型優(yōu)化方法,所述方法包括:
[0008]檢測待處理三維模型中是否存在空隙,在所述待處理三維模型中存在空隙時,對所述空隙進行修補;
[0009]檢測所述待處理三維模型中是否存在自相交部分,在所述待處理三維模型中存在自相交部分時,對所述自相交部分進行移除;
[0010]檢測所述待處理三維模型中各三角形的法矢量方向,在所述三角形的法矢量方向指向所述待處理三維模型內(nèi)部時,將該三角形中三個頂點的順序方向設(shè)置為相反方向,從而反轉(zhuǎn)該三角形法矢量的方向。
[0011]可選地,所述檢測待處理三維模型中是否存在空隙,進一步包括:
[0012]若所述待處理三維模型中各三角形的三個邊均存在唯一的鄰接三角形,則認為所述待處理三維模型中存在空隙,否則認為所述待處理三維模型中不存在空隙。
[0013]可選地,所述對所述空隙進行修補,進一步包括:
[0014]將所述待處理三維模型中各三角形設(shè)置為約束,通過約束Delaunay四面體剖分算法對所述空隙進行修補,以使得在所述空隙處生成四面體網(wǎng)格,將生成的四面體網(wǎng)格的外表面作為所述空隙處的三角網(wǎng)格;
[0015]或,
[0016]根據(jù)在所述空隙處的各三角形,生成由所述空隙的邊界所組成的多邊形,對所述多邊形進行遍歷,并將遍歷到的多邊形的最小二乘平面作為XY平面,并在所述XY平面中建立局部坐標(biāo)系,將所述遍歷到的多邊形的各邊設(shè)置為約束,在所述局部坐標(biāo)系中通過約束Delaunay三角剖分算法為所述空隙生成三角網(wǎng)格,將生成的三角網(wǎng)格從所述局部坐標(biāo)系轉(zhuǎn)換至所述待處理三維模型的坐標(biāo)系中,并將轉(zhuǎn)換后的三角網(wǎng)格添加至所述空隙處。
[0017]可選地,所述對所述自相交部分進行移除,進一步包括:
[0018]對所述待處理二維模型中各二角形進彳丁二維模型的布爾并運算,從布爾并運算的結(jié)果獲取所述待處理三維模型的外表面,將所述待處理三維模型的外表面作為移除所述自相交部分后的待處理三維模型。
[0019]可選地,所述方法還包括:
[0020]檢測所述待處理三維模型中是否存在薄壁,在所述待處理三維模型存在薄壁時,向用戶展示模型更換信息。
[0021]可選地,所述檢測所述待處理三維模型中是否存在薄壁,進一步包括:
[0022]對所述待處理三維模型中的三角形進行遍歷,將遍歷到的當(dāng)前三角形添加至三角形區(qū)域,將該三角形區(qū)域的鄰接三角形也添加至該三角形集合中,直至該三角形集合的面積大于預(yù)設(shè)面積,若該三角形集合中各三角形與除該三角形集合之外的其他三角形均小于等于預(yù)設(shè)距離,則認為所述待處理三維模型存在薄壁。
[0023]可選地,所述檢測待處理三維模型中是否存在空隙之前,所述方法還包括:
[0024]對所述待處理三維模型進行三角網(wǎng)格分離,以獲得所述待處理三維模型中的各三角網(wǎng)格。
[0025]可選地,所述對所述待處理三維模型進行三維網(wǎng)格分離之前,所述方法還包括:
[0026]獲取所述待處理三維模型,計算所述待處理三維模型中的任意兩點之間的距離,若計算的距離小于預(yù)設(shè)距離,則將該兩個點中的一個點刪除,并將被刪除的點的鄰接三角形的頂點指向該兩個點的另一個點。
[0027]根據(jù)本發(fā)明的另一個方面,提供了一種面向三維打印的三維模型優(yōu)化裝置,所述裝置包括:
[0028]空隙修補單元,用于檢測待處理三維模型中是否存在空隙,在所述待處理三維模型中存在空隙時,對所述空隙進行修補;
[0029]自相交移除單元,用于檢測所述待處理三維模型中是否存在自相交部分,在所述待處理三維模型中存在自相交部分時,對所述自相交部分進行移除;
[0030]法矢量設(shè)置單元,用于檢測所述待處理三維模型中各三角形的法矢量方向,在所述三角形的法矢量方向指向所述待處理三維模型內(nèi)部時,將該三角形中三個頂點的順序方向設(shè)置為相反方向,從而反轉(zhuǎn)該三角形法矢量的方向。
[0031]可選地,所述空隙修補單元,進一步用于若所述待處理三維模型中各三角形的三個邊均存在唯一的鄰接三角形,則認為所述待處理三維模型中存在空隙,否則認為所述待處理三維模型中不存在空隙。
[0032]可選地,所述空隙修補單元,進一步用于將所述待處理三維模型中各三角形設(shè)置為約束,通過約束Delaunay四面體剖分算法對所述空隙進行修補,以使得在所述空隙處生成四面體網(wǎng)格,將生成的四面體網(wǎng)格的外表面作為所述空隙處的三角網(wǎng)格;
[0033]或,
[0034]根據(jù)在所述空隙處的各三角形,生成由所述空隙的邊界所組成的多邊形,對所述多邊形進行遍歷,并將遍歷到的多邊形的最小二乘平面作為XY平面,并在所述XY平面中建立局部坐標(biāo)系,將所述遍歷到的多邊形的各邊設(shè)置為約束,在所述局部坐標(biāo)系中通過約束Delaunay三角剖分算法為所述空隙生成三角網(wǎng)格,將生成的三角網(wǎng)格從所述局部坐標(biāo)系轉(zhuǎn)換至所述待處理三維模型的坐標(biāo)系中,并將轉(zhuǎn)換后的三角網(wǎng)格添加至所述空隙處。
[0035]可選地,所述自相交移除單元,進一步用于對所述待處理三維模型中各三角形進行三維模型的布爾并運算,從布爾并運算的結(jié)果獲取所述待處理三維模型的外表面,將所述待處理三維模型的外表面作為移除所述自相交部分后的待處理三維模型。
[0036]可選地,所述裝置還包括:
[0037]薄壁檢測單元,用于檢測所述待處理三維模型中是否存在薄壁,在所述待處理三維模型存在薄壁時,向用戶展示模型更換信息。
[0038]可選地,所述薄壁檢測單元,進一步用于對所述待處理三維模型中的三角形進行遍歷,將遍歷到的當(dāng)前三角形添加至三角形區(qū)域,將該三角形區(qū)域的鄰接三角形也添加至該三角形集合中,直至該三角形集合的面積大于預(yù)設(shè)面積,若該三角形集合中各三角形與除