3D打印里,STL文件應(yīng)用最為廣泛。本文比較分析了兩種不同表示方法的STL格式,探討了其優(yōu)勢與缺陷。依據(jù)文件數(shù)據(jù)特點(diǎn),構(gòu)建了頂點(diǎn)和三角形面片的存儲(chǔ)結(jié)構(gòu),用于讀取文件與保存模型數(shù)據(jù)。闡述OpenGL渲染原理及實(shí)際模型顯示流程后,采用C++結(jié)合OpenGL技術(shù)實(shí)現(xiàn)模型渲染與可視化,便于后期觀察數(shù)據(jù)處理結(jié)果,保障處理準(zhǔn)確性。
3D打印采用逐層疊加帶厚度切片的方式,當(dāng)相鄰兩層輪廓線在分層平面正投影不重合時(shí),會(huì)產(chǎn)生臺(tái)階效應(yīng)。這種階梯狀表面對(duì)產(chǎn)品表面粗糙度、尺寸精度影響大,還會(huì)給產(chǎn)品后處理帶來不便。臺(tái)階效應(yīng)程度與成形方向直接相關(guān),所以選擇合適的成形方向十分關(guān)鍵。

自適應(yīng)分層中,層高是變量,計(jì)算體積誤差時(shí)無法以公因數(shù)形式提取。因此,需先根據(jù)不同自適應(yīng)分層算法確定的層高,單獨(dú)計(jì)算每一層每個(gè)三角形面片產(chǎn)生的體積誤差,再累加各層體積誤差得到總體積誤差。
實(shí)現(xiàn)局部區(qū)域體積誤差計(jì)算的基本思路:
遺傳算法全局最優(yōu)解搜尋能力強(qiáng),能自適應(yīng)調(diào)整搜索方向,且不受目標(biāo)函數(shù)性質(zhì)約束。本文用其對(duì)目標(biāo)優(yōu)化函數(shù)進(jìn)行迭代求解。個(gè)體體積誤差越大,適應(yīng)度越低。在編碼范圍內(nèi),對(duì)種群個(gè)體按適應(yīng)度施加遺傳操作,用新種群替換當(dāng)前種群,循環(huán)此過程使問題解不斷優(yōu)化,直至產(chǎn)生最優(yōu)解。

與本文優(yōu)化結(jié)果對(duì)比可知:
分析等厚分層與自適應(yīng)分層在成形方向優(yōu)化中的差異,提出適合分層厚度變化情況的模型成形方向優(yōu)化算法,解決了現(xiàn)有算法只能在等厚前提下優(yōu)化的問題。
實(shí)例表明:

本文優(yōu)化算法是僅考慮表面質(zhì)量的單目標(biāo)優(yōu)化,實(shí)際打印可能還需考慮成形高度和減少支撐,未來將探討層厚變化前提下模型成形方向的多目標(biāo)優(yōu)化。
隨著對(duì)打印精度、成形質(zhì)量要求提高,除從硬件提高打印設(shè)備定位精度外,從軟件算法著手也很有效,主要體現(xiàn)在:
使用高精度STL模型或減小分層厚度,會(huì)大幅提高數(shù)據(jù)處理復(fù)雜度,對(duì)分層算法提出更高要求。
提出的“前邊”“后邊”概念,使任意三角形與切平面相交時(shí)僅需計(jì)算一個(gè)交點(diǎn),所需存儲(chǔ)交點(diǎn)數(shù)量減半,算法通過“公共邊”匹配形式對(duì)交點(diǎn)進(jìn)行輪廓構(gòu)造。
具體描述為:將三角形法向量指向觀察者,三角形與切平面的左相交邊為前邊,右相交邊為后邊,公共邊為相鄰三角形共用邊。循環(huán)上述步驟完成輪廓構(gòu)造。
算法順序遍歷一次STL模型即完成分層,無需像構(gòu)建拓?fù)潢P(guān)系或?yàn)槿切闻判蚰菢颖4嬷虚g數(shù)據(jù),提高了效率、節(jié)約了內(nèi)存。
其關(guān)鍵在于“前邊”“后邊”判定和根據(jù)ECC算法進(jìn)行輪廓構(gòu)造,計(jì)算得到一個(gè)交點(diǎn)后,ECC算法在當(dāng)前層查找“公共邊”,找到相鄰三角形并完成交點(diǎn)插入。

分析STL模型三角形面片與相鄰切片層位置關(guān)系發(fā)現(xiàn),生成相鄰輪廓層的三角形有一定比例重復(fù),同一三角形中相鄰交點(diǎn)輪廓構(gòu)造方式可能相同,這部分交點(diǎn)可按上一層輪廓構(gòu)造過程插入。
若能剔除所有“公共邊”重復(fù)查找部分,將大幅提高模型輪廓構(gòu)建速度,提升切片效率。顯然,分層厚度越小,生成相鄰切片輪廓的重復(fù)三角形數(shù)量越多,可避免的重復(fù)計(jì)算量越大。因此,文獻(xiàn)提出的ECC算法雖高效,但仍有改進(jìn)空間。
STL文件中三角形出現(xiàn)無序,順序讀入時(shí)三角形面片在實(shí)際模型中不一定相鄰,按上述步驟執(zhí)行,算法在每個(gè)切片層會(huì)產(chǎn)生大量輪廓片段,程序運(yùn)行中這些離散輪廓片段逐漸歸并,最終在各層形成若干首尾相連的輪廓。
生成相鄰兩層切片輪廓的三角形大量重復(fù),本文算法核心思想是利用上一層交點(diǎn)輪廓構(gòu)造信息決定下一層交點(diǎn)插入位置,直接歸并離散輪廓,避免“公共邊”匹配。因此,需先分析交點(diǎn)所有可能的插入位置。