STL文件網格生成與輪廓算法要點
網格生成規則
STL文件網格生成規則第一條:一個三角形面片頂點不能落在相鄰三角面片邊上,以此確定同一分層區域交點插入方式與首個交點一致。
輪廓構造算法
- 交點分類處理
- 一類交點:根據切平面和“前邊”計算坐標,遍歷層內輪廓片段CLL,匹配鄰邊后插入。
- 二類交點:用增量算法算坐標,依上一個交點插入信息構造輪廓。需知插入輪廓片段內存地址,插入前要獲取InsertInfo中3個變量值。
- 數據結構要求:交點所在輪廓數據結構中IS_pre元素指向形成輪廓的交點鏈表最后一個交點所在三角形中上一個交點的地址。
- 輪廓刪除與地址保留:當type為Case4或Case5時,輪廓鏈表須為雙向鏈表,通過指針*pre訪問被刪除輪廓上一個節點完成刪除。這是Rule 2規定每條輪廓結構保存交點地址的原因。
- 特殊插入方式:插入方式為none的二類交點,直接作為對應層輪廓鏈表首節點。

內存管理與算法效率
- 內存釋放:分層后,edge數據無需可刪除其占用內存,輪廓構造中也可刪除交點鏈表首末節點間edge。
- 內存消耗:交點結構對內存消耗影響顯著,模型三角形數量越大、分層厚度越小,程序所需內存空間越大。
- 效率對比:與ECC切片算法比較,本文算法在處理低精度花瓶切片時,層厚從0.4mm - 0.03mm變化,總層數增13倍,ECC算法時間增近19倍,本文算法僅增10倍。ECC算法分層細密時,存在未與切平面相交三角形參與切片,導致處理數據量增大、匹配耗時。

改進的高效切片算法
- 算法改進:分析相鄰切片層三角形面片異同,利用相似性,建立分層區域概念,將輪廓交點分兩類,僅對一類交點匹配“公共邊”。
- 二類交點處理:給出“公共邊”匹配中輪廓交點所有可能插入情況并保存為枚舉類型,供二類交點插入選擇。通過設計數據結構與建立核心規則,使二類交點利用相鄰交點插入信息直接構造輪廓。
- 算法優勢:無需建立三角形面片拓撲關系,不按Z軸排序三角形,遍歷一次STL模型數據完成分層,處理高精度、切片細密模型仍高效。

軟件可視化與交互設計
- 需求分析:除3D顯示模塊,要有數據顯示部分。
- 界面設計:MFC提供主框架與視類窗口,視類窗口拆分成2列,左邊顯示數據信息,右邊三維顯示結果。
- 界面元素:標題欄顯示文件名,菜單欄由MFC提供,工具欄含自定義快捷按鈕,狀態欄顯示鼠標位置。重載CButton類繪制自定義按鈕,點擊實現模塊收縮展開。
- 模型觀察與操作:提供正視圖、左視圖、俯視圖等視角,有網格視圖和實物視圖兩種模式,通過工具欄按鍵和鼠標左鍵、滾輪實現模型旋轉、平移和縮放。
上一篇:3D打印前處理成形方向優化與分層切片算法
下一篇:3D打印技術突破與前處理算法的深化研究