3D打印机等层厚切片算法研究及软件实现
第 1 章 绪论
在使用快速成形工艺制造物体时,一个零件的模型必须首先经过分层处理,然后用户才能将模型数据输入到 3D 打印机中进行打印。分层处理过程是采用分层切片算法在 3D 打印机切片软件中完成的。其中,分层切片算法的作用是将三维模型信息转化为以层片信息为基础的模型信息,便于 3D 打印机后期处理。因为,分层切片算法占用3D 打印切片软件的大部分运行时间,所以,分层切片算法的好坏对于 3D 打印机切片软件来讲是至关重要的。本文利用模型文件中边的连续性,使用层变边数组结构存储模型中与切平面相交的边的信息,并使用邻接边顺序链表结构保存边与边之间的邻接关系来完成算法。该算法与传统的分层切片算法相比,在处理相同模型的情况下用时更短,从而节省 3D 打印整个工作流程的用时。
.........
第 2 章 3D 打印机切片软件使用的算法
2.1 STL 文件格式
STL 文件的设计原理是采用三角面片来模拟 CAD 模型的表面,每个三角面片用三个顶点表示,每个顶点由其坐标(x,y,z)表示,每个点当中 x 代表在坐标系下该点在 x坐标轴方向上的 x 坐标值,y 代表在坐标系下该点在 y 坐标轴方向上的 y 坐标值,z 代表在坐标系下该点在 z 坐标轴方向上的 z 坐标值,每个三角形面片的定义还包括三角形面片的法向量。当三角面片尺寸小到一定程度,拟合的误差就能达到被接受的精度范围,这种文件格式能够描述几乎所有形体复杂的三维模型,三角面片的数量取决于需要表示的模型精度[14]。STL 文件[50]的另一来源是通过逆反工程[51](三维扫描)采集模型数据点云,再由点云直接生成 STL 文件,而不需要转换到 CAD 模型[52]。 根据数据存储方式的不同,STL 文件可分为 ASCII 码和 BINARY 码两种存储方式[49],STL 文件的 ASCII 文件格式如图 2.1 所示。2.2 等层厚切片算法
往返直线扫描法是在快速成型制造中所使用的较为简单的扫描填充算法。这种算法在对截面轮廓内部进行填充的时候,采用从下到上或者从上到下逐行扫描,在扫描一行的过程中,对截面实体部分按照设定好的速度扫描;遇到空腔部分时,喷头会快速的跨越空腔部分,这种扫描方式的基本思想与计算机图形学中的区域填充很相似。往返直线扫描填充法示意图如图 2.2 所示。算法的特点在于:实现比较简单、运行速度快能够满足快速成型制造“快速”的要求,对于数据的处理比较可靠,但是该算法存在下述问题[50]:(1)对于那些存在空腔结构的模型文件,使用此算法在打印模型的过程当中,喷头要频繁地跨越内轮廓,扫描系统需要频繁地在填充速度与快进速度之间切换,这样不但对丝杠和 3D 打印机控制系统要求很高,还会加剧对 3D 打印机的硬件磨损,如轴承、丝杠,产生的严重震动也对 3D 打印机的机器寿命有着不好的影响。另外,打印喷头在打印时空跑的现象比较多,,这也会增加打印模型所需的时间。 (2)由于在扫描过程中要频繁地由一条矢量向另外一条矢量快速的跳转,这样容易引入由机器造成的打印误差,使成型的模型在边缘处存在许多毛刺,也就是材料“拉丝”现象。
第 3 章 基于层变边数组和邻接边顺序链表的等层厚切片算法.......... 12
3.1 算法的原理 ............... 123.2 算法的实现 .................. 15
3.3 实验结果分析 ................. 22
3.4 本章小结 .................. 29
4.1 软件环境 .......... 30
4.2 硬件环境 ..................... 30
4.3 软件的设计与实现.......... 31
4.4 本章小结.................... 42
第 4 章 3D 打印机切片软件的实现 .......... 30
第 5 章 结论 ................ 43
第 4 章 3D 打印机切片软件的实现
4.1 软件环境
3D 打印机切片软件在 64 位的 Windows 10 专业版操作系统下进行开发,开发平台为 Visual Studio2013,采用 MFC 框架作为软件主框架,开发语言为 C++,开发过程中使用 OpenGL 开发库用于模型显示。OpenGL 开发库定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口,是一个功能强大,调用方便的底层图形库。 同时开发中用到一些辅助软件,其中选用Sublime2作为STL模型文件的读取软件,用于查看模型的原始参数。使用 Repetier-Host Windows 和 Win10 自带的 3D Builder 查看模型预期显示效果。在软件开发后期上述两款软件也用于对比模型的显示细节,米老鼠在 3D Builder 软件上显示效果如图 4.1 所示。4.2 硬件环境
开发硬件环境为 MC975 笔记本,硬件参数如下: CPU:Inter(R)Core(TM)i7-3615QM CPU@2.3GHZ内存:16 GB (DDR3 1600MHz) 显卡:Nvidia GeForce GT 650M (1 GB)显示器分辨率:2880*1800
......
第 5 章 结论
3D 打印机采用分层累积成型技术制造三维物体,利用 3D 打印机切片软件处理模型,通过 3D 打印机硬件设备打印由软件处理后的模型。3D 打印机切片软件使用 STL格式的模型文件作为输入文件,通过模型载入、模型数据处理、切片生成轮廓环,填充轮廓环等功能,将模型的文件格式转化为以层片信息为基础的模型文件格式,其中切片效果和切片用时是该过程的关键。本文针对 3D 打印机切片软件运行效率的问题,对现有的等层厚切片算法进行分类研究,利用 STL 模型文件中边的几何连续性,提出了基于层变边数组和邻接边顺序链表的等层厚切片算法,实现了 3D 打印机切片软件。下面对本文作以下总结:(1)利用标准模板库中 SET 容器中的元素唯一性,对 STL 文件进行点、边信息去重,去重后的点数量为去重前的 1/6,去重后的边数量为去重前的 1/2,去重后切片算法工作量将会减少;(2)由于以三角面片作为基本操作单位的分层切片算法,通过三角面片寻找边的过程会降低算法的运行效率,因此本文选用边作为基本操作单位实现分层切片算法,实验证实该方法可行。在解决了以边作为基本操作单位建立模型拓扑关系的问题后,实现了以边作为基本操作单位的分层切片算法。
.........
参考文献(略)
本文编号:61250
本文链接:https://www.wllwen.com/wenshubaike/lwfw/61250.html