余學偉,李琳慧,張 濤,張正文
(重慶大學 機械工程學院,重慶 400044)
近年來增材制造技術(shù)的快速發(fā)展使復雜點陣結(jié)構(gòu)的加工制造成為可能,基于三周期極小曲面(triply periodic minimal surface, TPMS)的點陣結(jié)構(gòu)因具有輕質(zhì)高強度、連通性好、拓撲結(jié)構(gòu)可控等優(yōu)點[1-2],在結(jié)構(gòu)輕量化設(shè)計、生物植入物中得到廣泛應(yīng)用[3-4],受到國內(nèi)外專家學者的關(guān)注[5- 6]。
圍繞TPMS點陣結(jié)構(gòu)建模設(shè)計的研究主要分為空間單元映射和布爾運算兩類方法??臻g單元映射是通過對實體進行六面體網(wǎng)格劃分,將標準的TPMS單元用形函數(shù)分別映射到實體中的每個六面體單元,從而構(gòu)建出異構(gòu)點陣結(jié)構(gòu)模型[7-8]。張壯雅等[9-10]通過形函數(shù)變換以及模板法對點陣結(jié)構(gòu)進行局部加密,設(shè)計出孔隙可控的TPMS點陣結(jié)構(gòu)。空間單元映射法構(gòu)建的TPMS點陣結(jié)構(gòu)一定程度上可以擬合不規(guī)則實體的輪廓,在力學性能和模擬天然組織的多孔結(jié)構(gòu)上也有較為優(yōu)異的表現(xiàn),但由于六面體單元尺寸及制造工藝的限制,存在輪廓擬合精度不高、無法保證加工質(zhì)量、拓撲結(jié)構(gòu)不易調(diào)整等問題。
布爾運算法通過將隱函數(shù)表示的TPMS單元點陣結(jié)構(gòu)與復雜輪廓實體進行布爾運算來解決空間單元映射法存在的問題[11-12]。Yoo[13]提出了一種基于距離場和TPMS的布爾運算算法,可以獲得具有復雜微觀結(jié)構(gòu)和較高質(zhì)量的點陣結(jié)構(gòu)。劉飛[14]系統(tǒng)地研究了包括密度梯度、單元尺寸梯度、異構(gòu)結(jié)構(gòu)梯度的TPMS點陣單元建模。Aremu等[15]提出了一種基于體素的點陣結(jié)構(gòu)建模制造方法,構(gòu)造點陣結(jié)構(gòu)蒙皮來解決點陣結(jié)構(gòu)在實體邊界處懸空的問題,改善力學性能。雖然通過手動調(diào)整TPMS的隱函數(shù)參數(shù),可以控制TPMS點陣結(jié)構(gòu)的拓撲,但無法根據(jù)模型的受力情況自動、靈活地調(diào)整。許多學者通過將TPMS與拓撲優(yōu)化相結(jié)合,從而建模具有應(yīng)力自適應(yīng)性的TPMS點陣結(jié)構(gòu)。Cheng等[16]根據(jù)拓撲優(yōu)化后的應(yīng)力分布來填充梯度的桿狀點陣結(jié)構(gòu),提高了結(jié)構(gòu)拓撲優(yōu)化后的力學性能。Kim等[17]通過多尺度的拓撲優(yōu)化,將微觀點陣結(jié)構(gòu)嵌入到實體拓撲優(yōu)化后得到的空白區(qū)域內(nèi),從而提高結(jié)構(gòu)的剛度和結(jié)構(gòu)的能量吸收率。Li等[18]使用一種拓撲設(shè)計方法,通過將TPMS與基于密度的拓撲優(yōu)化相結(jié)合,開發(fā)了基于TPMS的功能梯度點陣結(jié)構(gòu)。但布爾運算法建模的點陣結(jié)構(gòu)存在大量的三角面片錯誤,甚至會導致運算失敗。而傳統(tǒng)的基于距離場的復雜輪廓點陣結(jié)構(gòu)設(shè)計,雖然可以解決上述問題,但是存在計算量大,運算時間過長的問題。
為解決TPMS點陣結(jié)構(gòu)建模中遇到的速度慢、過程繁瑣、易出錯的問題,基于體素距離場和TPMS提出了一種簡便、高效的復雜輪廓TPMS點陣結(jié)構(gòu)建模方法。通過移動立方體法實現(xiàn)TPMS單元三角面片模型的建模;對空間域中點與幾何模型的拓撲位置關(guān)系進行判定,將空間中的點體素化;通過計算體素的鄰域體素數(shù)量,獲取位于模型邊界的點集;求解點集相對于幾何模型輪廓的距離場,并與TPMS曲面的距離場進行布爾運算,從而構(gòu)建具有復雜輪廓的TPMS點陣結(jié)構(gòu)。
TPMS是一種基于數(shù)學表達的隱式曲面,是一類在3個獨立的方向上呈現(xiàn)周期性變化的極小曲面。因此將TPMS用于點陣結(jié)構(gòu)建模,并可通過修改數(shù)學表達式中的常數(shù)來調(diào)整點陣結(jié)構(gòu)的特征變化。TPMS的點坐標可通過如下的Enneper-Welerstrass參數(shù)化方程精確表達。
(1)
(2)
式中:Ak為函數(shù)的振幅;λk為三角函數(shù)的周期;Pk為函數(shù)的相對移動量;函數(shù)變量C(也稱為距離常數(shù))控制曲面的偏移量;K為三角函數(shù)個數(shù);r為自變量。近似的TPMS是用隱式函數(shù)來表述的,并且在曲面上各點均有恒定的值,具有這種性質(zhì)的曲面也被稱為等值面。表1列出了6種典型的TPMS函數(shù),其中前3種可以通過封閉曲面來生成桿狀TPMS點陣結(jié)構(gòu);后3種通過將曲面的C值分別朝兩個方向偏移,并封閉兩個曲面的中間區(qū)域來生成殼狀TPMS點陣結(jié)構(gòu)。
表1 TPMS的隱函數(shù)表達式
表中X=2πx/T,Y=2πy/T,Z=2πz/T,通過改變周期T的值,可以改變點陣結(jié)構(gòu)的單胞大小。通過改變距離常數(shù)C,調(diào)整曲面的偏移可以改變點陣結(jié)構(gòu)單胞的體積分數(shù)。
距離場是幾何模型的一種高效數(shù)字化表示方式,其定義為空間域中的點集與幾何模型的距離的標量場,每個點的標量的絕對值表示該點與幾何模型的最小距離,標量的正負表示該點是否在模型的內(nèi)部。如圖 1所示,負值表示該點在模型內(nèi)部,正值表示該點在模型外部。對于TPMS而言,空間中某點P0(x0,y0,z0)到曲面的距離為
(3)
圖1 距離場概念示意圖Fig. 1 Schematic diagram of the concept of distance field
TPMS單元的建模是通過移動立方體(marching cubes,MC)法,首先將建??臻g劃分為若干個小的立方體區(qū)域,通過求解TPMS曲面,獲取每個立方體與曲面的關(guān)系,并通過插值的方法來獲取與TPMS曲面近似的等值面,具體的建立過程如下。
圖2 TPMS單元表征空間Fig. 2 Element representation space of TPMS
2)將建??臻g體素化為若干個立方體,立方體的長寬高尺寸即為TPMS曲面在三個維度上的采樣精度。將立方體的八個頂點分別代入TPMS的隱函數(shù)方程式(2)中求解,若大于0,則將該點的狀態(tài)置1;若小于0,則將該點的狀態(tài)置0,從而得到立方體的8位二進制狀態(tài)值cubeIndex,總共有256個狀態(tài)。
(4)
4)根據(jù)cubeIndex查找邊索引表及三角剖分索引表,得到每個立方體的邊狀態(tài)edgeStatus和三角剖分狀態(tài)triaStatus,通過edgeStatus及線性插值理論,求得交點的坐標值,并根據(jù)三角剖分狀態(tài)triaStatus連接各個交點,組成與等值面近似擬合的三角面片。
5)連接所有立方體求解出的三角面片,便獲得TPMS的擬合曲面。
通過上述步驟,建立表1中的TPMS曲面單元如圖3所示。
圖3 TPMS單元Fig. 3 TPMS Elements
復雜輪廓點陣結(jié)構(gòu)的建模是通過對給定空間域中的距離場進行布爾運算,如式(5)所示:
(5)
為了提取位于復雜輪廓點陣結(jié)構(gòu)的邊界的采樣點,首先需要將點體素化,即將點的狀態(tài)置為0或1,本研究中將位于模型內(nèi)部的點狀態(tài)置為激活態(tài)1,位于模型外部的點置為未激活態(tài)0。采用射線法[20]判斷點與三角面片組成的模型的拓撲位置關(guān)系的算法已經(jīng)比較成熟,即從查詢點朝任意方向發(fā)出一條射線,如果點在模型內(nèi)部,則與模型的交點個數(shù)為奇數(shù),否則為偶數(shù),如圖 4所示。
圖4 拓撲關(guān)系算法原理圖Fig. 4 Schematic diagram of topological relation algorithm
在將空間中的點體素化后,提取體素化模型邊界上的體素,將其稱為邊界體素。邊界體素可以根據(jù)該體素周圍處于激活態(tài)的體素數(shù)量來判斷。在二維空間中,處于內(nèi)部的體素,周圍共有8個體素是處于激活狀態(tài),而邊界的體素周圍處于激活態(tài)的體素少于8個,如圖5示;而在三維空間中,一個體素點的周圍共有26個體素(面相鄰6個,邊相鄰12個,點相鄰8個)。由于上述體素點均在模型輪廓內(nèi)部,因此將其定義為內(nèi)部邊界體素。若位于模型內(nèi)部空間域中的體素點狀態(tài)用矩陣Iijk表示,邊界上的體素點用矩陣BIijk表示,則有如下計算公式。
(6)
式中:i,j,k分別表示矩陣中的行、列、頁索引,f(Iijk)表示體素點Iijk周圍的被激活的體素點的數(shù)量。
圖5 內(nèi)外體素點示意圖Fig. 5 Schematic diagram of internal and external voxel points
由MC算法的原理可知求解曲面的擬合三角面片需要讓空間中的立方體與輪廓相交,再進行插值運算。因此,除了獲取內(nèi)部的邊界體素點,還需要獲取外部的體素點。通過對體素點矩陣Iijk進行膨脹,即把模型體素周圍的26個體素點激活,使激活的點可以覆蓋模型的輪廓,并再次取其邊界體素,得到的體素點定義為外部邊界體素點,用矩陣BOijk表示。最后,對得到的內(nèi)部邊界體素點矩陣BIijk和外部邊界體素點矩陣BOijk做合并的布爾運算,即可得到邊界體素點矩陣Bijk,數(shù)學模型如式(7)所示。
(7)
式中:fbw表示提取體素模型邊界體素點的算法函數(shù);fdil表示對體素模型進行膨脹處理的算法函數(shù)。圖 6所示為二維空間中一個正六邊形區(qū)域的邊界體素點提取過程。
圖6 正六邊形邊界體素點提取過程Fig. 6 Extraction process of voxel points on the boundary of a regular hexagon
假定復雜輪廓的幾何模型由一組三角面片∑△s(例如STL、OBJ文件格式)組成,則無符號距離場的定義為空間域中的采樣點P與∑△s的最短歐式距離dist(P),Pt表示其對應(yīng)的三角面片,如式(8)所示:
(8)
為了區(qū)分點與幾何封閉模型的拓撲關(guān)系,模型的距離場一般使用符號距離場(signed distance function, SDF)。SDF返回空間域中采樣點到模型輪廓的最小距離,符號表示點P與模型的拓撲關(guān)系,則空間采樣點到模型輪廓的SDF公式如下。
(9)
式中M表示模型內(nèi)部。計算采樣點到∑△s的最短距離采用正交投影算法[21],算法基本原理是將點到三角形的距離分為如圖 7所示的3種情況:
1)當點P正交投影于三角形△內(nèi)部的時候,距離dist(P)為點到三角形所在平面的最短距離。
2)當點P正交投影于三角形△的3條邊上時,距離dist(P)為點到邊的最短距離。
3)當點P正交投影于三角形△的3個頂點上時,距離dist(P)即為點與點的距離。
圖7 計算點到空間三角形的最小距離的3種情況Fig. 7 Three cases for the calculation of minimum distance from a point to a triangle
根據(jù)2.2節(jié)中計算的邊界體素點狀態(tài)矩陣Bijk從空間點集中取出邊界體素點坐標,并計算距離場。由于模型內(nèi)部是由TPMS填充,可將模型內(nèi)部的點的距離標量設(shè)置為小于TPMS距離場最小值的任意值;為使模型外部的點的距離場不影響到0等值面插值運算,只需將模型外部的點距離場值置為大于TPMS的距離場的最大值即可。復雜輪廓TPMS點陣結(jié)構(gòu)的距離場數(shù)學模型如式(10)所示。
(10)
式中:Inijk表示模型內(nèi)部的體素,IOijk表示模型外部的體素,CP表示包含點坐標的矩陣。在獲得TPMS曲面及幾何模型在包圍盒空間中的距離場后,通過式(5)進行布爾運算,便能獲得具有幾何模型輪廓的TPMS點陣結(jié)構(gòu)的距離場。
為了驗證提出的建模方法的魯棒性和有效性,對一組具有任意形狀和拓撲結(jié)構(gòu)的幾何模型進行點陣結(jié)構(gòu)填充。圖 8所示為構(gòu)建具有股骨輪廓的TPMS點陣結(jié)構(gòu)的流程示意圖。點陣結(jié)構(gòu)建模算法使用Matlab編寫,運行的電腦環(huán)境為I5-8500,3 GHz CPU,運行內(nèi)存16 GB,程序只要讀入模型的STL文件,便能自動運算并輸出TPMS點陣結(jié)構(gòu)的STL文件。如圖8~9所示,根據(jù)本文中提出的算法設(shè)計的程序成功生成了具有薄壁圓筒輪廓和股骨輪廓的P和G單元點陣結(jié)構(gòu)。測試結(jié)果見表2,可見本文中提出的方法與原始的求解全局采樣點的距離場方法相比較,可有效減少需要求解距離場的點的數(shù)量。在建模具有股骨輪廓的點陣結(jié)構(gòu)時,原算法中的距離場計算時間為本算法的41倍;在建模具有薄壁圓筒輪廓的點陣結(jié)構(gòu)時,原算法中的距離場計算時間為本算法的31倍。距離場計算時間大幅縮短是因為需要計算距離場的采樣點數(shù)量大幅減少。設(shè)模型的包圍盒長寬高分別為L、W、H,模型的表面積為S,采樣精度為a,則時間縮短倍數(shù)可由式(11)估算:
(11)
圖8 股骨輪廓的點陣結(jié)構(gòu)建模示意圖Fig. 8 Schematic diagram of modeling lattice structure of femoral contour
圖9 薄壁圓筒輪廓的點陣結(jié)構(gòu)Fig. 9 Lattice structure of thin-walled cylinder
從圖 8~9可見構(gòu)建的點陣結(jié)構(gòu)模型具有平滑的幾何輪廓,證明了本文中提出的建模方法具有良好的輪廓適應(yīng)性,能夠在構(gòu)建TPMS點陣結(jié)構(gòu)的同時保留原始幾何模型的輪廓特征,能夠穩(wěn)定地對具有復雜輪廓的TPMS點陣結(jié)構(gòu)建模。
表2 建模參數(shù)對比
提出了一種高效的復雜輪廓點陣結(jié)構(gòu)建模方法,采用隱函數(shù)表達的TPMS作為點陣結(jié)構(gòu)單元,通過構(gòu)建TPMS曲面的空間距離場,再使用移動立方體法來重建TPMS曲面的擬合等值面,為設(shè)計具有復雜輪廓的點陣結(jié)構(gòu)提供了基礎(chǔ)。同時提出了一種基于體素的幾何模型距離場計算方法,通過將空間采樣點體素化,并提取邊界體素,膨脹體素矩陣,再次提取邊界體素,實現(xiàn)了幾何模型輪廓邊界點的快速提取,顯著提高了點陣結(jié)構(gòu)建模過程中的幾何模型距離場的計算速度。最后通過對TPMS曲面的距離場及幾何模型的距離場進行布爾運算,并擬合等值面,構(gòu)建出了具有復雜幾何輪廓的點陣結(jié)構(gòu)。該方法可進一步擴展到各種功能性復雜輪廓TPMS點陣結(jié)構(gòu)的建模,比如功能梯度TPMS點陣結(jié)構(gòu)、應(yīng)力自適應(yīng)TPMS點陣結(jié)構(gòu)等,為拓寬TPMS單元類型點陣結(jié)構(gòu)的應(yīng)用提供了一種穩(wěn)定、高效的建模方法。