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

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

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

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