3D实体模型在导出过程中,所有表面都必须用一定密度的三角形面片表示,不能存在某一区域没有三角形网格。然而,由于数据丢失或者在格式转换的过程出现一些问题,STL文件可能存在些许缺陷。
因此在使用STL文件前,为了避免前处理过程出现问题,必须对模型数据进行检验,如果检验出现问题,则需对数据进行修复,比如微软的3D Builder就可完成上述缺陷的检验和修复工作。
STL已成为目前行业数据的转换标准,作为目前通用性最强的格式,STL格式具有以下几点优势:数据格式设计简单,仅描述模型的几何形状。能够方便地在CAD软件中,通过控制三角形面片大小和疏密程度设置输出模型的精度。模型使用三角形面片表示,因此可以直接或间接做有限元分析。
尽管STL格式已经广泛应用于3D打印中并成为技术标准,但其仍然存在许多不足:三角形面片之间不存在拓扑关系,需要另行构建。模型中存在大量共顶点的三角形面片,这些顶点被重复存储,冗余数据繁多。不包含原模型的纹理、色彩、材质等信息。
为了进一步满足3D打印发展的需求,一些机构和公司开发新的数据格式,例如:
这些文件格式都取得了一定范围的应用,但由于专用性问题,其流通性还需要后期进一步被支持。因此本文后续的研究都基于目前最常用的STL格式。
模型被保存为STL格式时是基于原先的3D模型位置,顶点从原模型表面提取而来并保留了模型当时的坐标信息,尽管打印机通常能够在多个方向上完成一个零件的加工,但有时按照默认位置进行打印并不是最合适的,成形方向的选择要求必须对模型进行旋转变换。
STL模型初始顶点坐标可能为负,即模型有部分区域不处于第一象限,虽然这不影响切片以及生成路径信息但仍有可能影响打印机定位,有时还需要考虑模型是否超过了打印机的最大打印尺寸或者模型太小无法打印,因此对于这类模型还需要做平移和缩放工作,直接对顶点坐标进行四则运算并保持法向量数据不变即可完成。
设置视图方向和投影模式都是为了更好的观察一个物体,视图方向表示从不同的位置观察物体,投影变换实际上是定义了一个视景体,只有位于视景体内的物体才会被OpenGL绘制。设置绘图区域即指定在哪个范围内进行图像的显示,有时候我们只想让图像占据部分位置,那么这时OpenGL将在指定范围内绘制模型,一般可以选择程序的某个窗口范围。