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

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

與本文優化結果對比可知:
分析等厚分層與自適應分層在成形方向優化中的差異,提出適合分層厚度變化情況的模型成形方向優化算法,解決了現有算法只能在等厚前提下優化的問題。
實例表明:

本文優化算法是僅考慮表面質量的單目標優化,實際打印可能還需考慮成形高度和減少支撐,未來將探討層厚變化前提下模型成形方向的多目標優化。
隨著對打印精度、成形質量要求提高,除從硬件提高打印設備定位精度外,從軟件算法著手也很有效,主要體現在:
使用高精度STL模型或減小分層厚度,會大幅提高數據處理復雜度,對分層算法提出更高要求。
提出的“前邊”“后邊”概念,使任意三角形與切平面相交時僅需計算一個交點,所需存儲交點數量減半,算法通過“公共邊”匹配形式對交點進行輪廓構造。
具體描述為:將三角形法向量指向觀察者,三角形與切平面的左相交邊為前邊,右相交邊為后邊,公共邊為相鄰三角形共用邊。循環上述步驟完成輪廓構造。
算法順序遍歷一次STL模型即完成分層,無需像構建拓撲關系或為三角形排序那樣保存中間數據,提高了效率、節約了內存。
其關鍵在于“前邊”“后邊”判定和根據ECC算法進行輪廓構造,計算得到一個交點后,ECC算法在當前層查找“公共邊”,找到相鄰三角形并完成交點插入。

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