特征造型系统中草图命名方法的研究与实现

    基于历史的特征造型系统要求模型能够正确识别拓扑实体。由于大量特征基于草图轮廓生成,特征实体命名需要以草图实体命名为基础。根据草图实体的拓扑和几何关系,本文首先提出以草图曲线相关点为基础的标识方法。之后主要描述了该方法在系统中的实现过程。标识的创建和删除过程能够保证草图实体与标识的对应关系;而标识的匹配过程使特征对草图实体的引用更方便、准确。在系统中添加这种标识方法,为命名拓扑实体提供必要条件,增强了特征的可编辑性。经过系统初步验证,方法可行有效。
    随着基于特征的实体造型技术不断完善和成熟,现在很多商用CAD系统都是基于历史的特征造型系统。在这种系统中,需要在零件模型的主拓扑实体元素(面、边、点)上关联附加的特征信息。有了这些关联信息,模型就可以依据它们自动生成。而且,特征在创建时要引用零件上的拓扑实体。只有对这些拓扑实体正确命名,才能正确匹配相应实体,使后续模型成功重建。对拓扑实体的命名和辨识问题,缪金防提出了基于TRG的数据结构的拓扑实体识别算法。吴俊军等提出基于面的拓扑实体标识机制。Kripac设计出一套完整拓扑实体编号系统。
    在实际的零件设计过程中,大量的形状特征是通过一个草图轮廓,以一定的路径扫掠而成。如拉伸特征是一个闭环草图沿着垂直于草图的方向生成的柱状实体、旋转特征是一个闭环草图以某个轴旋转生成的环状实体等。这类特征中拓扑实体的命名要通过命名草图实体来完成。关于草图实体的命名问题,相关文献较少,吴俊军等人提出了基于拓扑邻接关系的草图实体命名机制,但文中没有给出具体的实现方法。
    Feature Maker中给出了草图实体命名的基本方法,并主要描述了草图标识的创建、删除和匹配等实现过程。草图标识跟拓扑实体标识一起,构成了特征造型系统的标识体系。
    1. 草图实体标识方法
用于生成特征的草图轮廓主要由草图曲线组成。标识这些曲线,就要在草图中找到与这些曲线相关联,而且在其生存期内恒定不变的量。草图中的点可以保持它的唯一性,而且它可以通过拓扑关系和几何关系与草图中的曲线相联系,所以草图曲线通过它的相关点来标识。
草图中的点可以用唯一的一个序号标识:
 这个序号在草图点创建时即给指定,并且不会被轻易地修改。例如,在一个有四个几何的草图上创建一个点P,则它的序号被指定为5,点P的标识可以表示为:

    根据草图中曲线相关点的特征,可以把草图曲线分为开环曲线和闭环曲线。开环曲线存在两个不重合的端点,线段、圆弧、椭圆弧等;闭环曲线不存在端点或端点重合,可以形成一个封闭区域,如圆、椭圆等。
另外,对于样条曲线,如果它的两端点重合,则它是闭环曲线;否则是开环曲线。
1.1开环曲线的标识方法
开环曲线的标识可以用两个端点的标识来表示:

为了保持曲线标识的唯一性,需要做如下规定:上式的IDP1和IDP2必须满足:IDP1 < ID P2。
图1给出了草图中几个几何,它们的标识可以分别表示为:

图1 开环曲线的标识
然而,这种标识的表示方法并不完整。如图2中线段L1与圆弧C1的利用上述方法产生的标识相同(都为{1, 2}),这也违背了标识唯一性的原则。为了解决这一问题,给标识再添加一个索引,来区别端点相同的曲线。这个索引值跟曲线的创建次序有关,第一次以相同端点创建的曲线,标识的索引值为0,以后依次递增。开环曲线的标识可以修正为:
图2中直线和圆弧的标识可表示为:

图2标识相同的开环曲线
1.2闭环曲线的标识方法
闭环曲线的标识可以用唯一的相关点(如圆的圆心和椭圆的中心,样条曲线的一个端点)的标识来表示:
跟开环曲线的标识类似,闭环曲线的标识也存在不唯一的问题(如两个圆同心),也需要添加一个索引值,来区分相关点标识相同的闭环曲线。闭环曲线的标识修正为:
图3中闭环曲线的标识可表示为:

图3 闭环曲线的标识
2草图实体标识的创建
草图实体标识的创建在草图实体创建之后进行,并与草图实体形成一对一的映射关系。
为了实现标识过程,在草图中记录两条链:草图实体链(以下简称“实体链”)和草图实体标识链(以下简称“标识链”)。
实体链是记录草图实体的线性链表。系统通过索引值访问实体链中的草图实体。从表面上看,这种访问机制可以让索引值作为草图实体的标识。但创建草图实体的标识的主要目的不是访问草图实体,而是完成实体与标识的匹配过程。关于这一点,会在草图实体标识的匹配一节中进一步做解释。
标识链是记录草图实体标识的线性链表。它跟实体链类似。
草图实体标识的创建过程描述如下:
Step1 草图实体Ent创建完成后,得到它在实体链中的索引值,准备创建草图实体标识。
Step2 得到Ent的类型,如果是开环曲线,执行下一步;如果是闭环曲线,转到Step7;如果是点,转到Step11。
Step3 得到Ent的两个端点的标识IDP1和IDP2,搜索标识链,找到符合下面条件的标识的集合G1:该标识对应的实体是开环曲线,且两个端点的标识也为IDP1和ID P2。如果集合G1为空,执行下一步,否则转到Step5。
Step4 创建Ent的标识:
把IDEnt添加到标识链中,完成Ent与IDEnt的映射关系,转到Step11。
Step5 在集合G1中找到对应的草图实体为空的标识G1 ( i ),完成Ent与G1 ( i )的映射关系,转到Step11;如果G1 ( i )不存在,转到下一步。
Step6创建Ent的标识:
其中,index等于集合G1中标识的个数。把IDEnt添加到标识链中,完成Ent与IDEnt的映射关系,转到Step11。
Step7 得到Ent的相关点P的标识IDP,搜索标识链的节点,找到符合下面条件的标识的集合G2:该标识对应的实体是闭环曲线,且相关点的标识也为IDP。如果集合G2为空,执行下一步,否则转到Step9。
Step8 创建Ent的标识:
把IDEnt添加到标识链中,完成Ent与IDEnt的映射关系,转到Step11。
Step9 在集合G2中找到对应的草图实体为空的标识G2 ( i ),完成Ent与G2 ( i )的映射关系,转到Step11;如果G1 ( i )不存在,转到下一步。
Step10 创建Ent的标识:
其中,index等于集合G2中标识的个数。把IDEnt添加到标识链中,完成Ent与IDEnt的映射关系。
Step11 创建标识结束。
需要说明的是,Step5中所说的“对应的草图实体为空”这个条件似乎违背了实体与标识的对应关系。实际上,在绘制草图过程中,删除某个草图实体,如果对应标识被后续特征引用,则把标识对应的实体置空,而不是直接删除标识。这些标识成为待匹配的标识,在退出草图之前,须完成它们的匹配过程,否则,后续的特征就会出错。
下面这个实例说明了保留待匹配的标识的必要性。操作过程如下:
Step1 在平面上建立一个闭合草图,如图4(a)。
Step2 拉伸一个实体,并对实体的一条边倒圆角,如图4(b)。
Step3 编辑特征的草图,把L3删除,并在同一位置新建一条线段L4,如图4(c)。
Step4退出草图,重建模型的效果如图4(d)。

图4 草图标识方法实例
上面的实例很简单,但它包含草图标识的创建、删除和匹配的整个过程。Step1创建了草图几何,同时创建了这些几何的标识;Step2中被圆角的边包含草图中L3的标识信息;Step3删除L3时,L3的标识IDL3被后面的特征引用,故而暂时保留IDL3;添加L4时,把L4跟IDL3匹配(见标识创建过程的Step5);Step4中圆角特征根据标识IDL3正确地找到了对应的边,实现了预期的效果。
由上面分析可以看出,边标识的暂时保留可以保证后续的模型重建的正确性。但与后续特征创建无关的边,则可以把它的标识删除。
3草图实体标识的删除
草图标识的删除过程相对比较简单。需要注意的一点是,删除草图实体,并不意味着标识跟着删除。前面已经提到,它的删除与否跟后续的创建特征是否引用有关。
为了说明方便,将与后续特征相关,被后续特征引用的标识称为关联标识。如图4的L3的标识IDL3就是关联标识。将未被后续特征引用的标识称为离散标识。如图4的L1、C1、L3的标识都是离散标识。
新建一个草图,并在草图上创建实体,由于后续特征不存在,所以这时所创建的实体的标识往往都是离散标识。只有当创建了草图的后续特征,并在这些特征中引用了某个草图标识之后(如在图4中圆角特征引用了标识IDL3),这个标识才变成关联标识。
草图标识删除由两个操作引起:删除草图实体和退出草图。
删除草图实体后,如果该实体对应的标识是关联标识,把该标识与实体的映射断开;否则把标识从标识链中删除。
退出草图后,循环所有的标识链中的节点,如果存在某个标识的映射实体为空,弹出错误信息,把该标识从标识链中删除。
把图4的示例修改一下,可以看出退出草图时标识的删除过程。Step1和Step2不变,把Step3改为:删除L3,添加两条线段L4和L5,如图5(a)所示。结果IDL3找不到匹配的边,它被删除,但后续的圆角引用了该边的信息,这就导致了圆角模型的生成错误,效果如图5(b)所示。


图5 删除边标识,重建模型失败
4草图实体标识的匹配
创建草图标识的目的,就是为了在模型重建过程中,特征能够正确找到引用的草图实体。而草图实体标识的匹配就是根据标识寻找合适的草图实体的过程。由上面草图标识的删除过程可知,草图实体被删除后,只要它的标识是关联标识,则标识就会被保留。后续再创建新的草图实体时,只要它的相关点标识跟保留标识的相关点标识相同,就可以把保留标识匹配到新的实体中。这也就不难理解实体链的索引值不能作为标识的原因。实体链的索引值只是方便访问实体链中的节点,它跟实体的生命期相同。当某实体Ent被删除后,它的索引值即无效(指向的那个节点为空)。后续特征对Ent的引用只是通过标识的一种间接引用。只要标识对应的实体有效,无论该实体是否是Ent,它都认为找到了正确的实体,而继续特征操作。标识的映射实体在不影响后续特征的重建情况下,可能会发生变化。
草图标识的匹配过程包含在第1节草图标识创建过程的Step5和Step9中。通过新建的草图实体与待匹配的标识集G的某个标识关联,完成匹配过程。另外,通过标识匹配实体时,要以相关点为基础,标识的索引index只是起辅助作用。甚至索引可以不同,只要相关点标识相同,就能匹配成功。用下面的实例说明:
Step1 在平面上创建一闭合草图,如图6(a)。四条曲线的标识表示如下:
Step2 拉伸实体,对三条边倒圆角,它们分别引用了标识IDL1、IDL3和IDC1,如图6(b)。
Step3 编辑草图,添加一条线段L4,然后删除圆弧C1,如图6(c)、(d)。L4的标识为
Step4 退出草图后,由于IDC1是关联标识,需要找到一个与之匹配的实体。而只有L4符合条件,且它的标识是离散标识。于是把L4跟IDC1匹配起来。重建模型,圆角特征正确找到了边L4,效果如图6(e)。

图6 标识匹配的实例
5 结 论
把草图实体标识机制应用于特征造型系统。图7(a)给出了应用该系统由一个由相对复杂草图生成的拉伸特征,并对特征的一些边倒圆角的模型;图7(b)是将草图实体作部分修改,实体标识匹配完成后,模型重建的效果。可以看出,原来圆弧的标识被正确匹配到线段上。


图7 复杂草图标识匹配效果
综上所述,有以下几点结论:
(1)引用草图实体的标识,可以标识特征的拓扑实体,为后续特征操作对相关实体的引用提供依据。
(2)草图实体标识的匹配,可以使后续特征有效识别草图实体,避免出现模型重建的错误,增强了零件的可编辑性。
(3)本文提出的命名机制,经初步验证,方法可行有效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值