乔庆昆
(上海二纺机股份有限公司 计算机中心,上海 200434)
三维STL模型的快速成型关键技术研究
乔庆昆
(上海二纺机股份有限公司 计算机中心,上海 200434)
介绍了三维STL模型描述文件中存在的缺陷,分析了产生这些缺陷的原因,结合实际生产应用中的经验提出了对STL模型文件进行修复的实际可行的修补方法,给出了相关的计算机程序。
STL;快速成型;切片
快速成型RP(Rapid Prototyping)技术被认为是近年来制造技术领域的一次重大突破,其对制造业的影响可与数控技术的出现相媲美。RP系统综合了计算机、机械工程、CAD、数控技术、激光技术及材料科学技术,可以自动、直接、快速、精确地将设计思想物化为具有一定功能的原型或直接制造零件,从而可以对产品设计进行快速评价、修改及功能试验,有效地缩短了产品的研发周期。而以RP系统为基础发展起来并已成熟的快速模具工装制造(Quick Tooling)技术、快速精铸技术(Quick Casting)、快速金属粉末烧结技术(Quick Powder Sintering)则可实现零件的快速成型。快速成型技术不但广泛应用于航空航天、汽车、家电、工艺设计、医疗等领域,而且艺术建筑等领域的工作者也已经开始使用快速成型设备,越来越多的艺术家已经成为计算机工作者,即不再单纯地依靠手工,而是由快速成型设备来表达新的思路和创新。
快速成型系统中,将加工对象的计算机三维CAD模型表面离散化,生成三维STL文件,根据该文件进行分层切片处理,得到层片文件后生成数控代码文件,最后在数控代码的控制下,按照层片文件逐层加工堆积得到物理原型。三维STL文件是一种数据格式,它用一系列的小三角形平面片去近似表示原CAD模型,从而实现从CAD系统到RP系统的数据交换。其格式简单,数据处理方便,被广泛采用。目前各主要的CAD/CAM软件系统都提供STL文件接口。STL文件的数据处理在RP系统处理过程中占有重要的作用,数据处理效率的高低也直接影响快速成型的效率。
STL文件标准是美国3D SYSTEM公司于1988年制定的一个接口协议。STL模型所描述的是一种空间封闭的、有界的、正则的唯一表达物体的模型。这种文件格式类似于有限元的网络划分,它将物体表面划分成很多小三角形,即用很多个三角面片去逼近CAD实体模型。STL文件有二进制格式和文本格式两种,文本格式简单明了,而二进制格式则紧凑得多,如果表示同一个零件,它的文件大小只有文本格式的六分之一。
STL模型就是用平面三角单元对三维CAD实体表面进行离散近似而构成的三维实体模型,它是对原三维实体的一种几何近似。当三角形小到一定程度,其近似性达到工程应用的精度范围时,STL模型就表达了CAD实体模型。从数据结构上看,STL模型是三角形单元的一个有限集合,即:
式中F为三维实体表面,Ti是一个三角形单元,n为三角形单元个数。STL文件保存有三角形面片的矢量信息,用于表达物体的内外指向。每个小平面必须有一个单位矢量从实体内部指向实体外部,并且按照“右手法则”确定每个小三角形顶点的次序,如图1所示。STL文件是一些离散的三角网络描述,例如一个球体用三角网络描述如图2所示,它的正确性依赖于其内部隐含的拓扑关系。正确的数据模型必须满足如下一致性规则:
(1)相邻两个三角形之间只有一条公共边,即必须共享两个顶点。
(2)每一个组成三角形的边有且仅有两个三角形面片与之相连。
根据一致性规则可推导出:在STL文件中顶点数是三角形个数的一半,边数是三角形个数的1.5倍。同时正确的实体数据模型应该满足三条法则:
(1)三角形平面的法矢量方向和三个顶点符合右手法则;
(2)每相邻的两个三角形平面只能共享两个顶点;
(3)三角形的每一条边必须且只能由两个三角形所共有。
(1)法向量错误。三角形平面的法矢量方向与三角形的三个顶点之间不符合右手法则,因而构成错误。
(2)孔洞错误。当CAD模型的表面有较大曲率的曲面相交时,在曲面相交部分会因为丢失三角面片而造成孔洞。
(3)顶点错误。某一三角面片的顶点落在另一三角面片的边上,造成前一三角面片中的一条边上存在两个以上的顶点,从而违背顶点法则。
(4)重叠错误。主要是由三角形顶点计算时的舍入误差造成的,由于三角形的顶点在3D空间中以浮点数表示,计算机运行时对浮点数的舍入会导致两个面片重叠。
(1)法向量错误修补算法
可以根据包含错误三角形的三条边形成的三个三角形的法向量来计算出该三角形的法向量方向,并且用新计算出的法向量替代原来发生错误的法向量,从而对错误的数据进行修补。由于该错误不影响计算机对STL文件的切片性能,也可以不用加以修复,在实际应用中一般忽略该种错误。
(2)孔洞错误修补算法
可以将孔洞错误划分为平面孔洞和曲面孔洞两种类型。平面孔洞可以利用计算机绘图中常用的三角化算法DELAUNAY处理。曲面孔洞可以按照从孔洞的任意一顶点沿顺时针行走,三点即形成一个三角面片,直到该孔洞走完为止。
(3)顶点错误修补算法
发生该种错误时,可以将该顶点删除,由于错误顶点落在一条边上,删除该顶点不影响STL的文件数据。
(4)重叠错误
发生该种错误时,可以将该三角形删除。由于数据的四舍五入引起三角形的重叠,通过删除该三角形,就可以修复STL文件的数据正确性。
快速成型制造技术实质上是分层制造、层层叠加的过程,其中对已知的三维CAD实体数据模型求某方向的连续截面,即对实体进行分层切片处理的过程成为必不可少的步骤。分层切片处理的数据对象是大量的小三角形平面片,因此,分层切片问题实际就是切片平面与小三角形平面的求交问题。因此分层切片方法合理选择与优化可以大大提高整个系统的效率。
分层切片根据分层厚度可以划分为定层厚和变层厚两种。
这种方式的每一层分层切片厚度是固定值。此种方式算法简便,计算机处理速度快,激光可以采用固定功率进行烧结,控制系统电路简便。但这种方式没有考虑三维模型的几何特性,必然会带来较大的误差,大大降低加工精度。为了减少因为形状发生变化而造成的误差,减小阶梯效果,采用了变层厚的切片方式解决这个问题。定层厚与变层厚的切片效果如图3所示。
这种方式是一种层厚度发生变化的切片方法,它根据零件形状变化规律自动选择合适的切片厚度进行切片。如图3所示,切片时上半部份弯曲程度较大时可以采用切片厚度较小的值;下半部份弯曲程度较小时可以采用切片厚度较大的值。这种方法通过减小层厚来提高精度。
不难发现变层厚方式的原则是 “形状变化慢的地方层片厚度大,形状变化快的地方层片厚度小”。基于这一原则,可以采用“面积变化判别法”来确定层片厚度的大小。这种判别法是通过计算相邻两层面积的变化率实现的。
设上层片截面面积为Sn-1,当前层片截面面积为Sn,则:
其中C为允许的面积变化系数,通过实验得到C的最佳值约为0.1。
根据式(2),若当前层片不满足此关系,则要减小层片厚度,重新切片再判断是否满足该关系式,重复该过程,直到满足条件或层片厚度达到极小值为止。
快速成型技术与传统制造技术的最大区别在于其分层制造思想和从概念时间、原型制造到最终产品生成一体化的设计和加工方式。这一技术的出现给现代制造技术的发展带来了全新的思路。本文通过对STL模型文件的修补以及对切片数据的进一步处理,改善产品在加工中的质量以及产品的精度,从而为产品的制造生产提供坚实的基础。
[1]赵保军,汪苏,陈五一.STL数据模型的快速切片算法[J].北京航空航天大学学报,2004,30(4):329-333.
[2]平雪良,高同军,孟凡虹.一种提高快速成形系统精度的新切片算法[J].机械科学与技术,2008,27(9):1121-1124.
[3]温佩芝,黄文明,吴成柯.一种改进的STL文件快速分层算法[J].计算机应用,2008,28(7):1766-1768.
[4]ZHAO Z,LAPERRIEREL.Adaptive direct slicing of the solid model for rapid prototyping[J].International Journal of Production Research,2000,38(3):89-98.
[5]LIAO Y S,CHIU Y Y.Anewslicingprocedure for rapid prototyping system[J].International Journal of Advanced Manufacturing Technology,2000,18:579-585.
[6]田宗军.激光烧结快速成型计算机控制系统的研究与应用[D].南京:南京航空航天大学,2000.
Research on key technique for rapid prototyping of 3D STL model
Qiao Qingkun
(Computer Center,Shanghai Erfangji Co.,Ltd.,Shanghai 200434,China)
This paper introduces some errors of 3D STL model description file.It analyses reasons of these errors and provides some methods which can repair these errors and provides some programs of these methods.
STL;rapid prototyping;slicing
TP391
A
1674-7720(2011)03-0006-03
2010-10-14)
乔庆昆,男,1980年生,工程师,主要研究方向:计算机应用。