薛 凱 郭潤蘭 黃暉陽 黃 華
蘭州理工大學機電工程學院,蘭州,730050
機械結構的拓撲優化受到傳統制造方式的限制往往難以實現,而增材制造技術的發展為拓撲優化結構的制備提供了強有力的支撐。但是,傳統優化設計方法并未充分考慮增材制造技術引入新的工藝約束問題,表現為內部結構存在過長懸垂區域或結構角度過大。在懸空結構成形過程中, 要求當前層中的打印位置下方或附近必須有材料支撐,否則材料會因重力影響而發生掉落[1-3],無法保證正常成形,而且這些額外的支撐結構在成形結束后必須通過人工處理。
為了使具有懸垂特征的結構更好地成形,降低打印成本,提高打印效率,沈振宏等[4]提出了一種樹形支撐結構算法,通過判斷臨界角來選擇待支撐區域,然后構建一種樹狀支撐結構,在打印完成以后,使用特殊材料的結構會被特制材料消除掉,使其他結構不受影響。而LU等[5]則借鑒蜂窩結構思想,提出一種優化模型內部結構的新方法,在打印模型內部空間制作了類蜂窩狀的單元,在保證打印模型滿足一定物理強度的條件下,降低了打印材料的消耗。WANG等[6]提出一種基于蒙皮-剛架(skin-frame)的方法,在中空的打印模型內部使用細桿構建了一個穩定的支撐結構,從而使打印模型既節省材料又滿足所需的物理強度要求。王繼東等[7]采取對模型外表面進行偏移得到內表面從而挖空物體內部的方法,實現對內部結構的優化。徐洪飛等[8]通過體素化的方式建立基于應力分布的殼模型和構造優化算法,形成非均勻厚度的殼模型。上述結構優化方法均得到了較好的成形結果,但是對成形過程中因為結構改變額外生成的支撐結構缺乏考量。
針對成形過程中產生支撐的問題,桂馨[9]提出了一種基于固體各向同性材料懲罰模型(SIMP)法和能量均勻化法的自支撐結構多尺度拓撲優化,在宏觀結構優化階段,利用SIMP法獲取自由分布的宏觀材料空間,在微結構設計階段,進行自支撐微結構設計,最終獲得自支撐結構。WANG等[10]提出了一種基于分層過濾策略的SIMP改進方法和一種基于懸垂靈敏度分析的雙向漸進結構拓撲優化(BESO)改進方法,以減少優化設計中懸垂結構的產生,從而避免產生支撐結構。ZOU等[11]提出了一種基于max/min函數識別非自支撐單元,通過不等式約束控制非自支撐單元數量,得到自支撐結構的方法。EMIEL等[12]將設計域分層,以設計域內每個點材料到達時間為判斷依據判斷支撐性,優化設計自支撐結構。LEE等[13]在模型內部建立按照一定方式排列的橢球結構來實現內部的結構優化,在一定程度上實現內部結構的自支撐。
不同的結構優化方法有著相同的目標,都是在滿足一定邊界條件下,使模型成形效率更高,成本更低。這些內部結構優化方法在成形質量及強度質量比兩個維度上有一定提升,但是在形成獨特的內部結構過程中,因為增材制造工藝特點,仍然不可避免地生成額外的支撐,比如蜂窩結構中一些接近水平的蜂窩頂部,桁架結構中頂部及其他位置橫置的一些桿。如果成形過程中不對其加以支撐,該處結構會因重力作用產生塌陷,甚至破壞整體成形結果。
針對上述問題,本文提出一種內部結構優化方法,在提出模型結構優化方法的同時,滿足成形過程中內部結構實現自支撐的要求,使模型成形過程中無需多余的支撐結構。首先利用點云數據方法獲得模型輪廓特征數據,然后將不同特征部分進行分割,從而建立與特征匹配的內部孔洞,在內部重新構造自支撐結構以避免成形過程中產生額外支撐。
本實驗通過PCL(point cloud library)庫中點云轉化代碼,將三維模型轉化為方便處理的三維點云格式文件,利用無序點云數據方法獲得三維模型輪廓數據,然后根據其不同部位特征將其分割,實現點云格式模型特征分離。在此基礎上,在點云格式文件里提取各個部分的關鍵點,利用空間最小二乘法擬合關鍵點,得到與外部特征相匹配的內部橢球孔洞,對孔洞大小、位姿進行調整,以符合增材制造成形特點。
點云數據區域分割方法是根據空間、幾何、紋理等特征對點云數據進行劃分,文中依據曲率對模型點云數據進行判斷,將一定范圍內小于曲率閾值的點云劃分在同一區域。實驗中采取基于區域生長的分割方式,對模型不同特征進行分割。
對數字模型進行分割處理,輸出的是幾個聚類集合,每個聚類集合被認為是同一光滑表面的一部分。區域生長算法是從曲率最小的點開始生長的,所以依據數字模型點的曲率值對點進行排序。得到的曲率最小的點設置為初始種子點,此時初始種子點所在的區域即為最平滑的區域,一般數字模型中平面區域較大,這樣從最平滑的區域開始生長可減少分割區域的總數,提高分割效率。
設置一個空的種子點序列和空的聚類數組,選好初始種子點后,將其加入種子點序列中,并搜索鄰域點。對每一個鄰域點,比較鄰域點的法線與當前種子點的法線之間的夾角,小于平滑閾值的鄰域點加入當前區域。檢查每一個鄰域點的曲率值,小于曲率閾值的鄰域點加入種子點序列中。判斷初始種子點(圖1中A點)與第一個鄰域點(圖1中B點)法向量夾角β<35°,然后判斷其曲率值大于0.05,所以排除該點,繼續尋找下一個鄰域點(圖1中C點),該點法向量夾角α<35°,曲率值小于0.05,所以該點加入種子點序列。本文中所取參數值均為對模型多次實驗取得的最佳效果值。

圖1 區域生長原理圖
在進行種子點鄰域判斷后,刪除當前種子點,利用新加入的種子點繼續生長,重復進行以上生長過程,直到種子點序列被清空。一個區域生長完成,將其加入聚類數組。最后,利用曲率值從小到大排序,順序選擇輸入點集的點作為種子點加入種子點序列中。重復以上生長的步驟,這樣就通過區域生長方法實現了點云數據的分割。在分割過程中,需要不斷調整分割參數,以達到更好的分割結果。
本次實驗中,表1所示的分割參數為實際參數,其中KN為用于法向量估計的k近鄰數目,BC表示是否需要直通濾波,FC為直通濾波的最大值,NC為直通濾波的最小值,ST為平滑閾值,CT為曲率閾值。圖2給出了點云分割示例,點云處理結果如圖2c所示,不同顏色區域代表分割的不同部分。可以看到,分割結果很完整,不同特征分割位置很明確,說明了區域生長分割方法的有效性。

(a)數字模型 (b)點云數據 (c)點云分割 (d)關鍵點提取圖2 Bunny模型處理過程

表1 分割參數
關鍵點也稱為興趣點,它是可以通過定義檢測標準來獲取的具有穩定性、區別性的點集。關鍵點的數量相比于原始點云或圖像的數據量小很多,它與特征描述子結合在一起,組成關鍵點描述子,常用來形成原始數據的緊湊表示。尺度不變特征轉換 (scale-invariant feature transform,SIFT)[14]是一種具有尺度不變性的局部特征描述子。SIFT能夠找出不會受移動、轉動、縮放、仿射變換等外在因素的影響而改變其特性的關鍵點,對于具有明顯特征的點云數據來說,利用該方法可以快速找到模型特征關鍵點。
完成對模型的分割以后,尋找模型各特征部分的關鍵點,文中采用SIFT關鍵點提取方法對各個特征部分點云數據提取關鍵點,其中,尺度空間中最小尺度的標準偏差設置為2,高斯金字塔組(octave)的數目設置為6,每組高斯金字塔組計算的尺度為4,限制關鍵點檢測的閾值為0.01。對分割后的各個模型進行處理,由SIFT方法提取各特征部分的關鍵點。由圖2d可知,Bunny模型關鍵點呈均勻分布狀態,上部、下部關鍵點數量與其特征大小相關,該結果與模型分割結果具有一致性,說明模型分割處理及其關鍵點的提取符合模型特征。
橢球體具有良好的力學性能,它的光滑邊界能夠顯著減小應力集中的情況[15],所以橢球體特征經常出現在對質量和力學性能有要求的結構中。而且橢球體的形狀參數調整選擇更豐富,因此本文中模型內部結構選擇橢球結構。成形過程中選擇合理的橢球結構參數能夠對實體模型產生更好的支撐,保證實體模型的力學性能。
得到模型點云數據不同部分的關鍵點后,以模型幾何結構特征為約束,過濾各模型中相對體積較小的特征,只保留特征尺寸明顯的部分。比如選擇Bunny模型的頭部和腹部作為優化重點,忽略耳朵及腳部特征。在三維空間內將坐標點代入橢球公式計算,獲得與各特征部分相匹配的橢球參數。此時獲得的橢球結構是超出模型點云數據邊界的,因為關鍵點的選取在模型邊界上,所得橢球結構大小在與初始模型配準時需要調整。
利用最小二乘法對得到的關鍵點數據進行擬合,橢球空間二次曲面標準表達式為
(1)
其中,x0、y0、z0為橢球中心坐標;m、n、l分別為橢球半軸長。
假設橢球中心為原點,那么式(1)可以寫成
(2)
將關鍵點三維坐標輸入空間橢球擬合代碼中,輸出擬合完成后的橢球參數。
為了使得到的橢球與模型特征匹配,在得到橢球形狀后,需要確定橢球結構在模型內部的位姿,防止其超出模型邊界,造成模型結構失效。此時利用點云數據配準方法確定橢球在模型內部的位置姿態。點云配準將從各個視角得到的點集合并到一個統一的坐標系下,利用輸入矩陣來實現點云數據的移位。文中采取4點全等集配準算法[16]實現橢球結構與模型的配準。該算法的核心思想就是利用剛體變換中的幾何不變性,即剛性變換后交點所占線段比例不變以及點之間的歐氏距離不變,在目標點云中盡可能尋找4個近似共面點與之對應,從而計算得到變換矩陣。
如圖3所示,在點云數據中選取共面的4個點,連接ab、cd交于e點,r1、r2分別為端點和交點距離與線段的比率,r1=‖a-e‖/‖a-b‖,r2=‖c-e‖/‖c-d‖,提取r1、r2,保證比率不變的情況下,在給定共面點集中尋找與其相近的點。對點集P中的點兩兩配對,尋找其交點,如果e1≈e2,則{a,b,c,d}與{q5,q3,q4,q1}兩個點集相似,可以輸出變換矩陣。配準過程中,需在清晰的關鍵點特征描述下才能保證后續流程中的變換矩陣估計的準確性和效率。

圖3 4點全等集原理圖
配準結果如圖4所示。4點全等集配準算法得到的結果,橢球結構所處位置距上下邊界保留充足距離,避免了在模型一些結構特殊位置產生干涉,甚至影響模型的結構;而兩兩配準法得到的結果,橢球結構與模型特征產生明顯干涉,且橢球結構與預想位置偏離很大。

(a)4點全等集配準 (b)兩兩配準
完成橢球結構與模型配準以后,將所得點云數據通過Geomagic Design X軟件處理得到數字模型。當橢球結構縮放為初始大小的85%時,在Bunny模型腹部與腿相交處,橢球結構與模型之間距離較近,如果繼續用該模型成形為實體模型,很難保證該處結構不會發生破壞,如圖5a所示。經過多次試驗,當縮放比例為70%時,能在保留足夠壁厚的情況下,達到橢球結構的最大化,保證了結構優化的效率,如圖5b所示。

(a)85%橢球大小 (b)70%橢球大小
將模型放置為水平打印角度,識別其待支撐區域,本文中主要針對內部掏空部分生成支撐結構,所以識別區域為封閉橢球部分。參考LUO等[17]提出的非線性虛擬溫度法,將孔洞部分假設填充為一種自加熱的高導熱材料(熱導率k和熱流密度q設置為較大值),將結構實體部分設為絕熱材料(為避免熱問題有限元分析奇異性,k設為一個較小值,q為0),求解散熱邊界下的虛擬溫度場問題。
利用外部溫度場的變化來判斷是否為封閉孔洞,當外部溫度升高時,說明存在未封閉孔洞;當識別到模型內部溫度升高時,說明有封閉孔洞存在。通過虛擬溫度場識別模型內部的封閉孔洞,然后在封閉孔洞部分構造對稱式自支撐結構,保證模型結構強度,如圖6所示。

(a)封閉孔洞原理圖 (b)溫度場變化圖
本研究采用長橢球體作為優化目標,但是不同模型特征對應橢球孔洞大小不同,而支撐結構尺寸與橢球孔洞尺寸相關。假設Z軸平行軸為最長軸,打印方向平行于Z軸,長橢球體通過圍繞其長軸旋轉橢圓得到。如圖7所示,在OXZ平面上,假設p1、p2為橢圓上的點,其中切線對應θ0,此時,在橢球上半圓其他p1p2大于ɑ0的位置可以直接成形,無需多余的支撐結構。如果p1p2小于45°,此時θ0大于45°,那么紅色圓弧部分在成形過程中無法單純依靠材料自身黏結性直接成形,在其下方需要多余支撐結構,否則會產生塌陷。為此,在識別到封閉孔洞區域后,在封閉孔洞內部建立自支撐結構來實現橢球孔洞的完整成形。

圖7 支撐傾角示意圖
三維打印系統多用STL格式文件表示零件的數據,因此用三角面片近似整個零件的表面。通過三角面片法向量與Z軸負方向夾角θ與臨界值β大小獲取所需支撐面片信息。θ≥β時,由于材料自身的黏結作用,無需添加輔助支撐結構;θ<β時,需要對面片添加支撐,同時對向下傾斜且不需要支撐區域的局部最低的點和線段進行識別。對于識別的待支撐面片集合Tsup,需要將集合中共邊的面片進行合并,得到若干獨立的待支撐區域A0,A1,…,An:
(3)
i,j=1,2,…,n且i≠j
面片合并結果如圖8所示。

圖8 待支撐面片集合Tsup
將相鄰的離散三角面片進行整合作為待支撐區域后,從待支撐區域向下投影,得到對應底層支撐生成區域,從上、下待支撐區域分別生成支撐結構。首先獲得區域投影的投影面,然后對待支撐區域進行柵格劃分,在投影區域內采樣一系列的待支撐點,采用一定的柵格間距d對待支撐區域進行網格劃分。柵格間距d的選取與材料的臨界打印長度(材料在沒有支撐的情況下保持不變形的極限打印長度)L有關。為了保證支撐的穩定性,同時避免選擇的支撐點過于密集,選取經驗值d=L/2。從柵格的左下頂點開始,逐行往上判斷每個柵格中的頂點個數。當柵格中的點個數為0時,插入相應的點并保存;當柵格中的點個數大于1時,計算這些點的中心點并保存。此時,由上方待支撐區域開始向下生成支撐,對待支撐區域劃分網格,如圖9所示。為了避免支撐結構不足,對其中所有節點進行包絡操作,以節點包絡圓作為支撐結構邊界,以保證支撐強度。

圖9 節點包絡圖
如圖10所示,產生首層支撐輪廓以后,判斷頂層與底層之間距離H,按層厚將首層輪廓線向下偏移h(h為層厚),對于待支撐點集P中的點p0,假設通過下方的點s1進行支撐,則s1p0與加工方向的夾角不大于臨界傾角β。以首層輪廓節點為原點,將該層包絡線向輪廓中心以β角發射射線,與下層的交點p即為下層節點,連接最外圈節點即為下層輪廓圓,逐層計算。投影高度H的中間位置為中心層,該層輪廓圓為最小輪廓圓。底層待支撐區域與上方支撐生成方式相同,方向相反。向上偏移h,直到與中心層支撐輪廓相交。得到對稱式結構后,將帶有支撐結構的模型轉化為可打印的STL文件,經后續分層處理得到模型的切片數據,然后再進行路徑規劃,從而完成模型的打印。

圖10 支撐生成原理圖
通過分層保存的節點輪廓信息,使用水平截面單元逐層掃掠各層節點到其子節點的路徑,獲得初始曲面頂點,然后對這些頂點進行處理,生成網格曲面,最終生成支撐結構。
將優化后的貓模型輸入Cura切片軟件,打印材料設置為PLA,密度為1240 kg/m3,彈性模量為3.5 GPa,泊松比為0.36,填充圖案設置為網格填充,填充率設置為25%,層厚設置為0.2 mm,模型壁厚設置為1 mm。對原始貓模型和優化后的貓模型進行切片,得到內部支撐數據如圖11所示,該層切片為第42層切片數據。在原始模型切片中(圖11a),內部均勻分布著網格支撐;而優化后模型中(圖11b),在生成橢球孔洞處,對稱式支撐結構完成了對內部結構的支撐,沒有產生額外的支撐結構。

(a)優化前切片 (b)優化后切片
在完成模型的優化以后,使用商用FDM 3D打印機極光爾沃A6制作模型,打印尺寸為300 mm×200 mm×200 mm。打印機的可打印精度范圍為0.1~0.4 mm,打印層厚h設定為0.2 mm。打印中使用塑料PLA材料,并將最大允許懸垂角度設置為45°,可打印水平懸掛的最大長度為5 mm。在成形過程中為模型的外部添加支撐結構,在模型內部不添加任何支撐。模型制作完成后,手動移除外部支架。
打印的模型如圖12所示,通過模型分解可以看到模型內部的對稱式自支撐結構的完整切面。對稱式自支撐結構直接成形,在模型內部沒有產生多余的支撐結構。利用本文提出算法優化的模型與常規模型結構相比,在打印時間和材料消耗方面均有明顯改善,如表2所示。在實驗中,時間最高縮短25%,材料消耗最高減少20%。平均打印時間減少16.4%,打印材料消耗減少12%。在保證成功成形的前提下,提高了打印效率,降低了打印成本。本文方法對特征較多的模型優化效果尤其顯著。以貓模型與Bunny模型為例,兩個模型具有明顯球類特征,在其內部形成橢球結構時計算量更小,在最終成形效果上表現為內部橢球結構更明顯,在時間、材料消耗方面優化效果更顯著。

表2 成形結果對比

(a)貓 (b)Bunny
(1)內部優化結構成形過程中如無法滿足自支撐要求,易在生成內部結構的同時生成不必要的額外支撐結構。為此,本文以模型幾何結構特征為基礎,提出了一種結構優化方法,在對模型內部結構優化的同時,生成對應的內部自支撐結構。
(2)利用點云數據處理方法對模型進行處理,選擇橢球結構作為內部結構優化目標,針對不同模型不同特征,在實體模型中成功建立一個或多個橢球結構,每部分橢球結構與外部特征相對應,實現了內部結構的精準優化。在保證完整成形結果的情況下,提高了打印效率,降低了打印成本。
(3)提出一種對稱式自支撐結構生成算法,在識別模型內部封閉孔洞需要支撐結構位置之后,在其內部建立對稱式自支撐結構。該結構滿足自支撐條件,無需在內部產生額外支撐結構,降低了后期處理的難度。