一种异构cad集成中的拓扑元素匹配方法

文档序号:6362856阅读:206来源:国知局
专利名称:一种异构cad集成中的拓扑元素匹配方法
技术领域
本发明涉及CAD领域,特别是涉及一种异构CAD集成中的拓扑元素匹配方法。
背景技术
协同产品设计作为一种新兴的产品设计方式,大大提高了产品开发能力和效率。 在协同产品设计过程,使用最多的数字化工具便是CAD系统。由于不同的CAD系统具有不同的功能特性,而且不同的产品设计人员都有自己熟悉的CAD系统,因此从经济、功能、工作习惯等方面考虑,不同的企业或部门往往会选用具有不同特点的CAD系统进行协同产品设计。因此,为了支持产品设计人员使用自己惯用的CAD系统进行协同产品设计,实现异构 CAD系统集成势在必行。目前,异构CAD系统集成已经成为CAD技术的一个新的且至关重要的研究领域。异构CAD集成分为两种异构CAD离线集成和异构CAD在线集成。前者通过将源模型的特征建模过程交换到目标CAD系统并实现特征模型重建,进而实现异构CAD系统间的数据集成; 后者是通过在异构CAD系统之间实时交换特征建模操作来实现数据集成的。尽管两者有区别,但是它们面临着一个共同的问题如何处理引用了拓扑元素的特征或建模操作,该问题即是拓扑元素匹配问题。对于异构CAD系统集成问题的研究工作主要从以下三个层面开展
(1)基于几何数据交换的异构CAD系统离线集成。它是通过在异构CAD系统之间交换模型的几何表示来实现产品信息集成的。(2)基于特征数据交换的异构CAD离线集成。其本质是将源模型的特征建模过程交换到目标CAD系统并实现特征模型重建,进而实现异构CAD系统间的数据集成。(3)基于操作命令交换的异构CAD在线集成。它也是一种基于参数化特征的集成方法,但与基于完整特征模型交换的离线集成不同的是基于操作命令交换的异构CAD在线集成是通过在CAD系统之间实时交换特征建模操作来实现数据集成的。目前,基于几何数据交换的异构CAD系统离线集成技术已经比较成熟。然而,通过几何数据交换所得到的几何数据中不包含高层语义信息,无法在数据接收端对原设计进行参数化的编辑、修改和再设计活动。而企业在开发产品时,大约80%的设计工作是基于现有设计实例进行再设计的。因此,与工业界的实际需要相比,这样的集成还远远不够。为了满足工业界对异构CAD系统集成的实际需求,近年来国内外开始探索更高层次(基于特征的)的集成方法,并且正在形成异构CAD系统集成研究的一个新高潮。目前在高层次集成的研究上已经取得了一些进展,其中比较具有代表性的集成方法有STEP标准、 宏命令方法、UPR (Universal Product R印resentation)方法和基于中性命令的异构CAD 在线集成方法。对于拓扑元素匹配问题,STEP标准给出了中性文件中所应包含的拓扑元素的数据信息,如拓扑元素的几何信息和拓扑信息。然而,STEP标准并没有给出,如何使用这些信息在目标CAD系统中找到匹配的拓扑元素的方法。而且,基于STEP标准的数据交换也无法解决,由异构CAD系统采用不同的几何造型内核所造成的几何相同、拓扑结构不同的拓扑元素之间的匹配问题。基于宏命令的数据交换是通过命名映射的机制来实现拓扑元素匹配的。该方法必须通过创建一个内部几何模型来实现相匹配的拓扑元素之间的名字的映射, 这给该方法的实现带来了很大的困难。另外,该方法中所使用的拓扑元素的名字来源于宏文件,而CAD用户在建模结束时通常会保存模型文件而不是其对应的宏文件,因此在宏文件丢失的情况下,该方法就失效了。在基于UPR的数据交换中,采用拓扑元素Cover算法来实现拓扑元素匹配。在该算法中存在两方面影响效率和效果的因素一方面,使用点来找初始拓扑元素,而当点的选取不当时,算法的效率和效果均会受到影响;另一方面,由于所找到的Cover可能比源拓扑元素大,因此还需要进行校验,这也将会影响算法的效率。另外, 该方法中还存在着一些不必要的导致高层语义丢失的重写操作。基于中性命令的异构CAD 在线集成是通过比较源拓扑元素和目标拓扑元素的几何来实现拓扑元素匹配的,该方法以各协同站点的CAD模型中相匹配的拓扑元素具有相同的几何为前提。然而,在异构协同设计过程中,各站点建模操作的乱序执行,并不能保证在任何时刻,各站点模型中相匹配的拓扑元素都具有相同的几何,因此该方法的适用范围有限。

发明内容
本发明的目的是为了克服上述背景技术的不足之处,提供一种异构CAD集成中的拓扑元素匹配方法,使其既适用于异构CAD系统离线集成,又适用于异构CAD系统在线集成。为了上述目的,本发明提供的一种异构CAD集成中的拓扑元素匹配方法,包括以下步骤
步骤1,在本地的源CAD系统中,将特征或建模操作所引用的源拓扑元素的相应信息提取出来;
步骤2,特征或建模操作所引用的拓扑元素组成的集合记为源拓扑元素集合,在本地的源CAD系统中,对源拓扑元素集合中满足合并条件的拓扑元素进行合并,然后将合并后的拓扑元素的信息传送至远端的目标CAD系统中;
步骤3,在目标CAD系统中,以步骤2每一个合并所得的拓扑元素为源拓扑元素,在当前目标模型中,为每一个源拓扑元素寻找满足匹配条件的目标拓扑元素;
步骤4,在目标CAD系统中,对于某个源拓扑元素,若在当前目标模型中未找到满足匹配条件的目标拓扑元素,则进行1:0匹配关系处理。而且,步骤1中所述的源拓扑元素的相应信息,包括以下四类信息
(a)类型信息,是指拓扑元素的类型;
(b)属性信息,是指拓扑元素的几何属性;
(c)界限信息,是指一维拓扑元素的端点信息和二维拓扑元素的边界边信息;
(d)校验信息,是指一维拓扑元素的长度和二维拓扑元素的面积。而且,步骤1中提取源拓扑元素的相应信息,具体包括以下步骤 步骤1. 1,在源CAD系统中获取当前源模型的指针;
步骤1. 2,获取引用了拓扑元素的特征或建模操作的指针; 步骤1. 3,获取特征或建模操作所引用的当前拓扑元素的指针;步骤1. 4,提取当前拓扑元素的相应信息;
步骤1. 5,获取特征或建模操作所引用的下一个拓扑元素的指针,如果为空则结束,否则返回步骤1.4。而且,步骤2中对源拓扑元素集合中满足合并条件的拓扑元素进行合并,具体包括以下步骤
步骤2. 1,记Sl为源拓扑元素集合,从Sl中取出一个拓扑元素记为TPl ; 步骤2. 2,从Sl中找出满足TPl的合并条件的拓扑元素并记为TP2,若找到,则从Sl 中取出TP2,将TP2与TPl进行合并,并将合并所得的拓扑元素作为下一个TP1,返回步骤 2. 2,,若未找到,则将TPl放入合并所得拓扑元素的集合记为S2,进入步骤2. 3 ; 步骤2. 3,判断Sl是否为空,若为空,则结束,否则,转入步骤2. 2。而且,步骤2中所述的合并是指拓扑元素信息的合并,包括类型信息合并、几何信息合并、边界信息合并和校验信息合并。而且,步骤2中所述的合并条件如下 条件a,两个拓扑元素的类型相同;
条件b,两个拓扑元素相互邻接;
条件c,若将满足条件a和条件b的两个拓扑元素进行合并,合并所得拓扑元素与合并前的拓扑元素具有相同或相近的类型。而且,步骤3中所述的匹配条件如下
条件a,目标拓扑元素与源拓扑元素具有相同或相近的类型; 条件b,目标拓扑元素与源拓扑元素具有相同的几何;
条件c,若源拓扑元素为一维拓扑元素,则目标拓扑元素的两个端点必须在源拓扑元素的内部或与源拓扑元素的两个端点重合;若源拓扑元素为二维拓扑元素,则目标拓扑元素的边界必须满足源拓扑元素的边界的匹配条件。而且,当源拓扑元素为一维拓扑元素时,执行步骤3. 1寻找满足匹配条件的目标拓扑元素,步骤3. 1具体包括以下步骤
步骤3. 11,合并后所得的边集记为S2,从S2中选取一条未处理的边h ; 步骤3. 12,当前目标模型的所有边集记为S3,从S3中找出满足Es的匹配条件的边并记为Et,若找到,则将肚从S3中取出放入与h相匹配的目标边的集合,与h相匹配的目标边的集合记为S4,转入步骤3. 13,若未找到,则转入步骤3. 14 ;
步骤3. 13,若S4中与h相匹配的所有边的校验值之和等于h的校验值,则转入步骤3. 15,否则,返回步骤3. 12 ;
步骤3. 14,若S4为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 15;
步骤3. 15,若S2中的每条边均已处理过,则结束,否则,转入步骤3. 11 ; 当源拓扑元素为二维拓扑元素时,执行步骤3. 2寻找满足匹配条件的目标拓扑元素, 步骤3. 2具体包括以下步骤
步骤3. 21,合并后所得的面的集合记为S7,从S7中选取一个未处理的面Fs ; 步骤3. 22,执行步骤3. 1,在当前目标模型中为Fs的边界找匹配的目标边,并放入匹配边界集合中,匹配边界集合记为S8 ;步骤3. 23,从S8中选取一条未用过的边记为肚,在当前目标模型中,查找与肚相邻接且满足Fs的匹配条件的面并记为Ft,若找到Ft且不在已找到的与Fs匹配的面的集合中,与Fs匹配的面的集合记为S6,则将Ft放入S6中,转入步骤3. 24,若未找到,则转入步骤 3. 25 ;
步骤3. M,若S6中所有面的校验值之和与Fs的校验值相等,则转入步骤3.沈,否则, 返回步骤3. 23 ;
步骤3. 25,若S6为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 26 ;
步骤3.沈,若S7中的每个面均已处理过,则结束,否则,转入步骤3. 21。而且,步骤4中所述的1:0匹配关系处理具体方式如下,
(a)生成与源拓扑元素相匹配的目标拓扑元素的建模操作记为0j,若Oj在目标CAD系统中还未执行,则基于状态向量进行处理,保证在进行拓扑元素匹配时,Oj已经在目标CAD 系统中得以执行;
(b)若目标CAD系统中已执行的建模操作将与源拓扑元素相匹配的目标拓扑元素删除或进行了扩展,则进行Undo/Do/Redo处理恢复目标拓扑元素,保证引用了拓扑元素的建模操作在目标CAD系统中的执行;
(c)若目标CAD系统为了简化边界表示,自动删除了与源拓扑元素相匹配的目标拓扑元素,则基于面分裂进行处理,保证引用了拓扑元素的特征或建模操作在目标CAD系统中的正确重建或执行。而且,所述的基于状态向量进行处理,状态向量是一个N维向量,记为SV,其中N 为参与协同设计的站点的个数,SV的每一个元素记为SViUL j e {0,1,···,Ν-1};当协同设计开始时,SVi中的每一个元素SViU]均置为0,站点i每执行一个来自站点j的操作, SViLj]= sVi[j]+i,SViU]中存放的是站点 已执行的来自站点j的操作的个数;由站点 所发出的操作O的状态向量记为SVo, SVo [j],j e {0,1,…,N-1}中记录着操作0在站点i上执行时站点i上已经执行的来自各个站点j的操作个数;当0到达某个目标站点k 时,如果站点k上的状态向量SVk和SV。满足条件SV。[j]含SVk[j], j e {0,1,…,N_l},则操作0在源站点i上执行时所有已执行的操作在站点k上已经得以执行;
所述的Undo/Do/Redo处理具体实现方式如下
首先执行Undo处理,Undo处理为撤销已执行的删除或扩展了目标拓扑元素的操作;
然后执行Do处理,Do处理为执行引用了拓扑元素的建模操作;
最后执行Redo处理,Redo处理为重新执行之前Undo处理的操作;
所述的基于面分裂进行处理包括以下步骤
步骤cl,引用了拓扑元素的特征或建模操作记为特征建模操作X,若源拓扑元素是作为特征建模操作X所需的参照对象来用,则转入步骤c2,若源拓扑元素是作为特征建模操作X所需的操作对象来用,则转入步骤c3 ;
步骤c2,利用所提取到的源拓扑元素的几何信息,创建相应的基准特征代替目标拓扑元素并结束;
步骤c3,若目标CAD系统支持面分裂特征,则通过创建面分裂特征来添加缺失的与源拓扑元素相匹配的目标拓扑元素并结束,否则,转入步骤c4 ;步骤c4,若目标CAD系统提供了能够创建出与面分裂特征具有相同语义的新特征的 APIs,则利用新特征代替面分裂特征实现缺失拓扑元素的创建并结束,否则,转入步骤c5 ; 步骤c5,用引用了拓扑元素的特征的几何或建模操作所创建的几何,代替特征建模
操作X。本发明与已有技术相比较,效果是积极且明显的首先,本发明适用范围广,其不仅适用于解决异构CAD离线集成中的拓扑元素匹配问题,而且还适用于解决异构CAD在线集成中的拓扑元素匹配问题。在处理异构CAD离线集成中的拓扑元素匹配问题时,本方法既避免了由于点选取失败所造成的问题,也避免了一些不必要的重写。其次,本方法在应用于异构CAD在线集成中时,在模型或拓扑元素几何不一致的情况下,也可以实现成功匹配, 从而提高了协同过程中的并发程度。


图1为本发明在异构CAD集成中的实施例。
具体实施例方式下面结合实施例对本发明作进一步说明,但不限定本发明。本实施例采用CATIA、Solid Works和Pro/E这三个目前流行的异构CAD系统作为集成的基础系统,三个协同设计站点对应的站点号分别为0、1和2,站点0、站点1和站点2 分别采用CATIA、Solidworks和Pro/E作为其CAD系统。以Winsocket2. O作为通讯工具, 以VC6. O作为开发平台进行实施。实施例提供的异构CAD集成中的拓扑元素匹配方法,包括以下步骤
步骤1,在本地的源CAD系统中,将特征或建模操作所引用的源拓扑元素的相应信息提取出来。实施例的步骤1中所述的源拓扑元素的相应信息,包括以下四类信息
(a)类型信息,是指拓扑元素的类型;
(b)属性信息,是指拓扑元素的几何属性;
(c)界限信息,是指一维拓扑元素的端点信息和二维拓扑元素的边界边信息;
(d)校验信息,是指一维拓扑元素的长度和二维拓扑元素的面积。实施例的步骤1中提取源拓扑元素的相应信息,具体包括以下步骤 步骤1. 1,在源CAD系统中获取当前源模型的指针;
步骤1. 2,获取引用了拓扑元素的特征或建模操作的指针; 步骤1. 3,获取特征或建模操作所引用的当前拓扑元素的指针; 步骤1.4,提取当前拓扑元素的相应信息;具体实施时,可以利用现有技术中的拓扑元素的信息提取函数实现提取;
步骤1. 5,获取特征或建模操作所引用的下一个拓扑元素的指针,如果为空则结束,否则返回步骤1.4。步骤2,特征或建模操作所引用的拓扑元素组成的集合记为源拓扑元素集合,在本地的源CAD系统中,对源拓扑元素集合中满足合并条件的拓扑元素进行合并,然后将合并后的拓扑元素的信息传送至远端的目标CAD系统中。
实施例的步骤2中对源拓扑元素集合中满足合并条件的拓扑元素进行合并,具体包括以下步骤
步骤2. 1,记Sl为源拓扑元素集合,从Sl中取出一个拓扑元素记为TPl ; 步骤2. 2,从Sl中找出满足TPl的合并条件的拓扑元素并记为TP2,若找到,则从Sl 中取出TP2,将TP2与TPl进行合并,并将合并所得的拓扑元素作为下一个TP1,返回步骤 2. 2,,若未找到,则将TPl放入合并所得拓扑元素的集合记为S2,进入步骤2. 3 ; 步骤2. 3,判断Sl是否为空,若为空,则结束,否则,转入步骤2. 2。所述的合并是指拓扑元素信息的合并,包括类型信息合并、几何信息合并、边界信息合并和校验信息合并。实施例的步骤2中所述的合并条件如下 条件a,两个拓扑元素的类型相同;
条件b,两个拓扑元素相互邻接;
条件c,若将满足条件a和条件b的两个拓扑元素进行合并,合并所得拓扑元素与合并前的拓扑元素具有相同或相近的类型。步骤3,在目标CAD系统中,以步骤2每一个合并所得的拓扑元素为源拓扑元素,在当前目标模型中,为每一个源拓扑元素寻找满足匹配条件的目标拓扑元素。实施例的步骤3中所述的匹配条件如下
条件a,目标拓扑元素与源拓扑元素具有相同或相近的类型; 条件b,目标拓扑元素与源拓扑元素具有相同的几何;
条件c,若源拓扑元素为一维拓扑元素,则目标拓扑元素的两个端点必须在源拓扑元素的内部或与源拓扑元素的两个端点重合;若源拓扑元素为二维拓扑元素,则目标拓扑元素的边界必须满足源拓扑元素的边界的匹配条件。实施例的步骤3根据源拓扑元素为一维拓扑元素还是二维拓扑元素,分别执行步骤3. 1和步骤3. 2。当源拓扑元素为一维拓扑元素时,执行步骤3. 1寻找满足匹配条件的目标拓扑元素,步骤3. 1具体包括以下步骤
步骤3. 11,合并后所得的边集记为S2,从S2中选取一条未处理的边& ;
步骤3. 12,当前目标模型的所有边集记为S3,从S3中找出满足h的匹配条件的边并记为Et,若找到,则将肚从S3中取出放入与h相匹配的目标边的集合,与h相匹配的目标边的集合记为S4,转入步骤3. 13,若未找到,则转入步骤3. 14 ;
步骤3. 13,若S4中与h相匹配的所有边的校验值之和等于h的校验值,则转入步骤3. 15,否则,返回步骤3. 12 ;
步骤3. 14,若S4为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 15;
步骤3. 15,若S2中的每条边均已处理过,则结束,否则,转入步骤3. 11 ; 当源拓扑元素为二维拓扑元素时,执行步骤3. 2寻找满足匹配条件的目标拓扑元素, 步骤3. 2具体包括以下步骤
步骤3. 21,合并后所得的面的集合记为S7,从S7中选取一个未处理的面Fs ; 步骤3. 22,执行步骤3. 1,在当前目标模型中为Fs的边界找匹配的目标边,并放入匹配边界集合中,匹配边界集合记为S8 ;
步骤3. 23,从S8中选取一条未用过的边记为肚,在当前目标模型中,查找与肚相邻接且满足Fs的匹配条件的面并记为Ft,若找到Ft且不在已找到的与Fs匹配的面的集合中,与Fs匹配的面的集合记为S6,则将Ft放入S6中,转入步骤3. 24,若未找到,则转入步骤 3. 25 ;
步骤3. M,若S6中所有面的校验值之和与Fs的校验值相等,则转入步骤3.沈,否则, 返回步骤3. 23 ;
步骤3. 25,若S6为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 26 ;
步骤3.沈,若S7中的每个面均已处理过,则结束,否则,转入步骤3. 21。步骤4,在目标CAD系统中,对于某个源拓扑元素,若在当前目标模型中未找到满足匹配条件的目标拓扑元素,则进行1:0匹配关系处理。实施例的步骤4中所述的1:0匹配关系处理具体方式如下,
(a)生成与源拓扑元素相匹配的目标拓扑元素的建模操作记为0j,若Oj在目标CAD系统中还未执行,则基于状态向量进行处理,保证在进行拓扑元素匹配时,Oj已经在目标CAD 系统中得以执行。所述的基于状态向量进行处理,处理方式如下
状态向量是一个N维向量,记为SV,其中N为参与协同设计的站点的个数,SV的每一个元素记为SViU], j e {0,1,···,Ν-1};当协同设计开始时,SVi中的每一个元素SViU]均置为0,站点 每执行一个来自站点j的操作,SViU]= sVi[j]+i,SViU]中存放的是站点 已执行的来自站点j的操作的个数;由站点i所发出的操作O的状态向量记为SVo,SVo[j] ,j e {0,1,…,N-1}中记录着操作0在站点i上执行时站点i上已经执行的来自各个站点j的操作个数;当0到达某个目标站点k时,如果站点k上的状态向量SVk和SV。满足条件sv。[j]含SVk[j], j e {0,1,···,N-1},则操作0在源站点i上执行时所有已执行的操作在站点k上已经得以执行。(b)若目标CAD系统中已执行的建模操作将与源拓扑元素相匹配的目标拓扑元素删除或进行了扩展,则进行Undo/Do/Redo处理(/表示先后顺序)恢复目标拓扑元素,保证引用了拓扑元素的建模操作在目标CAD系统中的执行。所述的Undo/Do/Redo处理具体实现方式如下
首先执行Undo处理,Undo处理为撤销已执行的删除或扩展了目标拓扑元素的操作; 然后执行Do处理,Do处理为执行引用了拓扑元素的建模操作; 最后执行Redo处理,Redo处理为重新执行之前Undo处理的操作; (c)若目标CAD系统为了简化边界表示,自动删除了与源拓扑元素相匹配的目标拓扑元素,则基于面分裂进行处理,保证引用了拓扑元素的特征或建模操作在目标CAD系统中的正确重建或执行。所述的基于面分裂进行处理包括以下步骤
步骤Cl,引用了拓扑元素的特征或建模操作记为特征建模操作X,若源拓扑元素是作为特征建模操作χ所需的参照对象来用,则转入步骤C2,若源拓扑元素是作为特征建模操作X所需的操作对象来用,则转入步骤c3 ;步骤c2,利用所提取到的源拓扑元素的几何信息,创建相应的基准特征代替目标拓扑元素并结束;
步骤c3,若目标CAD系统支持面分裂特征,则通过创建面分裂特征来添加缺失的与源拓扑元素相匹配的目标拓扑元素并结束,否则,转入步骤c4 ;
步骤c4,若目标CAD系统提供了能够创建出与面分裂特征具有相同语义的新特征的 APIs (Application Programming Interfaces,应用程序编程接口),则利用新特征代替面分裂特征实现缺失拓扑元素的创建并结束,否则,转入步骤c5 ;
步骤c5,用引用了拓扑元素的特征的几何或建模操作所创建的几何,代替特征建模
操作X。具体实施时,步骤1、步骤2、步骤3、步骤4都可以采用计算机软件技术实现为DLL 插件,分别称为拓扑元素信息提取部件、拓扑元素合并部件、拓扑元素匹配部件、1 0匹配关系处理部件。为便于实施参考起见,提供实施例的一个协同设计过程举例。该协同设计过程中包含三个引用了拓扑元素的建模操作=O1、04和05。以下为本发明实施例的具体步骤
(1)各站点的CAD系统安装各自DLL插件,这些插件包括拓扑元素信息提取部件、拓扑元素合并部件、拓扑元素匹配部件、1:0匹配关系处理部件和Socket通讯部件。Socket通讯为现有技术,站点0、站点1和站点2之间通过Socket建立点到点的网络通讯连接。(2)站点0、站点1和站点2上的初始状态为站点0发出创建拉伸特征的建模操作Otl生成了一个圆柱体,O0已经在站点1和站点2上得到了正确的执行。
(3) O1是由站点0发出的用于对由Otl生成的圆柱体上表面的两条半圆弧边E1和E2及下表面的两条半圆弧边&和&做倒圆角。首先,站点0作为本地的源CAD系统,在站点0 上调用拓扑元素信息提取部件提取EpE2A3和&的相应信息(即执行步骤1);然后,调用合并处理部件对这些信息进行合并(即执行步骤2),其中E1和E2被合并为一条边E12A3和& 被合并为一条边E34,并将合并所得的边的信息作为操作命令的一部分传送到站点1和站点 2,此时站点1和站点2作为目标CAD系统;站点1上已执行的本地操作&使圆柱体上表面的两条半圆弧边分别被分裂为四条圆弧边=E1YEifEn和Ey,这四条边均满足E12的匹配条件,因此调用拓扑元素匹配部件可以直接找到这些匹配边,同理,也能够找到站点1上的圆柱体底面的四条边(即执行步骤3)。当O1到达站点2时,已执行的并发操作O3并未改变与E12和E34相匹配的圆柱体的上下两表面的边界,通过拓扑元素匹配部件也可直接找到与 E12和E34相匹配目标边,并执行O1 (即执行步骤3)。(4) O4是由站点2发出的用于对由O3所生成的圆柱体的侧面进行拔模操作,此时站点2作为本地的源CAD系统。首先,在站点2上调用拓扑元素信息提取部件提取拔模特征所引用的两个半圆柱面的相应信息(即执行步骤1);然后,调用合并处理部件对这些信息进行合并(即执行步骤2),得到一个圆柱面F12,并将F12的信息作为O4对应的操作命令的一部分传送至站点0和站点1,此时站点0和站点1作为目标CAD系统;当O4的操作命令到达站点0时,通过拓扑元素匹配部件找到与面F12相匹配的目标面F/和F2’,从而O4在站点0 上得以正确地执行(即执行步骤3)。O4在站点1上执行的情况与其在站点0上执行的情况相同。(5)05是由站点1发出的引用了由O3所生成的圆柱体上表面的边E的创建倒圆角操作,此时站点1作为本地的源CAD系统。首先,在站点1上调用拓扑元素信息提取部件提取边E的相关信息(即执行步骤1);然后,调用合并处理部件对这些信息进行合并(即执行步骤2),由于只有一条边E,因此不需进行合并处理,直接将包含边E的相关信息的操作命令发送至站点0和站点2,此时站点0和站点2作为目标CAD系统;当O5到达站点2时,站点2上已执行的操作O6修改了由O3所生成的圆柱体的高度,因此调用拓扑元素匹配部件未找到与边E相匹配的目标边(即执行步骤3);通过调用1:0匹配关系处理部件(即执行步骤 4),首先把站点2上已执行的与O5并发的操作O6撤销,图中记为Undo (O6);然后执行05, 图中记为Do (05),最后将O6恢复执行(图中记为Redo (06))。与O5在站点2上执行的情况不同的是,当O5到达站点O时,通过调用拓扑元素匹配部件可直接找到与边E相匹配的目标边,并执行O5。 由以上实施例可知,通过本技术方案,既可以保证引用了拓扑元素的特征在目标 CAD系统中的正确重建,又保证了引用了拓扑元素的建模操作在各协同CAD系统中的并发执行。
权利要求
1.一种异构CAD集成中的拓扑元素匹配方法,其特征是,包括以下步骤步骤1,在本地的源CAD系统中,将特征或建模操作所引用的源拓扑元素的相应信息提取出来;步骤2,特征或建模操作所引用的拓扑元素组成的集合记为源拓扑元素集合,在本地的源CAD系统中,对源拓扑元素集合中满足合并条件的拓扑元素进行合并,然后将合并后的拓扑元素的信息传送至远端的目标CAD系统中;步骤3,在目标CAD系统中,以步骤2每一个合并所得的拓扑元素为源拓扑元素,在当前目标模型中,为每一个源拓扑元素寻找满足匹配条件的目标拓扑元素;步骤4,在目标CAD系统中,对于某个源拓扑元素,若在当前目标模型中未找到满足匹配条件的目标拓扑元素,则进行1:0匹配关系处理。
2.根据权利要求1所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤1中所述的源拓扑元素的相应信息,包括以下四类信息(a)类型信息,是指拓扑元素的类型;(b)属性信息,是指拓扑元素的几何属性;(c)界限信息,是指一维拓扑元素的端点信息和二维拓扑元素的边界边信息;(d)校验信息,是指一维拓扑元素的长度和二维拓扑元素的面积。
3.根据权利要求1所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤1中提取源拓扑元素的相应信息,具体包括以下步骤步骤1. 1,在源CAD系统中获取当前源模型的指针; 步骤1. 2,获取引用了拓扑元素的特征或建模操作的指针; 步骤1. 3,获取特征或建模操作所引用的当前拓扑元素的指针; 步骤1. 4,提取当前拓扑元素的相应信息;步骤1. 5,获取特征或建模操作所引用的下一个拓扑元素的指针,如果为空则结束,否则返回步骤1.4。
4.根据权利要求1所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤2中对源拓扑元素集合中满足合并条件的拓扑元素进行合并,具体包括以下步骤步骤2. 1,记Sl为源拓扑元素集合,从Sl中取出一个拓扑元素记为TPl ; 步骤2. 2,从Sl中找出满足TPl的合并条件的拓扑元素并记为TP2,若找到,则从Sl 中取出TP2,将TP2与TPl进行合并,并将合并所得的拓扑元素作为下一个TP1,返回步骤 2. 2,,若未找到,则将TPl放入合并所得拓扑元素的集合记为S2,进入步骤2. 3 ; 步骤2. 3,判断Sl是否为空,若为空,则结束,否则,转入步骤2. 2。
5.根据权利要求4所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤2中所述的合并是指拓扑元素信息的合并,包括类型信息合并、几何信息合并、边界信息合并和校验信息合并。
6.根据权利要求5所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤2中所述的合并条件如下条件a,两个拓扑元素的类型相同; 条件b,两个拓扑元素相互邻接;条件c,若将满足条件a和条件b的两个拓扑元素进行合并,合并所得拓扑元素与合并前的拓扑元素具有相同或相近的类型。
7.根据权利要求1所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤3中所述的匹配条件如下条件a,目标拓扑元素与源拓扑元素具有相同或相近的类型;条件b,目标拓扑元素与源拓扑元素具有相同的几何;条件c,若源拓扑元素为一维拓扑元素,则目标拓扑元素的两个端点必须在源拓扑元素的内部或与源拓扑元素的两个端点重合;若源拓扑元素为二维拓扑元素,则目标拓扑元素的边界必须满足源拓扑元素的边界的匹配条件。
8.根据权利要求1所述的异构CAD集成中的拓扑元素匹配方法,其特征是当源拓扑元素为一维拓扑元素时,执行步骤3. 1寻找满足匹配条件的目标拓扑元素,步骤3. 1具体包括以下步骤步骤3. 11,合并后所得的边集记为S2,从S2中选取一条未处理的边h ; 步骤3. 12,当前目标模型的所有边集记为S3,从S3中找出满足h的匹配条件的边并记为Et,若找到,则将Et从S3中取出放入与h相匹配的目标边的集合,与h相匹配的目标边的集合记为S4,进入步骤3. 13,若未找到,则转入步骤3. 14 ;步骤3. 13,若S4中与h相匹配的所有边的校验值之和等于h的校验值,则转入步骤3. 15,否则,返回步骤3. 12 ;步骤3. 14,若S4为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 15;步骤3. 15,若S2中的每条边均已处理过,则结束,否则,转入步骤3. 11 ;当源拓扑元素为二维拓扑元素时,执行步骤3. 2寻找满足匹配条件的目标拓扑元素, 步骤3. 2具体包括以下步骤步骤3. 21,合并后所得的面的集合记为S7,从S7中选取一个未处理的面Fs ; 步骤3. 22,执行步骤3. 1,在当前目标模型中为Fs的边界找匹配的目标边,并放入匹配边界集合中,匹配边界集合记为S8 ;步骤3. 23,从S8中选取一条未用过的边记为肚,在当前目标模型中,查找与肚相邻接且满足Fs的匹配条件的面并记为Ft,若找到Ft且不在已找到的与Fs匹配的面的集合中,与Fs匹配的面的集合记为S6,则将Ft放入S6中,转入步骤3. 24,若未找到,则转入步骤 3. 25 ;步骤3. M,若S6中所有面的校验值之和与Fs的校验值相等,则转入步骤3.沈,否则, 返回步骤3. 23 ;步骤3. 25,若S6为空,则在当前目标模型中未找到满足匹配条件的目标拓扑元素,否则,转入步骤3. 26 ;步骤3.沈,若S7中的每个面均已处理过,则结束,否则,转入步骤3. 21。
9.根据权利要求2所述的异构CAD集成中的拓扑元素匹配方法,其特征是步骤4中所述的1:0匹配关系处理具体方式如下(a)生成与源拓扑元素相匹配的目标拓扑元素的建模操作记为0j,若Oj在目标CAD系统中还未执行,则基于状态向量进行处理,保证在进行拓扑元素匹配时,Oj已经在目标CAD 系统中得以执行;(b)若目标CAD系统中已执行的建模操作将与源拓扑元素相匹配的目标拓扑元素删除或进行了扩展,则进行Undo/Do/Redo处理恢复目标拓扑元素,保证引用了拓扑元素的建模操作在目标CAD系统中的执行;(c)若目标CAD系统为了简化边界表示,自动删除了与源拓扑元素相匹配的目标拓扑元素,则基于面分裂进行处理,保证引用了拓扑元素的特征或建模操作在目标CAD系统中的正确重建或执行。
10.根据权利要求9所述的异构CAD集成中的拓扑元素匹配方法,其特征是所述的基于状态向量进行处理,状态向量是一个N维向量,记为SV,其中N为参与协同设计的站点的个数,SV的每一个元素记为SVi[j], j e {0,1,…,N-1};当协同设计开始时,SVi中的每一个元素SViU]均置为0,站点i每执行一个来自站点j的操作,SViU]= sVi[j]+i,SViLj] 中存放的是站点i已执行的来自站点j的操作的个数;由站点i所发出的操作0的状态向量记为SVo,SVo[j],je {0,1,-,N-1}中记录着操作0在站点i上执行时站点i上已经执行的来自各个站点j的操作个数;当0到达某个目标站点k时,如果站点k上的状态向量 SVk和SV。满足条件:SV0 [j]含SVk[j],j e {0,1,…,N-1},则操作0在源站点i上执行时所有已执行的操作在站点k上已经得以执行;所述的Undo/Do/Redo处理具体实现方式如下首先执行Undo处理,Undo处理为撤销已执行的删除或扩展了目标拓扑元素的操作; 然后执行Do处理,Do处理为执行引用了拓扑元素的建模操作; 最后执行Redo处理,Redo处理为重新执行之前Undo处理的操作; 所述的基于面分裂进行处理包括以下步骤步骤cl,引用了拓扑元素的特征或建模操作记为特征建模操作X,若源拓扑元素是作为特征建模操作X所需的参照对象来用,则转入步骤c2,若源拓扑元素是作为特征建模操作X所需的操作对象来用,则转入步骤c3 ;步骤c2,利用所提取到的源拓扑元素的几何信息,创建相应的基准特征代替目标拓扑元素并结束;步骤c3,若目标CAD系统支持面分裂特征,则通过创建面分裂特征来添加缺失的与源拓扑元素相匹配的目标拓扑元素并结束,否则,转入步骤c4 ;步骤c4,若目标CAD系统提供了能够创建出与面分裂特征具有相同语义的新特征的 APIs,则利用新特征代替面分裂特征实现缺失拓扑元素的创建并结束,否则,转入步骤c5 ; 步骤c5,用引用了拓扑元素的特征的几何或建模操作所创建的几何,代替特征建模操作X。
全文摘要
本发明公开了一种异构CAD集成中的拓扑元素匹配方法,本方法首先在源CAD系统中,获取特征建模操作所引用的拓扑元素的相关信息,然后将这些信息进行合并,最后将合并所得的拓扑元素的信息传送至目标CAD系统,在目标CAD系统中,为合并所得的每一个拓扑元素寻找相匹配的目标拓扑元素,从而保证相同特征和建模操作在目标CAD系统中的正确重建及执行。
文档编号G06F17/50GK102567588SQ20121000498
公开日2012年7月11日 申请日期2012年1月10日 优先权日2012年1月10日
发明者何发智, 李小霞, 蔡贤涛 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1