首页>论文>正文
日期
12/10
2019
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

基于拉伸构造的工程图三维重建
收藏
2019-12-10 14:58:55来源: 中国视觉网

   摘 要:本文研究了基于CSG模型的工程图三维重建,采用拉伸构造的方法重建实体。首先通过二维视图的基环匹配构造拉伸体元,然后通过布尔运算求得最终实体。针对比例拉伸和斜拉伸特征提出了拉伸构造算法,分析了剖视图中单一剖切面和多剖切面的情况,并提出了相应的算法。这些方法的应用突破了拉伸方向垂直于视图平面的局限性,扩展了形体覆盖域。

   关键词:工程图;三维重建;基环;拉伸体;布尔运算

1   引  言

   基于二维工程图的三维重建,在20世纪80年代初成为计算机图形学和计算机辅助设计领域最热门的研究方向之一,得到国内外的普遍重视。重建算法基本上可分为两类[1]:基于CSG模型的算法,采用自顶向下策略;基于B-rep模型的算法,采用自底向上策略。基于B-rep模型的算法可处理的对象覆盖域较广,但处理复杂图形时可能会出现二义性。基于CSG模型的算法使用布尔运算生成正则实体,能保证其结果的有效性,但是覆盖域有限。因此,近年来基于CSG算法的主要工作都集中在扩展对象覆盖域的范围。Lee研究了旋转体的重建,并考虑了垂直于投影平面的切削特征[2]。Dimri研究了基于剖视图的重建,但参与布尔运算的基本体元仅通过垂直于投影平面的拉伸操作构造[3]。

   本文主要研究基于CSG模型的重建方法,首先根据正交投影图上的匹配基环拉伸构造基本体元,然后判断基本体元的虚、实性以决定其参与布尔运算的符号,最后应用布尔运算构造最终实体。本文讨论了比例拉伸(如圆台)和斜拉伸(如斜孔)的情况,并考虑了基于单一剖切面和多剖切面视图的重建,扩展了形体的覆盖域。

2   拉伸构造算法

2.1   算法描述

   拉伸构造算法步骤如下:

   (1) 工程图预处理。首先进行视图分离,即按三视图的归属分成三个区域并从绘图坐标系转换到投影坐标系。然后进行数据重组,即重新建立视图文件的数据结构并存储相应数据;

   (2) 用极左边搜索法[4]在各视图中提取基环;

   (3) 对所有基环在其它视图中搜索完全匹配环,建立匹配环组,并构造基本拉伸体;

   (4) 判断基本拉伸体的虚实性,以决定其参与布尔运算的符号;

   (5) 若视图中的所有边均标识为已匹配,则转步骤(6),否则根据视图外围环生成边界体;

   (6) 对所有体元应用布尔运算得到最终实体。

2.2   提取基环

基环的相关定义如下[3]:

   定义1  基环:设GL是有界面F上的一个封闭环,若GL满足如下性质,则称GL为基环:

   ① 环GL内没有共边内环GL′(若部分边GE∈GL′位于环GL围成的区域内,而其它边位于区域边界上,则称GL′是GL的共边内环);

   ② 环GL的方向与有界面F的法向N满足右手螺旋法则。

   定义2  极左边:设e0, e1, …, ek-1是有界面F上共点于v的k条边,所对应矢量分别为vv0, vv1, …, vvk-1,那么边ei的极左边为矢量vvi绕面F的法矢N逆时针转最大角度所遇到的矢量边。

极左边基环提取算法如下:

   (1) 对每一度大于2的顶点vi,将共点于vi的边按矢量角度排序,得到各vi点的极左边序列;

   (2) 选取未引用过的有向边ei(vi, vj)为起始边,每条边都选取了方向相反的两次后转步骤(5)。假设当前方向为vi→vj;

   (3) 若vj度为2,将另一条边加入环,否则将ei在终点vj处的极左边ej(vj, vk)加入环;

   (4) 若vk=vi,则生成封闭环并转步骤(2),否则vj=vk并转步骤(3) ;

   (5) 有向边的左侧是环的域,删除无界环即可得到图G的基环集。

   例如,图1中基环共有3个,分别是{1,2,1}、{5,6,9,10,5}和{3,4,5,10,9,6,7,8,3}。

2.3   基环匹配

   定义3  匹配环:若每个点至少与一个点匹配,则称环有匹配环

2.4   虚实判断

   图2中的一组环可构造一拉伸体,为了应用布尔运算需要判断其虚实性。

   将构成拉伸体的一组环称为目标环,最外围轮廓称为外围环。若目标环与外围环有公共点,选择其中度大于2的点,将交于此点的非目标环边记为a;公共边记为b;目标环而非外围环边记为c,如图2正视图所示。虚实判断算法如下:

BOOL  虚实判断()

{ if  所有视图中目标环是外围环的内环

return  虚体;

else { if  存在目标环=外围环

return  实体;

else { if  存在a、c共线

return  实体;

else  { if  存在a、b共线

return  虚体;

else  return  实体; }}}}

       根据上述算法中的第3个判定,图2中箭头所指的拉伸体为实体。

2.5   边界体构造

   若视图中还存在未匹配的边,说明存在不能由拉伸操作构造的实体。通常视图的外围环没有匹配环,需要构造边界体:提取每个视图的外围环,作垂直于视图平面的拉伸,求各拉伸体的交集,以生成边界体。

   边界体中往往包含之前已经生成的拉伸体,生成时需要对外围环作相应的修改。若已生成的拉伸体为虚体,说明拉伸体在边界体内部,则外围环不变;若为实体,则应用对称差分操作如下修改(目标环是外围环的内环时,外围环不变):

   其中Ln是运算结果,L1是外围环,L2是目标环。以图2工程图为例,修改结果如图3所示。

3   特殊匹配

   节2中描述的拉伸构造算法涵盖了常规拉伸体的构造,但未考虑比例拉伸、斜拉伸及剖视图等特殊情况。本节针对上述情况提出匹配算法。

3.1   比例拉伸

   比例拉伸指被拉伸的基环在拉伸过程中,其大小按一定的比例变化,拉伸方向仍垂直于投影平面,如圆台或圆锥体,如图4所示。

   圆的匹配优先级最高,因此匹配可从任意圆开始。首先查找与圆的极值点对应的匹配环,匹配成功则生成圆柱体;若只找到匹配边(图4中边1-2),则继续查找是否存在对称的斜线边(边2-3和1-4)以及与边3-4匹配的圆,匹配成功则可生成圆台。圆锥在视图中表现为圆和等腰三角形,其匹配过程与圆台类似。

3.2   斜拉伸

   斜拉伸是机械零件的常见特征。以斜圆柱为例,斜拉伸的构造过程可分为两步:

   (1)基环匹配。斜拉伸的匹配元素是两个椭圆(或圆)和与之对应的平行四边形,如图5所示;

   (2)确定拉伸方向。在xy平面和yz平面中各取一条斜线边1(x1,y1)-2(x2,y2)和3(y3,z3)-4(y4,z4),根据投影规律,有y1=y3、y2=y4,因此可得三维斜线端点坐标(x1,y1,z3) (x2,y2,z4)。拉伸方向用矢量P表示,则

P = (x2-x1, y2-y1, z4-z3)

   将y=y1=y3的椭圆作为拉伸底面,矢量P作为拉伸方向可构造斜拉伸体。

3.3   剖视图

   剖视图是表现零件内部细节的常用手段,通常可分为三类:单一剖切面、几个平行的剖切面和几个相交的剖切面[5]。

(1) 单一剖切面

   对此类剖视图进行匹配时按如下原则:若一个独立环无完全匹配环,但有匹配边,则将此环沿匹配边拉伸成体。如图6所示,箭头所指的环{1,2,1}无完全匹配环,此时首先找到与公共坐标轴对应的两个极值点1和2,对每个极值点找到匹配边(边5-6对应点1,边4-3对应点2),若跨度相等则沿匹配边拉伸构造体元。通常半剖图中只能找到一条匹配边,此时同样沿此边拉伸。

(2) 几个平行的剖切面

   如图7所示,各条剖切线与公共坐标轴平行,只在非公共轴上有位移。因此,公共轴上的对应关系仍然存在,不影响环之间的匹配,可按(1)中描述方法处理。

(3) 几个相交的剖切面

   在此类剖视图中,存在与视图的公共坐标轴相交的剖切线,如图8中的剖切线AB。

   此时无法通过视图的对应关系进行基环的匹配,需要作如下处理:在剖切线的相交点处,沿垂直于公共坐标轴的方向,将剖视图分成若干个区域,如图8中区域1和区域2:区域1的剖切线与公共轴平行,可直接进行匹配;区域2的剖切线与公共轴相交,此时将剖切线上的匹配点作旋转变换后再进行匹配。

例如,基环L的匹配过程为:

   (1) 求得L与剖切线AB的交点,并将其作为L的极值点P1、P2;

   (2) 将P1、P2作绕B逆时针旋转θ角的变换得到P1′、P2′,变换矩阵为:

   T= TB·Rθ·TB-1

   其中TB 表示将坐标原点平移到B的变换矩阵,Rθ表示绕原点逆时针旋转θ角的变换矩阵;

   (3) 对环{P1′,P2′,P1′}进行匹配,若匹配成功则根据初始环L{P1,P2,P1}生成拉伸体。

4  应用实例

   本文以DXF格式的工程图文件为数据源,采用本文提出的重建算法,实现了图2、图6、图7和图8所示的工程图的重建,其结果如图9所示。

5  结  论

   本文主要研究了基于拉伸体元的工程图三维重建方法。对比例拉伸体、斜拉伸体的构造提出了相应的算法,突破了拉伸构造仅限于垂直于投影平面拉伸的局限;对剖视图中多剖切面的情况提出了解决方法,对扩展工程图三维重建的覆盖域有重要的意义。本方法的局限在于:第一,未考虑剖视图中局部剖、移出剖等视图类型;第二,拉伸的构造均是沿直线进行,未考虑更多的变化,如沿曲线拉伸;第三,拉伸的基环局限在投影平面上。这些情况还有待于进一步的研究。

参 考 文 献

[1]Wang W, Grinstein GG. A survey of 3D solid reconstruction from 2D projection line drawings[J]. Comput Graphics Forum, 1993, 12(2):137-158.

[2]Lee Hanmin, Han Soonhung. Reconstruction of 3D interacting solids of revolution from 2D orthographic views[J]. Computer-Aided Design, 2005, 37:1388-1398.

[3]Dimri Jitendra, Gurumoorthy B. Handling sectional views in volume-based approach to automatically construct 3D solid from 2D views[J]. Computer-Aided Design, 2005, 37: 485-495.

[4]Yan QW, Chen CLP, Tang Z. Efficient algorithm for the reconstruction of 3D objects from orthographic projections[J]. Computer-Aided Design, 1994, 26(9): 699-717.

[5]王启美, 吕强. 现代工程设计制图[M]. 北京: 人民邮电出版社, 2004.