一种二维工程图向三维模型的尺寸映射算法*
2012-07-25唐启亮张树生
唐启亮,张树生,陶 俊,黄 瑞
(西北工业大学现代设计与集成制造技术教育部重点实验室,西安710072)
1 引言
长久以来,二维工程图作为产品设计和制造工艺信息传递的主要载体,在机械行业不可或缺。随着计算机与软件技术的发展,产品定义技术经历了从工程制图技术到二维CAD技术,再到三维建模技术的发展历程[1]。早期传统的产品定义,主要以工程图为主,通过专业的绘图反映出产品的几何结构以及制造要求,实现设计者和制造信息的共享与传递。随着计算机辅助设计(CAD)技术的发展,使得设计人员很方便的用计算机代替图板进行产品设计。目前,在产品设计和制造领域中存在的主流三维CAD系统(UG、CATIA、ProE等)在对零件进行三维建模时虽然提供了基于三维模型的三维标注功能,但目前还没有一个成熟的行业规范,也没有一个公认的文档格式[2],而且基于三维模型的二三维关联技术还不是很成熟,因此不能在多个平台之间实现数据共享。
由于历史上二维图纸作为标准曾长期存在于工业领域,目前我国大部分制造企业内部还存在大量工程图纸作为制造信息的载体,有着强大的传统习惯定势,同时也由于经济实力、技术水平等因素的影响,二维图纸不仅不会在短期内消亡,反而还会作为工程语言的载体长期存在并不断发展[3]。企业内部同时存在产品的三维CAD模型和二维工程图,三维模型形象直观的展示了产品的几何外形信息,而大量的工艺信息、制造信息包含在二维工程图中,这样就形成了三维CAD模型中的几何信息和二维工程图中的工艺信息两个信息孤岛,为设计人员进行数据共享、设计重用提供了不便,降低了产品设计效率。
针对上述问题,提出一种基于图匹配的二维工程图向三维CAD模型的尺寸映射方法,首先将三维模型进行投影得到二维投影图,然后将投影图和二维工程图转化为一种扩展属性图结构进行二维图元的精确匹配,最后将二维工程图中的尺寸标注信息映射到三维CAD模型上,并且利用UG中PMI模块的二次开发对映射结果进行显示和验证。
2 算法的总体思路
STEP(standard for the exchange of product model data)是三维CAD模型数据交换标准,多数三维CAD应用软件都支持STEP文件,DXF是Autodesk公司开发的用于AutoCAD与其它软件之间进行数据交换的CAD数据文件格式,是一种基于矢量的ASCII文本格式,易于读取,并且对DXF文件的解析已经有很成熟的研究,因此选取STEP格式的三维CAD模型和与之对应的DXF工程图作为研究对象。
二维工程图向三维CAD模型的尺寸映射算法总体思路如图1所示。大体分为三维模型和二维工程图预处理、图元精确匹配、尺寸映射及其显示。首先对输入的三维CAD模型和与之对应的二维工程图进行预处理得到相关的数据信息。
图1 二维工程图向三维CAD模型的尺寸映射算法总体思路
三维模型的预处理主要包括三维模型的读取和二维投影图的获得。利用法国Matra Datavision公司开发的面向C++的开源库OpenCASCADE(简称OCC)对三维模型进行读取和投影。OCC可以对三维模型进行任意方向的投影,根据三维模型的建造和二维工程图的特点,主要考虑对工程图中的三视图方向进行投影,另外在投影过程中记录与投影图图元关联的三维模型中的面信息(面的类型、基点、法矢信息)。
二维工程图的预处理主要包括DXF的解析、视图分割、尺寸与工程图图元的关联信息等。对DXF的解析和二维工程图的视图分割相关研究已经很成熟[4-5],就不再在赘述。通过解析DXF文件,直接得到的是工程图中的图元信息、尺寸标注的标注值和标位置信息,但尺寸的标注基准还不能直接得到。可以根据标注点的位置和DXF标注规则找到尺寸和图元的关联信息[6]。
通过三维模型和二维工程图的预处理工作,可以得到三维模型的投影视图和工程图中的尺寸信息,并将投影视图中的图元和三维模型中的面关联信息,以及工程图中尺寸信息和二维图元的关联信息记录下来,此时只要得到投影视图中的图元和二维工程图中的图元之间的对应关系,就能将二维尺寸信息和三维模型的面关联起来,找到二维图纸中的尺寸在三维模型中的标注基准,得到三维图的标注类型、标注数值、标注面信息(基点、法矢等),然后利用UG中的PMI模块直接将尺寸标注在三维模型上。该算法的关键点是将二维工程图向三维模型的尺寸映射转化为两幅二维矢量图(投影视图和二维工程图)之间的图元精确匹配问题,可以利用图匹配的方法解决。
3 图元精确匹配
3.1 图的定义
由点集合V和点与点之间的连线集合E所组成的集合对(V,E)称为图,用G(V,E)来表示。V中的元素称为结点,E中的元素称为边。结点集V与边集合E均为有限的图称为有限图。若各边都有方向,则称为有向图;各边都没有方向的图成为无向图。图的邻接矩阵定义为:
设图 G 有 n 个结点 v1,v2,...,vn,则令 A(G)=(aij)n×n,其中:
则称由元素 ai,j(i,j=1,2,...,n)构成的一个n×n方阵A(G)为图G的邻接矩阵。
3.2 SRG(空间关系图)表示
空间关系图(Spatial relation graph,SRG)是一种集统计方法和结构方法于一体的用来描述模式的图结构[7]。图的结点表示图形的组成元素,边表示图形元素之间的关系,同时对结点和边赋予相应的属性值来描述元素结构之外的模式特征。使用空间关系图可以形象地描述复杂图形对象模式的所有信息,包括结构信息和结构之外的统计模式信息。图形的图元构成是唯一的,利用图元构成可以获得二维图纸的唯一表示,并建立图形的空间关系特征。
工程图是由若干图元(线段、圆、圆弧等)构成的,通过扩展基本图的属性,二维工程图对应的空间关系图可以表示为四元组[8]即 G=(V,E,AV,AE),其中:V表示空间关系图的结点集,即 V={V1,V2,...,Vn},n为结点(对应工程图中的图元)的个数;E:V×V表示空间关系图的边集,即E={V1V1,V1V2,...,VnVn};AV表示空间关系图中结点的属性集合,即 AV={AV1,AV2,...,AVn},AVi表示第 i个结点的属性,结点属性反映图元的基本属性,如图元的类型(直线、圆等),图元的长度、角度等;AE表示空间关系图中边的属性,即 AE={AE1,AE2,...,AEn},AEi表示第i条边的属性集,边的属性反映图元之间的空间关系,如平行、垂直、相对距离、相对位置等。
限于篇幅这里将主要以基本图元(线段、圆弧、圆)组成的二维工程图为例介绍二维图纸的空间关系图表示及匹配算法。对于由基本图元构成的工程图,选取的结点属性表示为 AVi={Lit,Lil,Lis},其中Lit表示第i个图元的类型,Lil表示第i个图元的长度(图元类型为线段)或者半径(图元类型为圆或圆弧),Lis表示第i个图元的斜率(对于圆或圆弧置为空)。
选取的边属性表示为 AE={Lij,DLij,Oij,Aij},i,j分别表示图元的编号,其中:
DLij表示图元间的相对长度邻接矩阵,即为第i个图元的长度或半径与第j个图元的长度或半径之比;
Oij表示图元间的位置关系邻接矩阵,图元i相对于图元j的位置关系分为1-左上,2-上,3-右上,4-左,5-重合,6-右,7-左下,8-下,9-右下;
Aij表示图元间夹角邻接矩阵,如果是线段则直接计算夹角,如果涉及圆弧则选取圆心和两图元交点的连线进行相关计算。
按照上述空间关系图的定义以及所选结点属性、边属性的说明,由工程图构建空间关系图的步骤如下:
Step1遍历工程图中的每一个图元,对应创建一个SRG图结点,同时提取图元的几何属性(类型、长度、半径、斜率)作为其对应SRG图的结点属性;
Step2对工程图中的每一对图元,计算二者之间的距离、夹角、相对长度以及判断二者的位置关系,作为其对应的SRG图的边属性。
3.3 图匹配
通过空间关系图的表示方法,将三维模型的投影视图表示为图G1,将二维工程图表示为G2,这样就可以将两幅工程图之间的图元精确匹配问题转化为空间关系图G1和G2之间的结点匹配问题。图匹配问题的相关研究很多,但大都是判断两个图的相似性或者子图同构问题,大多数算法都是NP问题,不能够在多项式时间内求解[9]。将问题抽象为在两幅相同的图中找出相对应的结点对,而且这里的空间关系图是由工程图生成的一种特定的扩展属性图,因此设计算法时,可以充分利用工程图的特点,设计高效的匹配算法。
对于图匹配问题,分为两部分:结点属性匹配和空间结构匹配。设G1中的结点V1和G2中的结点V2,如果V1、V2的结点属性相同,并且邻接边的数目也相同,则进行空间结构匹配;对于空间结构匹配,如果属性相同的邻接边数目超过一个阈值,则这两个结点匹配。经过大量的实验,权衡效率和准确性,这里选取的阈值为邻接边数目的2/3,即如果V1、V2属性相同的邻接边数目大于邻接边总数目的2/3,则这两个结点的空间结构匹配。所以具体匹配算法如下:
Step1对G1中的结点Vi,遍历G2的结点Vj,如果Vj尚未匹配成功并且二者结点属性(Lit,Lil,Lis)相同,则进行step2;
Step2判断Vi和Vj的邻接边数目是否相同,如果相同,设为k,并进行step3;
Step3遍历Vi和Vj的邻接边,如果边属性(Lit,DLil,Oij,Aij)相同,则计数器 p 加 1;
Step4如果p>k*2/3,则Vi和Vj相匹配,将 Vi和Vj输出到匹配结果集合Vm中,并且标记Vj成功匹配;
Step5循环上述step1-step4,直至处理完毕G1中的每一个结点。
具体匹配算法伪代码如下:
为了进一步提高算法的效率和可靠性,从尺寸标注自身特点出发,对算法进行改进。对于常见的二维尺寸可以分为总体尺寸、定形尺寸、定位尺寸。在CAD领域中,零件的底面、重要端面、对称平面以及回转体的轴线等特征通常作为尺寸基准。通过分析大量的工程图纸,发现零件底面和柱面的轴线是最为常见的尺寸基准,如对于轴类零件,轴线是一个很明显的尺寸基准,对于箱体零件和轴座类零件,一般都会以底面作为基准进行总体尺寸和定位尺寸的标注,而且对STEP模型中的端面和轴线的提取也相对容易。另外,三维模型中大量存在孔系、轴系等,表现在工程图上就是孤立的圆,转化为SRG图会出现大量的孤立结点,单独对这些孤立结点进行匹配相对容易。
因此可以首先对容易找到基准的总体尺寸、定形尺寸进行粗略匹配映射,然后处理相对复杂的定位尺寸。进行图元匹配的时候,优先匹配孤立结点,然后在SRG图中剔除优先匹配成功的结点,对剩余的结点利用表1的精确匹配算法进行匹配,这样可以很大程度的提高图匹配效率和尺寸映射的准确性。
4 实例验证
作者在Visual studio 2008和OCC平台下实现了该算法,并且在UG NX6.0下利用PMI模块的二次开发实现了将二维工程图中的尺寸直接在三维CAD模型上的标注,并对所提算法结果进行了验证。图2所示为一个传动轴的尺寸映射结果,输入轴的二维工程图(a)和三维模型(b),通过该算法实现了将二维工程图上的尺寸信息向三维CAD模型的映射,并在UG环境中进行了结果显示(c)。实验结果表明,该算法可以很好的实现二维工程图向三维CAD模型的尺寸映射,有效提高了在三维模型上标注尺寸的效率。
5 结束语
以往的相关研究都是在三维模型下通过投影变化自动得到二维工程图或者通过二维工程图重建出对应的三维模型,这些研究都是利用单一数据源得到另一种数据表示形式,并没有解决二维工程图和三维CAD模型之间存在的数据孤岛问题。本文提出的算法有效的将工程图中的非几何信息和三维CAD模型中的几何信息关联起来,很好的实现了二维工程图向三维CAD模型的尺寸映射,解决了企业中大量存在的工程图和三维模型之间的数据共享问题,为MBD(基于模型的产品定义)技术奠定了坚实基础。
作者只是解决了三视图中的尺寸信息向三维CAD模型的映射,对工程图中存在的剖视图、局部视图等并未涉及,另外对于工程图中的粗糙度、形位公差和技术要求等语义信息并未处理,以及图元精确匹配算法的效率和准确度提高都是作者以后的研究方向。
图2 某传动轴的尺寸映射结果
[1] 周秋忠,查浩宇.基于三维标注技术的数字化产品定义方法[J].机械设计,2011,28(1):33-36.
[2] Virgilio Quintana,Louis Rivest,Robert Pellerin,et al.Will Model-based Definition replace engineering drawings throughout the product lifecycle?A global perspective from aerospace industry[J].Computers in Industry,2010(61):497-508.
[3] 陈雪颂.基于三维模型的二、三维一体化技术研究[D].浙江:浙江大学,2004.
[4] 王子茹,任清波.基于VC++的DXF数据文件接口的研究[J].厦门理工学院学报,2005,15(1):26-30.
[5] 武丹,王琰,祁燕.基于DXF文件的工程图中多视图的视图分离方法[J].沈阳理工大学学报,2007(12):8-10.
[6] 吴宗谕.结合STL三角网格与DXF公差资讯之电脑辅助检测技术系统发展[D].台湾:国立中央大学,2005.
[7] NabilM,Ngu AHH,Shepherd J.Picture similarity retrieval using the 2D projection interval representation[J].IEEE Transactions Knowledge and Data Engineering,1996,8(4):533-539.
[8] 周良.基于内容的工程图档检索及其关键技术研究[D].南京:南京航空航天大学,2008.
[9] 王飞,张树生,白晓亮,等.基于子图同构的三维CAD模型局部匹配[J].计算机辅助设计与图形学报,2008,20(8):1079-1084.