| |
基于STL模型的逆向工程实体建模技术 | |
浙江大学 陈志杨 钱锦锋 叶修梓 | |
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版 | |
摘要:针对以STL数据表示的零件模型,在分析结构件模型几何特点的基础上,提出了一种以几何体素分离与拓扑关系重建为基础的STL模型逆向工程实体建模技术。通过对三角面片的合并实现平面、柱面、锥面等基本几何体素的分离,并利用Parasolid系统完成体素重构,进一步提取几何体素之间的布尔关系,从而实现含拓扑关系的产品模型重构。利用这一方法,可以实现RE/RP系统与通用CAD系统之间的快速集成,实现产品数据在不同系统之间顺畅传递。
关键词:STL;逆向工程;实体建模;模型重建
1 逆向工程CAD技术与STL模型
逆向工程CAD技术一般以数字化测量设备的输出数据为原始信息来源[1]。由于测量方式的不同,数字化测量设备可以分为接触式和非接触式。随着测量技术的发展,不论何种测量方式,产生的测量数据都是非常多的,尤其是非接触式的激光测量,可以产生几十万甚至上百万测量点的测量数据。我们将这种数据称为“点云”数据。一般来说,数字化测量设备都带有数据处理软件。这个软件的主要功能是对测量设备输出的数据进行初步处理,如去除明显噪声点、多块数据拼合、数据格式转换等。一般的测量设备除了按照自定义格式输出数据外,都提供IGES格式的数据输出。随着软件功能的加强,目前很多测量设备可以在输出测量数据的同时输出三角网格数据(即经过三角化以后的数据)或者STL格式数据。但是这些STL格式数据一般没有经过测试(如不保证封闭性,可能存在裂隙等),不能直接用于逆向工程建模或RP制造。由测量设备输出的STL数据必须经过修补、纠错处理,才能用来进行逆向工程CAD建模。因此,逆向工程中重要的一个环节就是数据的预处理。
本文研究重点是几何模型重建,因此我们使用的数据都是经过预处理以后的有效数据,而非来自测量设备的原始数据。
2 基于STL模型的逆向工程实体建模
STL模型是以三角形集合来表示物体外轮廓形状的几何模型[2]。在实际应用中对STL模型数据是有要求的,尤其是在STL模型广泛应用的RP领域,对STL模型数据均需要经过检验才能使用。这种检验主要包括两方面的内容:STL模型数据的有效性和STL模型封闭性检查。有效性检查包括检查模型是否存在裂隙、孤立边等几何缺陷;封闭性检查则要求所有STL三角形围成一个内外封闭的几何体[3]。本文中讨论的STL模型重建技术中的STL模型,均假定已经进行有效性和封闭性测试,是正确有效的STL模型。
由于STL模型仅仅记录了物体表面的几何位置信息,没有任何表达几何体之间关系的拓扑信息,所以在重建实体模型中凭借位置信息重建拓扑信息是十分关键的步骤。另一方面,实际应用中的产品零件(结构件)绝大多数是由规则几何形体(如多面体、圆柱、过渡圆弧)经过拓扑运算得到,因此对于结构件模型的重构来讲拓扑关系重建显得尤为重要。实际上,目前CAD/CAM系统中常用的B-rep模型即是基于这种边界表示的基本几何体素布尔运算表达的。
因此STL模型重建的过程如下:首先重建STL模型的三角形拓扑关系;其次从整体模型中分解出基本几何体素;重建规则几何体素;然后建立这些几何体素之间的拓扑关系;最后重建整个模型。
2.1 三角形拓扑关系重建
STL模型中仅仅包含产品的几何位置信息,而且STL数据中包含大量的重复数据。STL中的三角形顶点是重复记录的,其重复度为N(N为以该点为顶点的三角形数目)。为了在后续步骤中提高运算效率,有必要首先去除冗余数据,提高存储和运算效率[4],同时建立STL模型三角形拓扑关系,即建立三角形的边信息结构,记录每条边的左右三角形。考虑到排序运算效率,我们采用双向链表的方式记录每一条边的左右三角形信息。
三角形拓扑关系的建立不但精简了STL模型数据,而且是后序几何体素分离的基础。
2.2 STL模型几何体素分离
由于STL模型是由三角形集合构成的,因此直接利用三角形数据无法将不同的几何体素互相分离。如果将描述模型平面部分的三角形合并,然后提取出平面的边界,利用边界就可以将不同的几何体素区分开来。
平面是最简单的几何元素。根据平面特性,我们可以得到平面边界提取准则:如果具有相邻边的两三角形法矢平行,则这两个三角形构成一个平面。以此外推,所有与该平面具有相邻边且法矢平行的三角形都属于该平面。平面识别过程是一个递归循环:设任一三角形为“种子”三角形,其法矢为N0。Ni为与“种子”三角形有相邻边的三角形的法矢,计算N0、Ni的夹角θ=arccos(N0.Ni/|N0||Ni)。若θ<δ(δ为三角形合并阈值),则三角形i可以与“种子”三角形合并。发生三角形合并后,原来的“种子”三角形边界扩充为多边形边界,“种子”三角形成为“种子”多边形。以新得到的“种子”多边形边界为依据,寻找相邻三角形,再重复以上合并步骤,使“种子”多边形不断长大,最终当所有相邻三角形均无法与“种子”多边形合并时,递归停止。这时得到的是由多条边界组成的平面多边形。
此时我们发现,即使是简单矩形,依然是由很多短边组成的多边形,这显然不适合特征造型的要求。为此还需要进行边直化。边直化就是将共线的短边合并成为一条直线边。完成边直化以后就得到了正确的平面多边形,其法矢就是初始三角形的法矢。对完成平面边界提取的模型基础,从边界边链表中的任意一条边开始,总可以找到与它位置相连的组成一个封闭几何体的所有边。这时,剩下的边就成为另一个与当前几何体无几何位置联系的独立几何体。当边界边链表中所有的边都遍历分离以后,就可得到所有组成零件的独立几何体的各自的边集合。按照该方法,类似阶梯孔之类的特征将会被分解为n个(n为阶梯的层次数)独立的几何体。
体素分离的过程见图1。图1a是STL模型,图1b是提取平面边界后的模型。我们可以看到,原来STL模型上所有的平面都被提取出来了,而诸如圆角、圆柱面、圆锥面等二次曲面部分则还保留着三角形描述。图1c是体素分离以后的STL模型(成为4个独立的几何体素)。对于这些独立体素,我们需要将其中规则几何体重新利用参数化方法重构,这样才能使最终重建模型成为一个参数化的、有一定拓扑关系的实体模型。 (图片) (图片) (图片) (图片) (图片) (图片) | |
电脑版 | 客户端 | 关于我们 |
佳工机电网 - 机电行业首选网站 |