陳 英,林云森
(南昌航空大學 軟件學院,南昌 330063)
隨著社會的發展和科學技術的進步,人們對于信息化、智能化和高效化的要求越來越高,這促使3D打印快速成型技術得以迅速發展。3D打印技術作為一種新型的快速成型方法已不是什么新鮮的話題[1],如LCD、FDM、SLA、SLM技術,這幾種3D打印技術它們都有各自的優勢。但是不管是哪種3D打印技術,都不可避免要面對模型添加支撐打印和后處理中支撐的去除的問題。有過3D打印經驗的都知道,在模型打印中,模型支撐的添加和設置對模型打印成功率和模型成型效果的影響非常大。同時對打印完成后模型支撐的后處理也非常重要。因此,模型支撐問題可以說是3D打印技術中急需解決的一個難點問題[2]。
在LCD光固化3D打印技術中,3D打印機是根據切片圖形,一層一層的打印模型,打印過程中,由于成型耗材受重力影響,每成型一層就必須在上一層成型面的基礎上給予支撐[3]。對于結構復雜的零部件模型,其在成型過程中,片層截面輪廓變化明顯,如果上一層成型面不能為下一層成型面提供支撐定位,會嚴重影響模型的成型質量甚至無法成型,因此,對于中空的部位,需要添加支撐來保證模型打印成功。
但是又因為目前3D打印材料較為昂貴,同時模型打印完成后清除支撐會大大影響模型表面光潔度等麻煩的問題,所以,不會給模型的所有中空位置都添加支撐,而是給一些關鍵或者特別突出的中空位置添加一些支撐。但如果增加支撐體積,又會增加支撐和模型的接觸面積進而影響模型表面光潔度增加清除支撐的難度。
因此,為解決現有技術中,支撐數量過多會增加打印成本,影響成型效果,過少又不能起到較好的支撐作用的問題,本文以LCD光固化3D打印技術為例,在支撐之間設計自動添加連接桿的算法,可有效提高支撐穩定性從而提高模型成功率和成型效果[4],又無需增加支撐數量和體積的,還能減少耗材,降低成本,使3D打印效果達到最優化。
本文自動添加連接桿算法主要分為支撐生成模塊和連接桿生成模塊。支撐生成模塊包括從3D模型文件導入,待支撐區域提取,支撐生成。連接桿生成模塊主要步驟包括,連接桿參數設置、連接桿計算、連接桿生成和切片文件生成。算法總體流程圖如圖1所示。

圖1 算法步驟流程圖
對待加支撐區域,通過手動添加支撐,然后遍歷支撐 生成模塊生成的當前所有支撐,將與當前最新支撐的距離在預設間距范圍內的支撐作為目標支撐[5]。根據預設角度(圖2中θ)和當前最新支撐與目標支撐的距離(圖2中Cd),計算得到連接桿高度,所述連接桿高度為垂直方向的連接杠高度(圖2中Hd),以及,根據所述連接桿高度和支撐總高度,計算得到預備添加連接桿的數量。其中所述支撐總高度為所述當前最新支撐和目標支撐兩者頂點中的較低點減去預設的第一預留高度后,與兩者底點中的較高點加上預設的第二預留高度后,之間的高度差(圖2中H)。圖2顯示了模型1,在支撐31與支撐32之間連接桿生成的結構的過程。連接桿支撐算法設計步驟如下:
步驟一:遍歷當前所有支撐,將與當前最新支撐的距離在預設間距范圍內的支撐,作為目標支撐。
具體的,如圖2所示,在導入3D模型文件后,首先模型1待加支撐區域上生成第一根支撐31,可手動設置支撐31的添加位置和大小等參數,也可以通過軟件系統內置的參數生成第一根支撐31。其中,支撐參數包括但不限于,支撐位置信息,支撐直徑、支撐高度等。

圖2 連接桿生成結構圖
生成第一根支撐31之后,開始執行步驟一,如果沒有其他支撐即只有一根支撐時,不遍歷當前支撐,即不執行步驟一。
按照生成第一根支撐31的方法繼續添加第二根支撐32,在生成第二根支撐32后,又開始執行步驟一,判斷當前最新支撐(即第2根支撐)32與第一根支撐31的距離Cd是否在預設的間距范圍內,如果在預設的間距范圍內,就將第一根支撐31作為目標支撐,并進入步驟二;否則,繼續添加下一根支撐。在算法中另一實施例中,當有兩根以上支撐時,在步驟一中,遍歷除自身(即當前最新支撐)外的其他所有支撐。當有3根或更多根支撐時,可將與當前最新支撐的距離在間距范圍內,且距離最短的支撐作為目標支撐。
步驟二:根據預設角度和所述當前最新支撐與目標支撐之間的距離,計算得到連接桿高度。
具體的,在算法計算中,連接桿高度為連接桿在垂直方向的投影高度。根據正切三角函數的公式,連接桿高度Hd=Cd/tan(θ)。其中,Cd為當前最新支撐與目標支之間的距離。在本算法中,所述預設角度為連接桿和支撐之間的夾角的角度θ,可預置在系統內的默認參考角度,或者用戶可根據實際情況設置具體數值,但需要在步驟一之前預設完成,在本步驟二計算得到連接桿高度后,進入步驟三。
步驟三:根據所述連接桿高度和總高度,計算得到預備添加數量。
具體的,在本實施例中,如圖2所示,所述總高度H為當前最新支撐32和目標支撐31兩者頂點中的較低點減去預設的第一預留高度h1后,與兩者底點中的較高點加上預設的第二預留高度h2后,兩者之間的高度差。其中,兩者頂點中的較低點為當前最新支撐32和目標支撐31兩者頂面圓心(頂點)中的高度較低的點Lm3。另外,由于當前最新支撐32和目標支撐31兩者的底面處于不同的水平面,所以,兩者底點中的較高點Ln3為當前最新支撐32的底面圓心,點Ln3加上第二預留高度h2后得到結束點Fin。預備添加數量等于點Lm3的高度減去第一預留高度h1,與結束點Fin之間的高度差(即總高度H),再除以步驟二得出的連接桿高度Hd,所得的商數,忽略余數。其中,高度差是指垂直方向的高度差,至此得到預備添加的連接桿數量。
在本算法中另一情況[6],當新增支撐與目標支撐兩者處于相同水平面時,如圖3所示,則兩個的底部就不需預留高度h2,此時總高度H為當前最新支撐32和目標支撐31兩者頂點中的較低點減去預設的第一預留高度H1后,兩者之間的高度差。將總高度H再除以步驟二連接桿高度,所得的商數,忽略余數。其中,高度差是指垂直方向的高度差,至此得到預備添加的連接桿數量。

圖3 同一平面連接桿生成結構圖
步驟四:從目標支撐的當前頂點起始點開始,按照所述預設角度和預設連接桿直徑,生成最新支撐和目標支撐的第一根連接桿。
具體的,所述預設直徑為連接桿直徑,可預置在系統內,通常,連接桿直徑要小于支撐的直徑,或者用戶可根據實際情況設置具體數值,必需要步驟一之前完成設置。
步驟五,以前一連接桿的終點為起點,按照所述預設角度和預設連接桿直徑,生成連接所述當前最新支撐和目標支撐的第二根及以上的連接桿,直至連接桿數量達到步驟三計算得到的預備添加連接桿數量。
具體的,如圖2生成第一根連接桿41后,即可從第一根連接桿41的終點En開始生成第二根連接桿42,直徑、角度和、高度和形狀都和第一根連接桿41相同。依此類推,第三根連接桿及后續連接桿都是在前一根連接桿終點開始生成,直到連接桿數量達到步驟三計算得到的預備添加連接桿數量。
至此,系統已經完成了第一根支撐31和第二根支撐32之間連接桿的添加。然后,繼續添加第三根支撐時,又回到步驟一,繼續尋找與第三根支撐的距離在預設間距范圍內的目標支撐。依此類推,直到所需支撐和連接桿添加完畢。如圖4添加支撐的效果圖。

圖4 模型添加支撐效果圖
本文算法的目的是為3D模型支撐之間建立穩定且節省耗材的連接桿支撐結構,是為3D模型的順利打印建立良好的前提。
文中的算法主要包含3個參數,連接桿與垂直支撐夾角θ預設為π/4,上頂點的預設高度h1設為0.8mm,底部預設高度h2設為0.5mm。
實驗測試集選用8個3D模型數據,模型主要來源于 3D模型打印啦網站。
實驗采用NOVA3D BENE3-L3121打印機,打印參數設置為層厚0.05mm,底部層數3層,底部曝光時間60s,普通曝光時間8s,每層曝光電機抬升高度4mm,電機上下速度100mm/min,靜止等待時間為2s。打印材料為普通剛性光敏樹脂。
為了檢驗支撐之間的連接桿對3D模型打印成型效果和模型消耗耗材效果。選取了8組不同的模型作為實驗對象,這8個模型復雜度和需加支撐數逐一遞增,然后分別采用支撐之間加連接桿與支撐之間未加連接桿進行打印,打印對比如圖5所示,分析圖5可知沒有采用連接桿打印,模型越復雜,加的支撐越多,打印出來模型的表面誤差越大,一方面由于過多支撐與模型接觸導致后處理中修剪支撐時,修剪后模型有微變形從而導致表面誤差變大,另一方面與支撐在打印過程中不能穩定支撐住模型,如圖6(a)、圖6(b)在動漫模型手臂A處必須添加支撐,來保證模型成功打印,當未采用添加連接桿方式的支撐打印,支撐穩固性差,支撐不住手臂的懸空重量,導致手臂處打印變形,也導致表面誤差增大。而采用支撐之間添加連接桿方式,無論是打印結構比較簡單的3D模型,還是結構相對復雜的3D模型,得到的表面誤差都較小,誤差值沒有超過0.01,可以說明使用連接桿方式打印,實體3D模型表面光滑,誤差很小,這與連接桿使模型的支撐更加穩固,同時也大大減少支撐與模型接觸面[7]。

圖5 兩種方式打印模型表面誤差對比

圖6 模型打印實物圖
對比添加連接桿模型和未添加連接桿模型兩種方式打印獲得實物,模型打印耗材使用情況對比如圖7所示,從圖7中可以清楚地看出,未添加連接桿模型打印,由于模型復雜度影響,需要添加支撐會越多,增加了耗材[8]。而添加連接桿的模型可使得支撐減少,減少耗材使用,由此可以見支撐之間添加連接桿,其耗材明顯較少。

圖7 添加連接桿和未添加連接桿模型打印耗材對比
實驗結果顯示無論是打印結構比較簡單的3d模型,還是結構相對復雜的3D模型,模型在支撐之間添加連接桿條件下,有效提高支撐穩定性使其穩定打印保證其成型效果和模型表面光潔度,并且能有效減少打印耗材。
本文針對3D打印中由于添加支撐數量過多導致支撐與模型接觸面增多導致模型表面成型效果差,增加打印支撐材料成本,后期清除支撐麻煩,過少又使支撐不穩固導致打印失敗的問題,提出了一種支撐之間添加自動連接桿算法,目標支撐與最新支撐之間生成連接桿,繼續添加的支撐也與目標支撐之間生成連接杠。實驗結果表明,針對多個代表性的模型,該算法均能有效提高支撐穩定性使其穩定打印保證其成型效果和模型表面光潔度,并且能有效減少打印耗材。
文中算法主要針對人造模型,該類模型通常加支撐都為垂直于底面的筆直支撐,若模型過于特殊,需要有幅度的支撐時,則支撐與目標支撐不能形成穩定的三角結構,可能導致打印失敗,此時需要設計能根據幅度生成有對應幅度的連接桿。這也是后續重點的研究方向。