3D打印中STL模型常见的错误及修复方法
2017-04-12李倩兮
李倩兮
摘要:3D打印技术是信息技术与机械工程、材料科学相结合的一项热门新技术,已辐射渗透到当今的各个领域。在 3D 打印技术的整个过程里面,建模起着主导作用,可以绘制3D 图形的软件有很多,关键要看是否能输出或者转换成STL 格式的文件。本文主要介绍STL文件的几种常见错误和修复方法。
关键词:3D打印; 建模; STL文件;修复
TP391.41;TP391.73
引言:
STL(Stereo Lithography)文件是CAD系统和3D打印系统之间常用的数据交换文件。CAD实体模型一般是由多张曲面片剪切拼接组合而成,由于操作的不精确性,造型生成的CAD实体可能存在一些缺陷,这会影响后续的三角化过程,生成不正确的STL文件。而对于正确的CAD实体模型,由于系统精度差异和大曲率曲面三角化算法的不合理,也可能使生成的STL文件产生缺陷,使得STL文件无法进行进一步的切片处理,从而不能生成3D打印过程需要的路径文件[1]。为了保证正确的分层切片,一般要在切片处理之前对STL文件进行缺陷的检测和修复。
一、转换成STL模型后常见的错误类型
在CAD模型转换成STL模型的过程中可能会出现很多错误,直接影响到后续的切片和数据处理工作,所以需要对转换的结果进行错误检查,深究其原因并针对性的修复。
1。逆向法向量。也就是三角形面片三条边的转向发生逆转,即违反了STL文件的右手规则。产生的原因主要是在生成STL文件时,三角形面片的顶点记录顺序错误。
2。孔洞。孔洞是STL文件中最常见的错误,它是因丢失三角形面片而造成的,特别是一些大曲率曲面组成的模型在进行三角化处理时,如果拼接该模型的三角形非常小或者数目非常多,就很容易丢失小三角形,导致孔洞错误。
3。裂缝。裂缝主要是在转换中数据不准确或取舍的误差而导致的,孔洞和裂缝都是违反了STL文件的充满规则。
4。面片重叠。在三维空间中,三角网格模型中顶点的数值是以浮点数表示的。由于软件的转换精度太低,三角化算法中需要四舍五入对顶点数值进行调整而产生误差,导致顶点的漂移。
5。多边共线。3个以上的边共线,并且每一条边只有一个邻接三角形。这是一种拓扑结构错误,是由于不合理的三角化算法造成的。
二、STL模型常见错误的修复方法
1.错误检查方法
要修复STL文件,首先要检查出STL文件的错误,确定错误的类型、分布和数量。STL文件是三角形面片的无序集合,没有反应三角形之间的关系,所以必须在这群无序的三角形面片中建立其邻接关系,即拓扑信息,拓扑关系不仅可以用于检测修复错误,也可用于后续的处理。拓扑信息的建立是为了满足三个条件:对任意一个三角形面片,都可以查找到其相邻的三角形面片;对任意一条边,都可以找出包含它的相邻三角形面片;对任意一个顶点,都可以找出所有共用这个顶点的三角形面片。
根据建立的拓扑关系,即可对STL文件中的错误进行检查,首先可以检查出逆向法向量的错误。而孔洞、裂缝、不共顶点的错误都是由于出错位置上的边被一个三角形面片引用。因此以边的检查作为模型错误检查的基础,正确的边是应当满足条件:该边有且仅有两个相邻面片,并且在这两个面片中该边所对应的方向相反。该边有且仅有两个相邻面片,并且在这两个面片中该边所对应的方向相反。检查逆向法向量错误的方法:根据三角形面片的三个顶点计算出法向量N,,将结果与文件中的法向量N对比,若N与N,,的夹角大于90。,则记录为错误。检查错误边的方法:依次取出模型的每一条边,获得这两个顶点各自的邻接的集合,找到这两个面集合中的相同的面片。如果相同的面片的数目不等于2;或该边在这两个面片中的顺序相同;如果该边为错误边,则其所有的相邻三角形面片错误,同时,该边的两个顶点也错误。
2。错误数据的修复步骤
其一,建立描述错误的图。该图应由多个错误连通区域组成,每个区域包括错误的三角形面片、错误的边以及错误的顶点,每个连通区域是相互独立的。在每一个连通区域里,错误顶点都可以通过错误边遍历到该区域的任意一个其他顶点。建立连通错误区的方法为:从某一条错误边开始,获取该边的两个顶点,然后再通过这两个顶点找到相应的错误边,并加入到连通区域重新获取新的错误顶点,直至没有新的错误顶点,重复以上步骤直至遍历完全部错误边。
其二,合并顶点。一是要遍历所有连通错误区域,在每一个连通错误区域遍历所有错误顶点;二是计算该顶点到其它顶点的距离,若该距离小于应合并顶点的距离,加入临时顶点链表;三是合并临时顶点链表中不属于同一条边的顶点;四是合并顶点的相邻关系;五是重复步骤一到四,直至遍历结束。
其三,修复孔洞。在孔洞中构造三角形,顺序遍历孔洞的环,每三条边构建成为一个三角形面片,然后在起始顶点和第三条边的末顶点增加一条新边,以此形成一个新的三角面片,同時在错误连通区删除己修复的错误顶点和错误边,继续遍历孔洞的环,重复修复过程直至没有大于3的多边形。
其四,修复裂缝。修复裂缝可以通过合并顶点和修复孔洞的结合来完成。
最后,修复其他错误。以上步骤只能修复STL文件常见的错误,对于其他未知和不易识别的错误,可以借助工具或手动添加的方法来修复。
3.修复工具
很多工具可以用于STL文件的检查,如Materialise公司的Magics、Netfabb、3DSystem公司的Rapidform XOM。其中,Netfabb是一款专门用于编辑、修复和分析3D打印模型数据的工具,其主界面的右下角显示了3D模型的基本信息,包括Length(长)、Width(宽)、Height(高)、Volume(体积)、Area(总面积)和Triangles(三角面片数目)。该工具还可以对3D模型进行Move(平移)、Rotate(旋转)、Scale(缩放)、Analyze(分析)、Heal(修复)、Measuring(测量)等操作。若在模型的右下角出现“!”图标,则表示模型出错。
通过“分析”工具可以检查模型中的错误。首先确认具体的错误情况,被标志成红色的区域是该软件认为这里是法线指向错误,这会让3D打印机无法识别是模型内部还是外部。点击“修复”(红十字)按钮,可以看到当前模型的错误统计信息,一般正确的可直接用于切片的STL模型应满足:零孔洞、零边缘边、零无效方向,如果是简单模型,壳的数目一般为l。对于错误较多的模型可以采用“Automaticrepair(自动修复)”的功能,修复之后会显示修复后的统计信息。
小结:本文从错误数据的检查方法、错误数据的修复步骤及修复工具等三方面对模型缺陷进行检测和修复。以期能较高效率的查找和修复STL文件的缺陷,提高3D打印过程中模型的成型质量。
参考文献:
[1]、郑少京,吕志强.主导 3D 打印技术的关键 -3D 建模[J].科技教育,2015(07)