999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于最小理論支撐體積的模型三維打印的打印方向分析

2019-04-23 07:14:38姜曉通郭保蘇彭慶金劉德利
中國機械工程 2019年7期
關鍵詞:方向理論優化

姜曉通 郭保蘇 彭慶金 劉德利

1.常熟理工學院機械工程學院,常熟,2155002.燕山大學機械工程學院,秦皇島,066044 3.加拿大曼尼托巴大學機械工程學院,加拿大曼尼托巴,R3T 5V6

0 引言

在大部分三維打印中,模型的外部支撐結構是不可避免的,是三維打印建模的重要研究內容[1]。外部支撐結構在打印過程中起到支撐模型懸空部分的作用,完成打印后需去除。外部支撐結構的增加會增加打印模型的成本及時間,同時在去除支撐時,會影響支撐部分模型表面的質量,有時甚至會破壞模型表面,因此如何在打印過程中減小支撐結構的體積是三維打印建模的重要研究內容之一。通常情況下,模型的支撐結構體積與支撐本身的結構和模型的打印方向兩個因素直接相關,因此,在支撐結構相同的情況下,支撐的使用量主要取決于模型的打印方向。打印方向會在許多方面影響打印模型的質量,如模型表面光滑度、支撐結構材料的體積、模型強度及模型打印時間等。根據考慮影響打印模型質量的因素數量,打印方向優化可以分為單一目標屬性優化和多目標屬性優化。

單一目標屬性優化是在確定模型的打印方向時只考慮影響模型打印質量的單一屬性。KATTETHOTA等[2]在確定打印方向時考慮了模型表面的光滑度。GUPTA等[3]優化了模型的打印時間,將單位球面分解為多個曲面多邊形,在每個曲面多邊形所定義的區間內對打印時間進行優化,計算最短打印時間對應的打印方向。大多數文獻計算支撐體積這一單一目標屬性來計算最優方向。KHARDEKAR等[4]在計算最優方向時采用GPU進行加速來提高算法的效率,相比CPU下的速度提高90%,且具有較好的精度。EZAIR等[5]采用與文獻[3]類似的方法,在GPU下求解最小打印體積所對應的方向。HU等[6]將模型分解為多個小的組件,計算每個組件不需要或只需要少量支撐的打印方向并分別進行打印,最后將小組件組裝成完整的模型。

多目標屬性優化則是在確定打印方向時,同時考慮多個目標屬性。SANATI等[7]在確定最優打印方向時,采用多目標遺傳算法來評估模型表面粗糙度、支撐體積及打印時間等屬性。BYUN等[8]同樣采用遺傳算法進行最優打印方向的求解,在計算最優打印方向時考慮打印時間及模型質量兩個屬性。與單一目標屬性優化相比,多目標屬性優化更加耗時[9]。

現有的打印方向計算方法并沒有從理論上闡述最小支撐體積所對應方向的計算。本文將支撐體積目標屬性作為優化對象,計算三維模型最小理論支撐體積所對應的打印方向。首先闡述了模型理論支撐體積的理論背景,針對離散網格模型的特點,提出了其理論支撐體積的計算方法,在計算過程中,利用光線追蹤算法處理凹模型。針對理論支撐體積函數的不可導性,提出了一種基于球面坐標采樣、無導數優化算法進行最優方向的計算方法。最后針對本文算法結果,從計算精度、時間及步長對結果的影響等方面對算法進行驗證分析。

1 理論支撐體積計算

設三維空間中的二維流形三角網格模型M=(C,E,V)∈R3,其中,C代表網格模型中點的拓撲關系,E代表網格模型中所有邊的集合,V={v0,v1,…,vn-1}(vi∈R3,i=0,1,…,n-1)是網格模型點的集合。定義S為模型的支撐結構,V(S)為支撐結構的體積。設+z為模型的打印方向,z方向上模型最低點的值為Zmin,即打印模型時的初始水平高度(打印平臺在z方向上的最小值)。在三維打印過程中,模型是“自上而下”逐層成形的過程,理論上模型懸空部分的所有網格面都需要添加支撐,該支撐為網格面到打印平臺的空間。然而,由于打印材料在成形過程中具有一定的延展性,模型的部分懸空網格面并不需要支撐,因此在實際打印過程中,支撐體積小于理論值。在計算模型最小支撐體積對應的打印方向時,在不確定支撐結構的情況下不能以實際支撐體積作為計算依據。由此,在實際計算過程中,通常以理論支撐體積作為計算依據來計算實際支撐體積最小時對應的打印方向。基于此,本文在確定最小支撐體積對應的打印方向時同樣采用理論最小支撐體積。對于模型支撐S,其定義為

S:={(x,y,z)|z≥Zmin,?z′>z,
(x,y,z′)∈M且(x,y,z)?M}

(1)

式中,z′為投影點的z向值。

由式(1)可得,支撐S與模型M彼此互斥,即任何屬于模型M的部分都不屬于支撐S。

在計算模型給定方向的理論支撐體積時,由于網格模型并不是連續的曲面模型,其網格表面由許多離散的三角面片組成,故其求解并不是一個連續積分問題,而是一個離散積分問題。該離散積分問題求解的實質是求和所有“懸空”三角面片對應的棱柱體的體積。根據凹凸性不通,模型可分為凹面模型和凸面模型,如圖1所示。在計算理論支撐體積時,它們的計算過程也不相同。圖1a為凸面模型的理論支撐體積,其值為所有“懸空”三角面片對應的三棱柱體積之和。圖1b為凹面模型的理論支撐體積,由于部分“懸空”三角面片對應的三棱柱并不在打印平臺上,而是位于模型上,因此在計算時需要計算三棱柱與模型交點的位置。

(a)凸面模型 (b)凹面模型圖1 模型理論支撐體積Fig.1 Theory support volume of models

(2)

若i=k-1,則i+1=0

圖2 多邊形面積計算Fig.2 Area calculation of polygon

與多邊形面積的求解相似,在計算模型的理論支撐體積時同樣采用離散積分的方法。假設T為模型的一個三角面片,3個頂點分別為vi=(xi,yi,zi),i=0,1,2。三角面片T與打印平臺(打印平臺的z方向左邊為0)所組成三棱柱的體積計算公式為

V(T)=nz(z0+z1+z2)/6

(3)

n(T)=(nx,ny,nz),為三角面片T的非單位法矢,計算公式為n(T)=(v1-v0)×(v2-v0)。

對于凸面模型,其所有“懸空”三角面片對應的三棱柱的體積之和即為該模型的理論支撐體積,即

(4)

式中,n為模型中三角面片的個數。

對于凹面模型,在給定的打印方向,部分“懸空”三角面片對應的三棱柱的底部是落在網格模型上,而不是打印平臺,因此在計算凹面模型的理論支撐體積時,式(3)并不完全適用。此時需要計算哪些三角面片對應的三棱柱的底部落在打印平臺上,哪些不落在平臺上。本文利用光線追蹤算法判斷“懸空”三角面片這一屬性。

在計算機圖形學中,光線追蹤算法是被用來生成逼真三維場景的主要算法之一。近年來,隨著可視化、虛擬現實的發展,該算法得到了越來越廣泛的應用。在計算幾何中,光線追蹤算法被廣泛應用于幾何求交,但該算法在求交過程中需要較大的運算開銷,運行效率較低。為了提高運算效率,在進行求交運算前,一般需要對模型進行空間劃分,構建一定的空間層次結構,如均勻網格劃分[10]、八叉樹[11]及KD-Tree[12](一種特殊的二叉空間分割等空間劃分方法)。這些空間層次結構都能夠加快光線追蹤的速度,本文采用最常用的KD-tree來提高光線追蹤的求交速度。根據生成支撐求交的特殊性,在求交過程中只計算“懸空”三角面片在光線方向上距離模型最近的交點。設算法1為基于KD-Tree的光線追蹤求交算法(圖3)。根據算法1,當“懸空”三角面片對應的三棱柱的底面落在模型上時,式(3)變為

(5)

2 最小理論支撐體積所對應的打印方向計算

由于理論支撐體積函數并不光滑,故在求解最小理論支撐體積對應的方向時,并不能利用函數求導數的方法進行求解,通常需要利用無導數優化算法[13-15]來求解最優方向。此時,對于多極值函數,任意給定一個初值進行最優值求解時,其求解結果往往只是一個局部最優解,并不是全局最優解。為得到函數的全局最優解,在利用無導數優化算法進行求解前,需要確定部分可信賴區間,然后計算各個可信賴區間的局部最優值,進而得到全局最優解。

本文利用球面坐標對打印方向進行采樣,以計算得到的理論支撐體積最小的前n個采樣方向所在的區間作為可信賴區間,在可信賴區間內求得局部極值,再通過比較得到全局最優解。在計算最小理論支撐體積對應的打印方向前,首先討論模型理論支撐體積函數V(S)的可導性。

2.1 理論支撐體積函數的可導性

為了簡化計算,本文以凸面模型為例討論其理論支撐體積函數的可導性。由于網格模型的理論支撐體積為模型“懸空”三角面片對應的棱柱體體積之和,因此這里只討論其中一個“懸空”三角面片T對應的三棱柱體積函數V(T)的可導性。當T繞著x軸旋轉角度θ時,式(3)中的zi變為zicosθ+yisinθ(i=0,1,2),nz變為nzcosθ+nysinθ,則式(3)變為體積關于轉角θ的函數:

算法 1:光線追蹤求交輸入: (1)pNode:與網格模型M相關聯的Kd-Tree(2)vOrigin:光線追蹤源點(3)vDirection:光線方向輸出:(1)fNearest:浮點數,初始值為FLT_MAX(2)vHit:光線與模型的交點(3)nHitTri:交點所在的三角面片 執行:bool rayIntersection(pNode, vOrigin, vDirection, fNearest,vHit, nHitTri){ Point pHit; bool bHit = isIntersection (pNode, vOrigin, bHit); //判斷光線與pNode的包圍盒是否相交 If (isLeaf(pNode))If(bHit) Triangles=GetTriangleID (pNode); //得到節點pNode內的三角面片 bool bHitTri = IsInsectionTri (Triangle,vOrigin, vDirection, pHit); //判斷光線與三角面片是否相交,若相交則得到交點pHit If(bHitTri&&dis(vOrigin, pHit)pLeft, vOrigin, vDirec-tion, fNearest,vHit, nHitTri); bool bRight =rayIntersection (pNode->pRight, vOrigin, vDi-rection, fNearest,vHit, nHitTri); If(bLeft | |bRight)return true; return false;}

圖3光線追蹤求交算法

Fig.3Raytracingintersectionalgorithm

(6)

式(6)變形后為

(7)

為了進一步簡化計算,這里假設T的初始位置與水平面平行,則式(7)可以簡化為

(8)

(a)立方體模型 (b)RockArm模型圖4 測試模型Fig.4 Test models

2.2 基于無導數優化算法的最優方向計算

2.2.1球面坐標采樣

在利用無導數優化算法求解最優打印方向前,首先需要確定求解的部分可信賴區間。由于本文算法的求解目標為打印方向,因此采用球面坐標的方法對空間方向進行采樣,計算每個采樣點對應打印方向的理論支撐體積,選擇體積最小的前n個方向對應的區間作為無導數優化算法求解的可信賴區間。

(a)立方體模型

(b)RockArm模型圖5 模型理論支撐體積曲線圖Fig.5 Curve graph of models’ theory support volume

圖6 球面坐標示意圖Fig.6 Schematic diagram of spheroidal coordinates

圖7 球面坐標采樣結果Fig.7 Results of spheroidal coordinate sampling

球面坐標以坐標原點為參考點,由方位角、仰角及距離構成。如圖6所示,假設p(x,y,z)為三維空間內一點,則點p的空間位置可用3個有次序的數(r,θ,φ)來確定,其中,r為原點o與點p間的距離,θ為從正z軸來看自x軸按逆時針方向轉到op′所轉過的角,φ為有向線段op與z軸正向的夾角,這里p′為點p在xoy面上的投影。r、θ、φ的取值范圍分別為:r∈[0,+∞),φ∈[0,2π],θ∈[0,2π]。球面坐標采樣的實質為對θ及φ方向進行球面坐標均勻采樣,并利用一定的轉化關系將其轉化成直角坐標系內的空間點。以圖6中的點p為例,該轉化關系為:xp=rsinθcosφ,yp=rsinθsinφ,zp=rcosθ。這樣,在三維空間內生成一系列的采樣點pi(xi,yi,zi),則其采樣方向opi=(xi,yi,zi)。圖7為利用球面坐標生成的采樣點,在生成采樣點過程中,在θ及φ方向上進行步長為6°的采樣,共得到1 800個采樣方向,然后計算每個采樣方向對應的理論支撐體積。

2.2.2基于無導數優化算法的方向優化

在對打印方向進行采樣并計算對應的理論支撐體積后,將最小的幾個理論支撐體積對應的采樣打印方向作為初始值,利用無導數優化算法在選定的采樣方向對應的可信賴區間內計算局部最優方向,則計算得到的所有局部最優方向的最小值為全局最優方向。在利用無導數優化算法計算局部最優解時,求解的可信賴區間是保證算法能夠收斂的基礎。當區間過大時,區間內部可能會有兩個甚至更多的極值,利用無導數優化算法得到的局部最優解不可信。該區間的大小取決于采樣步長,為了保證計算區間可靠,計算收斂,采樣時步長不宜過大。

無導數優化算法可以分為有限差分方法[13]、基于模型的方法[14]、模式搜索方法[15]等3種方法。模式搜索方法是一種直接的局部搜索方法,在搜索過程中直接使用函數值,并不需要評估函數的導數。該算法的基本思想從幾何意義上來說,是尋找具有較小函數值的“山谷”,通過迭代的方法使搜索沿著“山谷”的走向來逼近極小值。該算法從給定的起始點開始,通過局部移動尋找下降的方向來得到局部的最優值,其最經典的算法為坐標搜索。坐標搜索是一種無約束的優化求解算法,求解目標函數f(x)的最小值。在計算時首先選定一個初始值及步長,然后通過迭代的方法得到一個局部最小值。本文在計算最優打印方向時,同樣是找到最優打印方向所對應的球面坐標,初始化值為上面所計算的最小的幾個理論支撐體積所對應的方向,步長閾值為1°。在每個作為初始值的方向上,利用坐標搜索算法得到局部的最小理論支撐體積。這些局部最小理論支撐體積的最小值所對應的打印方向即為最優的打印方向。

3 實驗結果分析

本文算法開發環境為VS2008,編程語言為C++,基于OpenGL圖形庫進行模型顯示,測試用電腦的處理器為Inter Core 10 ms i5-2500,主頻為3.30GHz,內存為4GB。本節主要從算法的精度及計算時間兩個方面來驗證本文算法的有效性與實用性,同時分析采樣步長對計算結果的影響。在計算過程中,為了加快運算速度,采用OpenMP技術進行并行運算,以提高運算效率。

3.1 理論支撐體積的計算精度與計算時間

圖8 理論支撐體積的計算誤差Fig.8 Calculation error of theory support volume

圖9 理論支撐體積的計算時間Fig.9 Calculation time of theory support volume

圖9所示為理論支撐體積的計算時間與模型三角面片個數之間的關系。測試所用的模型為圖4b的RockArm模型,且在測試過程中模型的網格數不斷增加。對于每個測試模型,在測試過程中的采樣步長為10°,共648個采樣方向。模型在每個采樣方向上都進行理論支撐體積的計算,然后得到單次計算的平均時間。由圖9中的曲線可得到,單次理論支撐體積的計算時間與模型三角面片個數成線性關系,隨三角面片個數的增加而增長。當三角面片個數為70 000時,計算時間為10 ms左右,完全能夠滿足時間要求。

3.2 采樣步長對計算結果的影響

在計算過程中,采樣步長會對計算時間及最終的優化結果產生較大影響。這里利用不同的采樣步長來測試其對計算結果的影響。

圖10為采樣步長對采樣時間及優化時間的影響曲線,測試模型為圖4b的RockArm模型,測試所用的采樣步長分別為2°、3°、4°、5°、6°、9°、10°、12°、15°、18°、20°、22°、25°、30°、36°、45°、55°、60°、80°、90°、180°。在利用無導數優化算法進行優化計算時,計算理論支撐體積最小的前100個采樣方向,在這100個采樣方向確定的區間內進行優化計算。由圖10可以得到,對于采樣時間,當采樣步長增大時,采樣方向減小,在單次計算時間一定的情況下總的采樣時間縮短。對于優化時間,當采樣步長較小時,在優化方向數量確定的情況下,由于優化區間較小,單次優化時間也會縮短,因此總的優化時間也較短。隨著采樣步長的增大,優化區間增大,優化時間也會相應增長。當采樣步長為25°時,采樣方向的數量剛好為100,此時理論上的優化時間應該最長。在實際采樣過程中,由于模型的初始位置不同,用于局部優化的各初始方向也不同,單次優化時間也會所有變化,因此最長優化時間對應的采樣步長約為25°,但會有所波動。當采樣步長大于25°時,采樣方向的個數小于100,隨著采樣步長增大,采樣方向的個數也隨之減少,因而優化時間也隨著減短。

圖10 不同采樣步長的測試時間Fig.10 Test time of different sampling step

圖11所示為在不同采樣步長下,采樣得到的最小理論支撐體積與優化后得到的最小理論支撐體積。從圖11中可以得到,當測試過程中的采樣步長足夠小時(采樣步長的數值為2°、3°、6°時),經采樣得到的最小理論支撐體積即為優化后的最小理論支撐體積,不需要后續的優化即可得到最優打印方向;當采樣步長較大時需要利用優化算法才可得到最優的打印方向;當采樣步長超過一定的值時,即使利用優化算法也得不到最優打印方向。

圖11 不同采樣步長的計算結果Fig.11 Calculation results of different sampling step

表1所示為不同網格模型的測試對比結果。在測試過程中,采樣步長為5°,共計算36×72=2 592個方向的理論支撐體積。在優化過程中,選取理論支撐體積最小的前100個方向進行優化計算,分別計算模型三角面片個數、網格模型體積V(M)、最優采樣方向理論支撐體積、最優方向理論支撐體積、采樣時間及優化時間。從表1中的計算結果可以得到,計算時間隨著模型三角面片個數的增加而增長。當模型網格數量較小時,本文算法效率非常高,即使模型三角面片個數為200 000,計算時間也短于180 s。當模型三角面片個數太多時,可先對模型進行基于特征的簡化,減少模型三角面片個數,然后再進行打印方向的優化。為了進一步驗證本文算法有效性,將本文算法與Autodesk公司的Meshmixer軟件進行對比測試。在進行對比測試時,除了一個模型外,其余所有模型的最終打印方向與本文算法的結果基本一致,如圖12所示。在得到各自的最優打印方向后,利用Meshmixer軟件提供的算法生成樹狀支撐結構,分別計算兩個不同最優打印方向下的實際支撐體積。從結果可以看出,對于該測試模型,本文算法結果更優。

表1 不同模型測試結果

(b)本文算法計算結果圖12 結果比較Fig.12 Comparison of results

4 結論

(1)本文提出了一種基于最小理論支撐體積的模型三維打印方向的計算方法,該方法能夠快速準確地計算最小理論支撐體積所對應的模型打印方向,為模型三維打印方向提供了輔助的優化方案。

(2)闡述了模型理論支撐體積的理論背景,給出了離散網格模型理論支撐體積的計算方法,同時針對凹模型的理論支撐體積的特殊性,利用光線追蹤的方法來計算凹模型的理論支撐體積。

(3)針對理論支撐體積函數不可導的特點,利用無導數優化算法來計算最小理論支撐體積所對應的方向,該方法可采用并行運算以加快計算速度。

(4)實驗表明本文算法在計算精度和計算效率上都優于已有的方法。

本文算法在計算方向時只考慮支撐體積這一單一因素,下一步研究將進一步考慮三維打印的表面粗糙度、打印時間等多方面因素,增強算法的適用性。

猜你喜歡
方向理論優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
堅持理論創新
當代陜西(2022年5期)2022-04-19 12:10:18
2022年組稿方向
計算機應用(2022年2期)2022-03-01 12:33:42
神秘的混沌理論
民用建筑防煙排煙設計優化探討
理論創新 引領百年
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
2021年組稿方向
計算機應用(2021年4期)2021-04-20 14:06:36
2021年組稿方向
計算機應用(2021年1期)2021-01-21 03:22:38
主站蜘蛛池模板: 9久久伊人精品综合| 人妻无码中文字幕第一区| 久热中文字幕在线| 在线国产综合一区二区三区| 欧美日韩在线第一页| 亚洲无码熟妇人妻AV在线| av手机版在线播放| 欧美在线一二区| 欧美日本一区二区三区免费| 国产一区免费在线观看| 精品无码一区二区在线观看| 最新无码专区超级碰碰碰| 亚洲一区无码在线| 亚洲成A人V欧美综合| 91久久夜色精品国产网站| 欧美一级特黄aaaaaa在线看片| 日韩国产黄色网站| 久久性妇女精品免费| 91欧美亚洲国产五月天| 国产精品极品美女自在线网站| 日韩欧美国产三级| 亚洲精品国产成人7777| 爱做久久久久久| 91啪在线| 欧美精品1区2区| 99精品一区二区免费视频| 国模私拍一区二区| 精品久久久无码专区中文字幕| 亚洲三级影院| 国产女人爽到高潮的免费视频| 9啪在线视频| 成人午夜网址| 久青草网站| 67194亚洲无码| 国产精品自在线天天看片| 国内精自线i品一区202| 91探花在线观看国产最新| 波多野结衣在线se| 国产另类视频| 丝袜国产一区| 伊人久久大香线蕉影院| 国产一级毛片yw| 青青青亚洲精品国产| h视频在线播放| 久久99国产综合精品1| 久久美女精品| 人人91人人澡人人妻人人爽| 57pao国产成视频免费播放| 99re精彩视频| 老司机午夜精品视频你懂的| 亚洲人成网站在线播放2019| 爽爽影院十八禁在线观看| 精品国产91爱| 欧美国产日产一区二区| 内射人妻无套中出无码| 亚洲开心婷婷中文字幕| 在线欧美a| 日韩专区欧美| 国产欧美综合在线观看第七页| 国产精品久久久久久久久久久久| 亚洲香蕉伊综合在人在线| 久久熟女AV| 国产精品视频第一专区| 亚洲av无码牛牛影视在线二区| 欧美在线免费| 久草视频中文| 中文无码精品a∨在线观看| 亚洲成aⅴ人在线观看| 九色国产在线| 2048国产精品原创综合在线| 日韩免费中文字幕| 亚洲最大福利网站| 国产夜色视频| 精品伊人久久久香线蕉| 四虎精品国产永久在线观看| 欧美三级视频网站| 亚洲一级毛片在线观| 青青热久免费精品视频6| 亚洲三级视频在线观看| 色有码无码视频| 国产玖玖玖精品视频| 久久毛片网|