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