> 文档中心 > 【论文学习笔记】基于STL数据模型动态拓扑重构的快速切片算法

【论文学习笔记】基于STL数据模型动态拓扑重构的快速切片算法


3D打印模型切片算法研究


文章目录

  • 3D打印模型切片算法研究
  • 前言
  • 论文介绍
  • 论文目录
    • 1.引言
    • 2.基于STL文件的切片算法
    • 3.动态拓扑重构的算法思想
    • 4.动态拓扑重构的算法实现
    • 5.软件系统和应用实例
  • 总结

前言

随着3D打印技术的发展,越来越多人开始使用3D打印技术。而模型切片作为生成3D打印加工数据中重要的一坏,切片速度制约着复杂模型的数据生成效率。本文通过论文学习,对当前的一些模型切片算法做深入的介绍。


论文介绍

题目:基于STL数据模型动态拓扑重构的快速切片算法
作者:马良,黄卫东
单位:西北工业大学凝固技术国家重点实验室

论文目录

1.引言

本文分析了现有切片算法,提出了动态拓扑重
构算法,减少了毗邻三角面片拓扑关系的判断,提高了切片算法的效率。在此基础上,开发了金属激光立体成形的软件系统,实验证明该算法稳定、可靠。

2.基于STL文件的切片算法

普通切片算法:分析各三角面片与当前切片平面的位置关系,若相交,则求出交线;求出当前切片层的所有交线后,将各交线连接在一起形成轮廓环,当前层的所有轮廓环构成当前层的截面轮廓。
算法问题:在进行某一层切片过程中,可能绝大多数三角面片与当前切片层都不相交,查找效率低下;另外,与切片平面相交的三角面片的每条边都要进行两次求交计算;其次,求出的交点还要连接,也是相当费时的过程;并且没有利用三角面片之间的拓扑关系。算法非常耗时。

本文提出了各种改善措施:
1)基于 STL模型几何特征的切片算法,即将三角面片分类、分级排列后进行切片处理,从而减小切割平面与三角面片的判断次数;
2)基于全局几何拓扑重构的切片算法,即首先建立三角面片的拓扑结构,然后进行切片
处理;
3)基于分组矩阵的切片算法,即根据切片位置首先生成分组矩阵,依次建立活性三角面片队列,然后进行切片。

3.动态拓扑重构的算法思想

  • 拓扑关系介绍:

设第i层三角面片构成的局部拓扑关系为Pi(i
=0,1,…,i),对于 STL模型,大多数切片层中,Pi与Pi-1 基本相同,甚至拓扑结构完全一样。如图1所示,第i层切片位置三角面片局部拓扑关系为:T1-T3-T5-T6-T7-T8-T9,而第i+1层切片位置的三角面片局部拓扑关系为:T1-T3-T4-T8-T9,通过比
较上下两层三角面片的拓扑关系可见,第i+1层的三角面片 T4取代了第犻层的三角面片 T5-T6-T7,从而构建了新的局部拓扑关系。
在这里插入图片描述
建立分组矩阵
STL模型的三角面片在切片过程中的顺序可
以根据该三角面片的最小值Zmin 来确定。Zmin 越小,则越先被切到。最小值Zmin在同一切片层内的三角面片将在同一分组中,如三角面片T1,T3,T8,T9将在同一分组中。
所以,根据三角面片在切片过程中出现的先后顺序,构成分组矩阵,如图2所示。
在这里插入图片描述
动态拓扑信息重构
动态拓扑信息重构是指建立被当前切片位置所
切割 到 的 所 有 三 角 面 片 的 拓 扑 毗 邻 关 系。根 据STL模型的分组矩阵和当前切片位置,可以得到被当前切片位置所切割的所有三角面片号码,据此建立各三角面片之间的拓扑毗邻信息,这种局部建立拓扑关系的方法,既可以简化切片求交算法,避免算法1)的问题,同时也利用了算法2)的优点。除了第一层需要从头构建局部拓扑关系外,其余各层只要对局部进行拓扑更新即可。从而提高了切片算法的效率。

4.动态拓扑重构的算法实现

第一层三角面片拓扑关系的建立
首先在犌1 中任意选择一个三角面片,生成一个
CContour环类对象(该类用来保存一组毗邻的三角面片号码)。
自定义 Ccontour类为:
ClassCContour::publicObject{
CArray<int,int> m_NumTri;
//当前环的毗邻三角面片号码
…}
将三角面片号码添加到该环类对象中,然后,依次遍历剩余的三角面片,搜索毗邻三角面片,并检测环类对象的首尾三角面片是否毗邻,如果检测到环的首尾三角面片毗邻,则说明该环封闭,已经找到了一条轮廓环。然后,重新生成一个环对象,并在剩余的三角面片中继续搜索查找封闭轮廓环,直到所有的三角面片都已经添加到相应的轮廓环对象中,第一层三角面片的拓扑关系才随之确定。
三角面片拓扑关系更新算法
在某一层(例如第i+1层)拓扑信息重构过程
中,首先遍历当前每条环包含的所有三角面片,如果某条环的某一个三角面片的Zmax <Zi+1,则将该三角面片从该环中删除,并在分组矩阵Gi+1中搜索,找到可以替代当前位置的三角面片。依次遍历当前拓扑信息中的所有三角面片,完成拓扑环信息的更新。
在这里插入图片描述

5.软件系统和应用实例

以上述算法为核心,应用 VisualC++6.0 和开放式图形接口 OpenGL,在 WindowsXP 平台上开发了具有自主知识产权的分层处理软件。软件使用单文档多窗口框架,各个窗口之间协同工作,可同步刷新,操作简便,运行稳定。
在这里插入图片描述

在 Pentium Ⅲ1GMHz,内存128M,WindowsXP系统下,应用上述软件对如图4所示的六角形STL模 型 进 行 了 切 片 测 试,模 型 长 宽 高 分 别 为51.531605mm×80mm×55.198012mm,共 有 三角面片11268个,切片厚度设定为0.1mm,切片层数为551层,所需时间188s。在相同的环境下,对全局拓扑重构(算法2))进行了测试,仅全局拓扑重构大概就需要8min的时间,因此基于局部拓扑重构的快速切片算法高效、稳定。


总结

以上是研读马博士论文的一点笔记,这种拓扑算法可以提供遍历效率,提告切片速度。希望能对广大算法研究人员,特别是3D打印行业软件开发人员有帮助。

【论文学习笔记】基于STL数据模型动态拓扑重构的快速切片算法 创作挑战赛 【论文学习笔记】基于STL数据模型动态拓扑重构的快速切片算法 新人创作奖励来咯,坚持创作打卡瓜分现金大奖植物大战僵尸