由刚性运动转换的几何元素的制作方法

文档序号:6527420阅读:197来源:国知局
由刚性运动转换的几何元素的制作方法
【专利摘要】提供了一种用于设计三维建模对象的计算机实现方法。该方法包括提供(S10)几何元素,该几何元素表示建模对象且包括在其中几何元素是另一个的副本的集合。该方法还包括定义(S20)图表,确定(S30)该图表的最大子图表,以及在确定出的子图表中,识别(S40)具有最多数量的弧的连通分量的集合,并且对于连通分量的集合,由弧表示的刚性运动全部遵守一致性标准。这种方法改进了3D建模对象的设计。
【专利说明】 由刚性运动转换的几何元素
【技术领域】
[0001]本发明涉及计算机程序和系统领域,并且更具体地涉及一种用于设计三维(3D)建模对象的方法、系统和程序。
【背景技术】
[0002]在市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩写词,例如,其涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩写词,例如,其涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩写词,例如,其涉及用于定义制造过程和操作的软件解决方案。在这样的系统中,关于该技术的有效性,图形用户界面(GUI)扮演着重要的角色。可以将这些技术嵌入在产品生命周期管理(PLM)系统内。PLM涉及帮助多个公司跨越扩展企业的概念而分享产品数据、应用通用处理、并且权衡用于从构思到它们使用寿命终结的产品开发的企业知识的商业策略。
[0003]由Dassault Systems (商标名为 CATIA、ENOVIA 和 DELMIA)提供的 PLM 解决方案提供了工程中心、制造中心和企业中心,工程中心组织产品工程知识,制造中心管理制造工程知识,企业中心使企业能够集成并连接到工程中心和制造中心。该系统一起提供了开放的对象模型,其链接产品、过程、资源,以实现动态的、基于知识的产品产生和驱动优化的产品限定、制造准备、生产和服务的决策支持。
[0004]现在,基于向用户提供的建模对象的边界表示(B-Rep),许多CAD系统允许用户设计3D建模对象。该B-Rep是包括各个面被定义为各自支持表面的边界部分的面的集合的数据格式。通过修改现有的面、创建新的面、删除一些面和/或定义面上和/或面间的约束、或者由使用时的CAD系统提供的类似的任何行为,用户可作用于该面的集合。在这种情形中,为了效率起见,该立体的历史通常对用户不可用。
[0005]发展中的这种3D设计的多个方面之一被称为“图案识别”。术语“图案”涉及相同的几何特征的副本的规则布局。识别图案允许这样的图案的处理作为设计期间的单个元素,从而扩展了一系列的设计可能性。例如,代替一个接一个地修改图案的元素,由于该图案的先前识别,用户可以例如用单个行为全面地执行图案的修改。图案识别与CAD的不同领域相关,诸如机械设计、消费品、建筑物结构、航天或其他领域。
[0006]图案识别可与特征识别相关。特征识别有助于识别给定的3D对象(典型地,机械部分的立体表示)的特性形状。机械设计的感兴趣的特性形状包括例如孔、挤压垫、挤压凹处、圆角或圆形、外卷垫和/或外卷凹处。识别特性形状相当于通过更佳的语义层识别其规格,例如,挤压或外卷形状的轮廓,外卷形状的旋转轴,圆形和圆角的半径值,挤压方向,和/或挤压深度。这个信息用于例如通过编辑该挤压的轮廓而修改形状,或者用于送入下游过程,例如加工过程。
[0007]特征识别能力可通过以下过程用于商业CAD系统。用户可选择特征的类别以进行识别。于是可选地,用户选择立体上的特征的一个或多个面,以便初始化搜索。该系统执行识别并得到识别出的特征的规格。
[0008]当目的是局部地改变输入立体的形状时,“直接编辑”能力也是可用的。这种技术也被称为“无历史建模”,其由CAD编辑者宣传为历史设计的另选物。目的是仅通过使用其B-Rep容易地改变立体的形状。为了使编辑从用户观点来看简单,“直接编辑”技术必须识别该立体的局部形状。例如,该系统必须维持孔的圆柱形(并且不将圆柱改变为自由形态的表面)、维持凹处的壁的垂直方向、和/或维持形状的外卷或挤压特性。因此,特征识别是不可避免的,即使是在“直接编辑”领域中。
[0009]传统的特征识别每次处理一个特征。它不识别给定特征的多个副本,并且它不识别这些副本的布局。至于图案识别,该主题仍然在发展,但是现有的解决方案看起来需要许多的用户干预。
[0010]因此,现有的解决方案缺少效率,特别是从用户利用观点和从穷尽性的观点来说。在本上下文中,仍然存在一种用于设计3D建模对象的改进的解决方案的需求。

【发明内容】

[0011]根据一个方面,因此提供了一种用于设计3D建模对象的计算机实现方法。该方法包括提供几何元素,该几何元素表示建模对象且包括在其中几何元素是另一个的副本的集合。该方法还包括定义具有节点和弧的图表,每个节点表示集合的几何元素,每条弧连接一对节点,并且表示将由该对节点的一个节点所表示的几何元素转换为由该对节点的另一个节点所表示的几何元素的刚性运动。该方法还包括确定该图表的最大子图表,对于子图表,由弧表示的刚性运动全部遵守预定的近似性标准,该近似性标准比预定的一致性标准弱。并且,该方法包括在确定的子图表内,识别具有最多数量的弧的连通分量的集合,并且对于该连通分量的集合,由弧表示的刚性运动全部遵守一致性标准。
[0012]该方法还包括以下的一个或多个:
[0013]-该方法还包括迭代以下步骤:通过折叠识别出的连通分量的集合的各个连通分量的节点来修改图表;以及迭代对修改的图表的确定和识别;
[0014]-该折叠包括:删除与所识别出的连通分量的集合的任何连通分量的任何节点相连的全部弧;对于每个各自的连通分量,由单个节点替换各自的连通分量的全部节点;以及在表示等距的连通分量的节点对之间增加弧,每条增加的弧表示将由该对节点的一个节点所表示的连通分量转换为由该对节点的另一个节点所表示的连通分量的刚性运动;
[0015]-该识别包括:在确定出的子图表中,选择具有最多数量的弧的子图表,以及测试由所选择的子图表的每个连通分量的弧所表示的刚性运动是否全部遵守一致性标准;
[0016]-作为检验的结果,该识别还包括:如果测试的结果是肯定的,则将连通分量的集合识别为所选择的子图表的连通分量;否则,如果测试的结果是否定的,则拆分所选择的子图表,并且重新运行选择和检验;和/或
[0017]-该拆反包括:从所选择的子图表中削减所选择的子图表中这样的子图表的弧:在所选择的子图表的全部子图表中,该子图表具有最多数量的弧,并且对于该子图表,由弧所表示的刚性运动全部遵守一致性标准;以及,使用削减掉的弧创建新的子图表。
[0018]还提出了一种包括用于执行上述方法的指令的计算机程序。该计算机程序适于存储在计算机可读存储介质上。[0019]还提出了一种具有在其上记录的上述计算机程序的计算机可读存储介质。
[0020]还提出了一种CAD系统,其包括耦合到存储器的处理器以及图形用户界面,该存储器在其上记录有上述计算机程序。
【专利附图】

【附图说明】
[0021]现在,作为非限制性示例且参考附图将描述本发明的实施例,其中:
[0022]图1示出了该方法的示例的流程图;
[0023]图2示出了图形用户界面的示例;
[0024]图3示出了客户端计算机系统的示例;以及
[0025]图4-31示出了该方法的示例。
【具体实施方式】
[0026]图1示出了用于设计3D建模对象的计算机实现方法的流程图。该方法包括提供SlO几何元素。几何元素表示建模对象。SlO处提供的几何元素包括在其中几何元素是另一个的副本的集合。该方法还包括定义S20具有节点和弧的图表,各条弧连接一对节点。各个节点表示该集合的几何元素。各条弧表示将由该对节点的一个节点表示的几何元素转换为由该对节点的另一个节点表示的几何元素的刚性运动。该方法还包括确定S30该图表的最大子图表。S30处确定的最大的子图表在对子图表而言由弧表示的刚性运动完全遵守预定的近似性标准的那些子图表中。近似性标准比预定的一致性(identity)标准弱。以及,该方法还包括在确定出的子图表内(S30确定的)识别S40连通分量的集合,连通分量具有最多数量的弧,并且对于该连通分量而言由弧表示的刚性运动完全遵守一致性标准。
[0027]这种方法构成了用于设计3D建模对象的改进的解决方案。通过识别S40连通分量,对于该连通分量而言由弧表示的刚性运动完全遵守一致性标准,该方法确定了几何图案,从而向用户开放基于图案的设计功能。通过识别S40图表的最大的子图表中的这些图案,对于子图表而言由弧表示的刚性运动完全遵守比一致性标准弱的预定的近似性标准,该方法执行足够的识别以更好地掌握预期的图案以及使设计更加容易。特别地,通过根据S30的具体标准确定最大的子图表,以及通过S40根据S40的具体标准来识别在这些子图表中具有最多数量的弧的连通分量的集合,该方法根据识别图案中的弧的总数来优化图案识别,从而识别出最期望的图案。因为该方法按照其具体方式混合使用了近似性标准和一致性标准,所以该方法识别可能属于自身的“图案的模式”(pattern ofpatterns)结构的图案。因此,该方法构成了递归图案识别的第一步,从而为这种递归图案识别预备了数据。由于该方法依赖图表定义S20和几何计算,所以可容易地实现且因此是自动的,因此按照穷尽且快速的方式识别有意义的图案。这在以下论述中是及其详细的。
[0028]建模对象是由存储在计算机系统的存储器中的数据定义的任何对象。作为扩展,措辞“建模对象”指定数据本身。“设计3D建模对象”指定作为精心制作3D建模对象的过程的至少一部分的任何行为或系列行为。因此,该方法可包括从头开始创建3D建模对象。可替换地,该方法可以包括提供先前创建的3D建模对象,并且然后修改该3D建模对象。
[0029]3D建模对象可以是CAD建模对象或者CAD建模对象的一部分。在任何情形中,由该方法设计的3D建模对象可表示CAD建模对象或者其至少一部分,例如,由CAD建模对象占据的3D空间。CAD建模对象是由存储在CAD系统的存储器中的数据定义的任何对象。根据该系统的类型,可由不同种类的数据定义建模对象。CAD系统是至少适于基于建模对象的图形表示设计建模对象的任何系统,例如CATIA。因此,定义CAD建模对象的数据包括允许建模对象的表示的数据(例如,几何数据,例如包括空间中的相对位置)。
[0030]该方法可包括于制造过程中,该制造过程可包括:在执行该方法后,产生与建模对象相对应的实体产品,例如,根据由该方法识别出的几何图案(在这种情形中,可向制造过程馈送关于所述几何图案的信息)。在任何情形中,由该方法设计的建模对象可表示制造对象。建模对象因此是建模立体(即,表示立体的建模对象)。制造对象可以是产品,例如,零件的一部分或其组件。因为该方法改进了建模对象的设计,所以该方法还改进了产品的制造,从而增加了制造过程的生产率。可以使用CAM系统实现该方法,例如DELMIA。CAM系统是至少适于定义、模拟和控制制造过程与操作的任何系统。
[0031]该方法是计算机实现的。这意味着该方法可运行在至少一个计算机或者类似的任何系统上。例如,该方法可在CAD系统上实现。因此,可由计算机执行该方法的步骤,可能完全自动地或半自动地(例如,由用户触发的步骤和/或涉及用户交互的步骤)。特别地,可由用户触发提供SlO和/或定义S20。可以自动地(即,无需任何用户干预)或者半自动地(即,涉及-例如,轻微的-用户干预,例如,用于验证结果或者向/从子图表和/或连通分量的集合增加/删除用户确定的元素)执行确定S30和/或识别S40。
[0032]该方法的计算机实现的典型示例是用适于这个目的的系统执行该方法。该系统可以包括存储器,其上记录有用于执行该方法的指令。换句话说,软件在存储器上已是现成的,以用于即时使用。该系统因此适于执行该方法,而无需安装任何其他软件。这种系统还可以包括至少一个处理器,其与存储器耦合以用于运行指令。换句话说,该系统包括在耦合到处理器的存储器上编码的指令,指令用于提供执行该方法的手段。这种系统是用于设计3D建模对象的有效工具。
[0033]这种系统可以是CAD系统。该系统还可以是CAE和/或CAM系统,并且CAD建模对象还可以是CAE建模对象和/或CAM建模对象。事实上,CAD、CAE和CAM系统并不是彼此排斥的,因为建模对象可由与这些系统的任何组合相对应的数据来定义。
[0034]该系统可以包括用于例如通过用户开始指令运行的至少一个⑶I。特别地,该⑶I可允许用户触发提供SlO的步骤,并且然后,如果用户决定这样做,例如,通过开始具体功能(例如,称为“递归图案识别”),来触发定义S20。然后,可以自动或半自动地执行确定S30,以及然后执行识别S40。
[0035]3D建模对象是3D的(即,三维的)。这意味着建模对象是由允许其3D表示的数据来定义的。特别地,SlO处提供的几何元素是3D的(S卩,它们以3D定义,以便所有几何元素的联合不会包括在一个平面内)。3D表示允许从所有角度观看该表示。例如,当以3D呈现建模对象时,可处理该建模对象,并且该建模对象围绕它的任何轴旋转,或者围绕在其上显示该表示的屏幕中的任何轴旋转。这特别地排除了不是3D建模的2D图标,即使当它们按照2D立体图表示某物时。3D表示的显示有利于设计(即,增加了设计者统计上完成他们的任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造过程的一部分。注意的是,关于该方法的3D特性的论述是适用的,即使在图上按照2D表示了一些示例。必须理解的是,这些示例是出于理解该方法的目的。[0036]图2示出了典型CAD系统的⑶I的示例。
[0037]⑶12100可以是典型的类CAD界面,其具有标准的菜单栏2110、2120以及底部和侧部工具栏2140、2150。这样的菜单和工具栏包含用户可选图标的集合,各个图标与一个或多个操作或功能相关联,如本领域已知的。这些图标中的一些与软件工具相关联,适于用于编辑和/或工作于⑶12100中显示的3D建模对象2000。软件工具可以集合在工作台中。各个工作台包括软件工具的子集合。特别地,所述工作台之一是编辑工作台,适于编辑建模产品2000的几何特征。在操作中,设计者例如可以预先选择对象2000的一部分,并且然后通过选择适当的图标来启动操作(例如,造型操作,或如改变尺寸、色彩等的任何其他操作)或者编辑几何约束。例如,典型的CAD操作是对在屏幕上显示的3D建模对象进行冲压或折叠的建模。
[0038]⑶I可例如显示与所显示的产品2000相关的数据2500。在图2的示例中,显示为“特征树”的数据2500及其3D表示2000与包括制动钳和盘的制动组件有关。GUI还可显示各种类型的图形工具2130、2070、2080,以用于例如便于对象的3D定向,触发对所编辑的产品的操作的仿真,或者呈现所显示的产品2000的各种属性。可以通过触觉装置控制光标2060,以允许用户与图形工具进行交互。
[0039]图3示出了作为客户端计算机系统(例如用户的工作台)的系统的体系结构的示例。
[0040]客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU) 1010,也连接到总线的随机访问存储器(RAM) 1070。客户端计算机还配备有图形处理单元(GPU) 1110,其与连接到总线的视频随机访问存储器1100相关联。在本领域中,视频RAM 1100还被称为帧缓冲器。大容量存储装置控制器1020管理对大容量存储装置(例如硬盘驱动1030)的访问。适于有形地体现计算机程序指令和数据的大容量存储装置包括所有形式的非易失性存储器,作为示例,其包括半导体存储装置,例如,EPROM, EEPROM和闪存装置;磁盘,例如,内部硬盘和可拆卸盘,磁光盘,以及⑶-ROM盘1040。前述中的任何一个都可以由专门设计的ASIC(专用集成电路)进行补充,或者并入到专门设计的ASIC中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉装置1090,例如光标控制装置、键盘或其他。在客户端计算机中使用光标控制装置,以允许用户选择性地将光标放在屏幕1080的任何期望位置上,如参照图2所提及的。作为屏幕,其是指在其上可以执行显示的任何支持物,例如计算机监视器。另外,光标控制装置允许用户选择各种命令,以及输入控制信号。光标控制装置包括多种信号生成装置,用于将控制信号输入至系统。典型地,光标控制装置可以是鼠标,鼠标的按钮用于生成信号。
[0041]为了使系统执行方法,提供了一种计算机程序,其包括用于由计算机执行的指令,指令包括用于这个目的的手段。例如,可以在数字电子电路中,或者在计算机硬件、固件、软件、或者在它们的组合中实现该程序。本发明的设备可以实施在有形地体现在机器可读存储装置中的计算机程序产品,该计算机程序产品由可编程处理器执行的;以及可以通过可编程处理器执行本发明的方法步骤,可编程处理器执行指令的程序以通过对输入数据进行操作及生成输出来执行本发明的功能。有利地,可以以一个或多个计算机程序实现这些指令,这些计算机程序可运行在可编程的系统上,可编程的系统包括:至少一个可编程处理器,其被耦合以从数据存储系统接收数据和指令以及传送数据和指令到数据存储系统;至少一个输入装置;以及至少一个输出装置。可以以高级过程语言或面向对象编程语言实现应用程序,或者如果希望的话以汇编或机器语言实现应用程序;并且在任何情形中,该语言可以是编译或解释语言。该程序可以是整个安装程序,或者是更新程序。在后者的情形中,该程序将现有的CAD系统更新到其中系统适于执行方法的状态。
[0042]现在讨论提供S10。
[0043]该方法包括提供SlO表示建模对象的几何元素。几何元素因此是建模对象的几何的一部分。几何元素可以是任何类型的。例如,几何元素可包括基本的立体、基本的曲线和/或基本的表面。在CAD广泛使用且下文中主要讨论的示例中,几何元素可以是SlO处提供的建模对象的边界表示(B-R印)的(例如,所有的)面。几何元素还可以是B-R印的面的几何图案。在这种情形中,该方法直接执行图案识别的模式。
[0044]提供SlO可由工作于建模对象(例如,工作于它的边界表示)上的设计者产生,或者例如可由该方法可用于例如从现有的库中取回的诸如B-R印的现已存在的模型这一事实产生。在任何情形中,可在SlO处提供该建模对象作为B-R印。边界表示是广泛公知的用于根据3D对象的封皮(即,它的外表面)建模3D对象的格式。B-R印因此指定可包括几何数据和拓扑数据的具体格式的数据。几何数据是提供几何实体的数据,几何实体是根据3D位置描述的实体。拓扑数据是提供拓扑实体的数据,拓扑实体是根据几何实体的参考和/或与其他拓扑实体的关系(例如相对位置)描述的实体。典型地,所述关系可包括使拓扑实体与其他拓扑实体相关联的“被划界”(is bounded by)关系,通过该关系,它们被拓扑地划界。
[0045]提供SlO可排除任何历史数据。换句话说,SlO处提供的建模对象可以是无历史的。这是指建模对象没有与指示其设计历史的任何数据相关联,而是仅通过说明性数据,包括例如B-Rep。因此,该方法可在设计者没有拥有建模对象的历史的环境中工作,这特别地暗示,在建模对象上设计的几何图案不会同样地按照SlO处提供的数据进行定义。
[0046]在该方法的情形中,(例如,几何的)数据可包括所谓的“支持表面”,例如参数表面(即,根据与定义2D域的参数相关联的3D位置建模的3D表面)。典型地,支持表面可以是Nurbs表面,但也可以是平面的、规范化的或程序上的表面。并且,(例如,拓扑的)数据可包括面的至少一个集合,各个面被定义为(几何数据中提供的)各自支持表面的有界部分。因此,面对应于修整表面。因此,支持表面是在其上按照任何方式通过修整操作定义面(从而“支持”面)的表面。SlO处提供的几何元素因此是在整个数据中定义的这样的面。
[0047]尽管广泛公知,但现在通过SlO处可提供的建模对象的示例进一步讨论B-R印的概念。然而,对于至少一些拓扑实体,本方法可以设想B-Rep的其他示例,例如具有不同于“被划界”关系的关系。同样,该方法可考虑非B-Rep表示。
[0048]如前所述,建模对象的B-Rep可包括拓扑实体和几何实体。几何实体可包括3D对象,该3D对象是表面(例如,平面)、曲线(例如,线)和/或点。表面可以被提供为两个参数的函数。曲线可被简单地提供为一个参数的函数。并且点可以被提供为3D位置。拓扑实体可包括面、边和/或顶点。通过它的定义,面与各自表面(名为“支持表面”)的有界部分相对应。术语“面”因此可中立地指定该表面的这种有界部分或者2D域的相应有界部分。类似地,边与曲线(名为例如支持曲线)的有界部分相对应。术语“边”因此可指定曲线或其领域的这种有界部分。顶点可定义为3D空间中到点的链接。这些实体如下地彼此相关。曲线的有界部分通过位于曲线上的两个点(顶点)来定义。表面的有界部分通过其边界来定义,这个边界是位于表面上的边的集合。面的边界的边通过共用顶点连接在一起。面通过共用边连接在一起。通过定义,两个面如果它们共用一个边则是相邻的。类似地,两个边如果它们共用一个顶点则是相邻的。表面、曲线和点经由它们的参数化可链接在一起。例如,可提供定义曲线的参数函数的参数值,以定义有界顶点。类似地,可提供将曲线的参数链接到表面的两个参数的函数,以定义边界边。然而,B-Rep的这种拓扑数据的非常详细的结构超出了本说明的范围。
[0049]图4和图5图示了圆柱形插槽80的B-Rep模型;其可以是SlO提供的,且由图上标记为1、2和3的三个面组成:顶平面I和两个侧圆柱面2和3。图4示出了插槽80的立体图。图5示出了所有面的分解图。重复的数字图示边和顶点共用。面I是平面的有界部分。面I的边界包括边4和边5,它们的每一个都由顶点10和11划界。它们都具有相同的支持圆。面2由位于无限圆柱形表面(即,面2的支持表面)上的边6、8、5和13划界。面I和面2是相邻的,因为它们共用边5。面2和面3是相邻的,因为它们共用边8和边13。面I和面3是相邻的,因为它们共用边4。
[0050]图6图示了插槽80的B-rep模型的“被划界”拓扑关系。较高层101的节点是面,中间层103的节点是边,以及较低层105的节点是顶点。图7和图8图示了拓扑实体(面、边、顶点)和支持几何结构(无限圆柱、无限平面、无限线、点)之间的关系。在CAD系统中,B-rep模型在适当的数据结构中聚集“被划界”关系和拓扑实体与支持几何结构之间的关系,以及支持几何结构的数学描述。换句话说,图6和图7所示的数据结构是这个示例的部分拓扑数据,该示例包括几何数据的几何实体的链接(这是图7)和拓扑实体之间的链接(这是图6) ο
[0051 ] 现在将讨论该方法的其他动作(包括步骤S20-S40)。
[0052]在SlO处提供的几何元素包括集合(例如,至少一个集合),在该集合中几何元素是另一个几何元素的副本,或者换句话说,是彼此几何地等同的元素,或者是其他的几何复制品。该方法包括:基于这些几何元素定义S20图表。对此,该方法可以包括提供该集合的预定,或者另选地,确定该集合(例如,该方法确定将该集合的元素链接在一起的具体数据)。这允许更快地执行定义S20。例如,在几何元素是B-Rep的面的集合的情况下,该方法可以包括,例如,根据用户的触发,确定边界表示的面的所有子集,对于该边界表示,所述面是另一个的副本。可以根据本领域技术人员所希望的任意实现方式来确定SlO的集合。例如,该方法可以包括执行一对面之间的比较,按照任意顺序浏览所述面。可以以任意方式执行这种比较。稍后将提供示例。并且,作为CAD领域所公知的,涉及数值计算的任意确定经受该系统应用的必需的数值逼近。在当前的情况中,可以确定面是彼此的副本,尽管它们在理论上是略有差别的。这样,该方法可以实际地确定实质上是另一个的副本的面的集合。然而,实现逼近的方式不是本讨论的主题,因此,“实质上是另一个的副本”和“是另一个的副本”在下面并未进行区分。事实上仅考虑的是该方法遵循预定的标准以辨别两个几何元素(例如,面)是另一个的副本。同样必须理解的是,该方法可以可替代地直接定义S20图表,而不需要预先确定是另一个的副本的几何元素的集合。
[0053]该方法包括定义S20随后被该方法密集使用的特定图表。作为图表理论公知的,图表是具有节点和每条都连接一对节点的弧的数学对象。因此,该方法用计算机数据定义S20这种结构,从在SlO处提供的数据开始,可能在识别是另一个的副本(可以由该方法所确定的或者这样提供的)的几何元素的集合之后。此处注意的是,如果确定了一些这样的集合,那么在S20处可以分别地定义一些图表。或者,可以随后在首次迭代未处理的集合上迭代该方法。这些是实现方式细节。同样注意的是,可以在副本的完整集合或者它的部分上定义该图表。这同样是实现方式的问题。在第一种方法中,为了全面地执行图案识别,可以在整个集合上执行定义S10。
[0054]现在,在S20处定义的图表具有特定的结构,其格式化由方法在S20处创建的数据(如本领域技术人员所公知的)。每个节点都表示副本的集合的几何元素(例如,面)。例如,将每个节点的名称例如经由指针链接到几何元素的参考。类似地,每条弧都表示刚性运动,其将由一对节点中的一个节点所表示的几何元素转换为由该对节点中的另一个节点表示的几何元素。任何几何元素(包括面)都可以被视为点集(并因此被该方法同样地处理),即三维空间R3的子集。刚性运动是映射D =R3 — R3,在两个点集间由D (X) = Rx+T所定义,其中R是旋转向量 并且T是平移向量(对于它们中的一个可能是空(null))。刚性运动D可以被简化注解为:D= (R7T)0刚性运动是可逆的,由于y = D(X)等同为X = D-1G),其中D_i(y) = R-V-R^1T0三维刚性运动的组通常被注释为SE(3)。由于SlO处提供的集合的几何元素是另一个的副本,所以对于该集合的给定的两个几何元素,通过应用刚性运动,理论上可以从其中一个推导出另外一个。
[0055]该图表聚集描述这种推导(或转换)的数据。可以将刚性运动和相关的几何结构实际地存储在所指向和连接的图表B = (X,U,α,ω),其中节点X是几何结构,并且弧U标注为刚性运动。该标注是映射m:U —SE (3)。更精确地,编写弧u e U从节点a (u)=X e X开始并且在节点ω (u) = y e X结束,意味着几何结构x和y是彼此的副本,并且刚性运动m(u)将X变成y,其被注释为:y = m(u)x。现在,假设弧v e U连接x和z e X,其被写为α (V) = X和ω (V) = z。将X变为ζ的刚性运动是z = m(v)x。于是,z也是y的副本,并且将I变成ζ的刚性运动是z = m(V) 111(11)5。相反地,将ζ变成y的刚性运动是y=m(u)m(v)-1z。
[0056]在此值得注意的是,涉及弧的定向的问题可以由本领域技术人员以任意方式进行处理,因为它们是简单的实现方式问题。例如,给定一条弧并给定由该弧连接的两个节点,可以以任意方式处理确定刚性运动的开始节点的问题(了解的是如果另一节点被用作开始点,则刚性运动则是相反的)。为了充分理解,随后将提供一个实现方式的示例。
[0057]同样值得注意的是,由于在SlO处提供的集合的几何元素是另一个的副本,所以在S20处定义的图表在这个集合中可以是完整的,其具有所有如上定义的弧。然而,为了效率起见,该方法可以在S20处定义不完整的图表,根据任意预定标准排除完整图表的一些弧(例如,表示与其他任何刚性运动不具有近似性的刚性运动的弧)。
[0058]接着该方法包括确定S30遵守一些约束的图表的最大子图表。换句话说,在一些预定约束下,该方法计算该图表的最大子图表(即,子图表是该图表的所有节点和弧的集合的子集),也就是说,具有最多数量的元素的子图表。预定约束如下:在S30处确定的子图表必须是对其由弧所表示的刚性运动全部都遵守预定的被称作“近似性”标准的一个子图表。此处值得注意的是,在S30处确定的子图表不是必须不相交的,正如随后将举例说明的,由于一些节点同时可能属于一些不同的最大子图表。
[0059]近似性标准是指示两个刚性运动在它们在几何对象上操作的方式上是相似的标准。该近似性标准比一致性标准更弱,一致性标准将指示两个刚性运动是相同的(以数值计算固有的上述逼近为模)。近似性标准和一致性标准都是预先确定的,这意味着该系统存储一种方式去观察刚性运动对是否遵守这些标准的任意一个或者两者。因此,正如计算机科学领域所公知的,该方法可以基于预定的近似性标准以任意方式/顺序执行比较,以便确定最大子图表。
[0060]现将提供特别适合机械设计领域的近似性标准的示例和特性。
[0061]近似性的目标是:识别两个刚性运动以及它们的倒转(inverse)分别地以相同的方式操作两个几何对象,而不管所述刚性运动不是必须相同的并且不管所述刚性对象是任意地位于3D空间中的。
[0062]为了简明,下面按照两个步骤来讨论近似性。第一步骤是定义两条弧的所谓的“类似”,并且提供代数特性。由于这个第一定义涉及弧的定向,所以第二步骤通过以弧的定向不是相关的这种方式重新使用“类似”来定义“近似性”。
[0063]让1^,1 = I, 2是图表B的两条弧,并且Di = Iii(Ui),该刚性运动分别与弧ui相关联。让Xi = a (Ui)是弧Ui的起点的几何对象,让Yi = ω (Ui)是弧Ui的终点的几何对象。因此,定义 Ii = Di(Xi), i = 1,2。
[0064]作为定义,弧U1类同于弧u2,其被标记为U1~u2,如果存在刚性运动M,以便验证以下两个条件:
[0065]1.D1 = IT1 ο D2 ο M
[0066]2.X2 = M(X1)
[0067]使用更紧凑的符号,这可以写为=Hi(U1) =M-1Om(U2)。皿和。(u2) =M(a (U1))。
[0068]实际上,该定义并不依赖于选择弧Ui的起点Xi,而是终点yi。更精确地,如果存在像之前定义的刚性运动M,则存在另一刚性运动S,使得D1 = S—1 ο D2 ο S和y2 = S (Yl)。证明如下。
[0069]首先,
[0070]j2 = D2 (X2) = D2 ο M(X1) = D2 ο M o D1-1 o D1 (X1) = D2 ο M o D1-1 (Y1)
[0071]于是,用S = D2 ο M ο D1-1 足以检查 D1 = S—1 o D2 o S
[0072]D1 = IVT1 o D2 ο M = D1 ο M-1 o D2 ο M o D1-1 = D1O M-1 ο D2-1 ο D2 ο M ο D1-1 =(D2 ο M ο D1-1) ο D2 ο (D2 ο M ο D1-1) = S-1 ο D2 ο S
[0073]另一重要的特性在下文中被称为“求逆特性(inversion property) ”:如果两条弧是类似的,则逆弧同样是类似的。形式上,如果U1~u2,则11广~U2'其中,符号1!广是逆弧,其开始于Yi,结束于Xi,并且与逆刚性运动Di4相关联。证明如下。如果U1~U2,则一方面 D1 = Μ—1 ο D2 ο Μ,并且因此 Df1 = (Μ—1 o D2 ο Μ)—1 = Μ—1 o Df1 ο Μ。定义 χ2 = M(X1)的另一点用弧11广的末端节点表示,其根据先前的标注是有效的。这证明了 ιι1~U2'
[0074]“类似”是弧的集合上的等价关系。为了证明这个,建立了以下特性。
[0075]第一特性是自反性:任何弧都与自身类似,U~U,其通过选择M作为同一刚性运动是显然的。
[0076]第二特性是对称性:如果U1~u2,则U2~Ul。这是因为如果D1 = IT1D2M,则D2 =MD1M-1,并且如果X2 = M(X1),则X1 = M-1 (X2)。这允许说“两条弧是类似的”而代替说“它们的一个类似于另一个 ”。[0077]第三且是最后一个特性是传递性:如果U1~U2且如果U2~U3,则U1~u3。事实上,如果U2~U3,则存在刚性运动N,使得D2 = N-1D3N和X3 = N(X3)。但是,因为D1 = IT1D2M和X2 = M(X1),所以我们分别具有:
[0078]D1 = IT1D2M
[0079]= MH3NM = (NM) ^1D3 (NM)
[0080]和
[0081]X3 = N(X2) = NM(X1)
[0082]这证明了 U1~U3,刚性 运动是匪。
[0083]因此,类似关系是弧的集合上的等价关系。缺点是它取决于弧的定向,因为当U1~U2时,关系Ur1-U2并非为真。这是因SD1 =M4D2M通常不会暗指Dr1 =M4D2M,除非D2 =
D2'
[0084]因此,近似性的定义可如下地建立。作为定义,如果弧U1类似于弧U2或者如果弧ur1类似于弧U2,则弧U1近似于弧U2,其被标注为U1 ^ U2。简而言之,如果U1~U2或者U1-1 ~U2,则 U1 ~u2。
[0085]关系~还是等价关系,如以下所证明的。
[0086]建立自反性,因为对于所有的u而言u~U,所以其意味着对于所有的u而言U ^U0应当注意,If1通常不类似于U。
[0087]如下地建立对称性,其是指如果U1 ^ U2,则U2 ^ U10如果U1~U2,则U2~U1,因为~是对称的,并且于是U2 ^屮。如果V1~U2,则通过逆特性,U24~1^,这是指112 ^屮。
[0088]如下地建立传递性,其是指如果U1 ^ U2且如果U2 ^ U3,则U1 ^ U3。语句“U: ^ U2且U2 ^ u3”得出四种可能性并且它必须被检查每一个都暗示U1 ^ 113。
[0089]1.U1 ~U2 且 U2 ~U3
[0090]2.U1 ~U2 且 U2-1 ~U3
[0091]3.U1-1 ~U2 且 U2 ~U3
[0092]4.U1-1 ~U2 且 U2-1 ~U3
[0093]情形I导致U1~u3,因为关系~是传递的,并且于是U1 ^ u3。
[0094]情形2通过逆特性等价于U1~U2且112~U3'因为~是传递的,再次通过逆特性,U1~Uf1等价于U14~U3,其是指U1 ^ u3。
[0095]情形3导致U1 1~U3,因为关系~是传递的,其是指U1 ^ u3。
[0096]情形4等价于11广~U2且U2~U3'因为~是传递的,通过逆特性,ur1~Uf1是指U1~U3,并且于是U1 ^ u3。
[0097]根据基础代数,近似性关系将弧的集合分离为最大的和不相交的子集,接下来将其命名为“等价类”。如果以由该弧连接的节点进行扩展,这些等价类可以组成在S30处确定出的子图表。
[0098]—旦如上所述在S30处确定了最大的子图表,该方法包括在所确定的子图表之内识别S40至少一个几何图案,在S40处所识别的集合的各个连通分量被该方法实际上声明地视为几何图案。在S30处确定的子图表内识别S40连通分量的集合的这一事实意味着根据一些情况识别最大子图表(即,连通分量的集合)之一的特定子子图表(sub-sub-graph),可能是完整的最大子图表,(可能是极端情况中的空图表,或者如果迭代该方法则在迭代的最后,正如之后将讨论的,但是通常不是空图表)。
[0099]通过“识别”连通分量的集合,这意味着将数据增加到建模对象上,以便指示所述连通分量的存在以及形成被称为连通分量的几何元素之间的连接。例如,创建组名并且将几何元素或者几何元素的组和组名之间的链接增加到(数据定义的)建模对象上。将元素链接在一起的这种方式也可以为确定S30而实现。该新的数据可能被存储在永久存储器上,或者至少被存储足够长的时间以供用户在几何图案上工作。这些只是本领域普通技术人员公知的实现的问题。
[0100]此外,该方法识别几何图案。表达“几何图案”意味着属于几何图案的元素组成其元素(例如,面或者面的组)以可预测的方式(即,根据预定规则)放置的几何结构,从而,排除了完整的随机性。所谓的“连通分量”只是连接图表。在该方法的情形中,预期的连通分量是遵循一些标准的在S30处确定的最大子图表的连接子子图表。即,连通分量的弧必须表示遵循一致性标准的刚性运动(即,根据为该方法定义的预定的一致性标准,一个连通分量的所有刚性运动是相同的)。因此,通过将一个相同的刚性运动应用到一个由节点之一表示的初始几何部件,由连通分量的节点表示的几何元素全部都是可获得的(几何图案在该方法之前例如已经由其他用户实际上这样设计了该几何图案)。这提出了几何图案的定义。
[0101]进而,连通分量的集合是具有近似刚性运动的几何图案的集合:在S40处识别出的集合的一个连通分量的相同刚性运动与在S40处识别出的集合的另一个连通分量的相同刚性运动是近似的。因此,通过输出这种“连通分量的集合”结构,该方法发起“图案的模式”识别。事实上,由于所使用的近似性标准的特性,当在S40处识别该集合中的一些连通分量时(取决于输入数据,在S40处识别出的集合可以仅包括一个连通分量,但是在一些情况中,它包括多于一个的连通分量),该连通分量有可能是可用刚性运动从另一个获得的。因此,可以识别出图案的模式,正如随后将举例说明的。
[0102]因为几何图案的几何元素首先被选为另一个的副本,所以该方法根据设计目的识别具有含义的几何图案。并且,在S30处确定的子图表内,从连通分量的所有可能的集合中选择这样的连通分量的集合:对于该连通分量的集合,由弧表示的刚性运动全部都遵循一致性标准,因为其每一个都具有最多数量的弧(总共,计数连通分量的集合的所有弧,即,为该集合的所有连通分量将每个连通分量的弧的总数加到一起)。这可以以任意方式实现,但是稍后将提供可能涉及所谓“拆分”的示例。可以以本领域技术人员希望的任意方式处理一些这种集合存在的情况。这种对在S40处识别出的连通分量的集合的选择允许很好地掌握用户目的。换句话说,由该方法识别出的图案结构在统计学上对用户是最有意义的。特别是,这证明了在可以按照已经讨论的那样应用该方法的机械设计领域特别有效。
[0103]因此,识别S40允许更简单的设计。首先,这允许将几何图案结构(即,连通分量结构的集合)较晚地呈现给用户。用户可因此掌握设计者的目的。这还允许稍后在几何图案结构上全面地执行设计动作(即,以自动统一的方式),如前所述。例如,用户可以用单个的“拖和拉”动作平移整个连通分量或者连通分量的整个集合。或者,用户可以增加该集合的任意或所有连通分量的所有元素的尺寸,通过选择它,并且接着仅输入一次它的元素的新尺寸。这些仅是示例。该方法可以包括任意或者若干这些之后的设计动作,其包括识别S40的结果。一般来说这在CAD领域是有用的,因为该方法允许实现一些包括具有更少用户动作的几何图案的特定设计。这在机械设计领域是特别有用的,当建模对象表示产品时,属于这种情形的方法为了全局工业处理因此需要其所有阶段的时间优化。该方法也可以包括以所识别出的连通分量的集合供给制造过程。
[0104]因此,通过执行简单的几何比较,例如基于面定义,并且通过执行有限的基于图表的计算,该方法有效地识别可能复杂(比相应于单个连通分量的单个图案更加精细)的连通分量的集合形式的几何图案结构,而不需要用户识别(即,预先选择)任意特定的几何元素或用于帮助识别的建模对象上的位置。该方法可以实际地排除这种由用户做出的识别。因此,该方法可以允许对图案的有效识别,例如,该图案适应于建模对象的边界表示。该方法不需要任何用户对几何结构的视觉分析。该方法通过系统地分析输入的几何结构而专注于对复制几何结构的安排。由于用户并不直接参与处理,因此为其他任务节省了时间。此夕卜,正如之后将解释的,可以使用该方法来产生建模对象的图案结构的完整图案。这是一个一次性过程。接下来,本发明缩短了用于图案识别所花费的时间并且提供了最佳可能的结果O
[0105]值得注意的是,可以以某种方式迭代该方法。大体上,在每次迭代中,之前迭代的在S40处识别出的连通分量被同样地认为是几何元素。这样,该方法可以递归地确定所提供模型的图案结构的完整图案,在S40的首次迭代所确定的连通分量可能是在S40的下次迭代所确定的更高级的连通分量的一部分。
[0106]更加精确地,该方法可以进一步包括迭代下面的动作。首先,在该方法的之前迭代的识别S40之后,该方法可以通过折叠(collapse)连通分量的所识别集合的每个连通分量的节点来修改该图表(当在第二迭代时,在第一迭代的S20定义的,或者当在之后的迭代时,在之前的迭代已经修改的)。这相当于以“连通分量接着连通分量”的方式通过将该集合的每个连通分量的节点合并在一起而减少了图表。接着该方法在修改后的图表上执行确定S30和识别S40。换句话说,保持在S20处定义的图表,并且,由于其在该方法的迭代期间被修改,其修改版本被用作每个随后迭代的确定S30和识别S40的输入。这样,该方法详尽且递归地识别出在SlO处提供的几何元素集合中的所有图案。由于通过该方法的各个迭代同样地处理连通分量,所以该方法可以识别出处于任意递归顺序的图案的模式。此外,该方法执行的方式允许以相对低的计算复杂性来完成这些。
[0107]现在,通过包括下面的动作可以简单地执行折叠。该折叠可以包括删除与所识别出的连通分量的集合的任意连通分量的任意节点相连接的所有弧。换句话说,连通分量被减少了它们的节点,并且没有保留任何存在于图表中的(在识别S40之前)连接到所述节点之一的弧。接着,对于每个各自的连接部件,该折叠可以用单个节点替代各自的连通分量的所有节点。从数据处理的观点看,这是个简单的参考管理问题。最后,该折叠可以包括增加如此增加的节点对之间的弧。注意,在表示(即,它们从之前的步骤中产生的)等距的连通分量的节点之间增加所增加的弧。因此,所述连通分量在几何学上等同地以刚性运动为模。每条增加的弧实际上表示将由一对节点的一个节点表示的连通分量转换为由该对节点的另一个节点表示的连通分量的刚性运动。再次,定向的处理是实现方式的问题。因此,保持在S20处定义的图表的全局结构。这允许以相同的算法块并因此以有效的方式执行确定S30以及识别S40。
[0108]在提供了一些定义之后,现在将讨论该方法的示例。在示例中,提供SlO包括提供建模对象的B-Rep。几何元素最初是在B-Rep中定义的面。注意,该应用可以是机械设计,表示产品的建模对象,所述产品例如是零件的一部分或者其组件,其中图案识别是特别有用的。
[0109]给定一个点集X,如果存在刚性运动D使得Y= {D (X),X e X}(其被简化为Y =D⑴),则点集Y是X的“复制品”。
[0110]“定向点集”是组合(couple) (X,ux),其中Xe:R3是点集,并且Ux是映射Ux:X— S2,其中S2是R3的单位向量的集合。换句话说,在任意的点X e X,定义了单位向量Ux(X)。
[0111]如果Y是保存定向的X的复制品,则定向点集(Y,Uy)是定向点集(X,Ux)的“副本”。更加精确地,对于所有X e X,在该复制品上的相应点D(X)的单位向量是在点X上的X的旋转单位向量。形式上,对于所有xe X,%(D(x)) =Rux(X),意味着之后的图是可替换的。
[0112]
【权利要求】
1.一种用于设计三维建模对象的计算机实现方法,包括: 提供(SlO)几何元素,所述几何元素表示建模对象且包括在其中所述几何元素是另一个的副本的集合, 定义(S20)具有节点和弧的图表,每个节点表示所述集合的几何元素,每条弧连接一对节点,并且表示将由该对节点的一个节点所表示的几何元素转换为由该对节点的另一个节点所表示的几何元素的刚性运动, 确定(S30)所述图表的最大子图表,对于所述最大子图表,由弧所表示的刚性运动全部遵守预定的近似性标准,所述近似性标准比预定的一致性标准弱,以及 在确定出的子图表内识别(S40)具有最多数量的弧的连通分量的集合,并且对于所述连通分量的集合,由弧所表示的刚性运动全部遵守一致性标准。
2.如权利要求1所述的计算机实现方法,其中,所述方法还包括迭代以下步骤: 通过折叠所识别出的连通分量的集合的每个连通分量的节点来修改图表;以及 在修改后的图表上重复确定(S30)和识别(S40)。
3.如权利要求2所述的计算机实现方法,其中,所述折叠包括: 删除与所识别出的连通分量的集合的任何连通分量的任何节点相连的全部弧; 对于每个各自的连通分量,由单个节点替换各自的连通分量的全部节点;以及在表示等距的连通分量的节点对之间增加弧,每条增加的弧表示将由该对节点中的一个节点所表示的连通分量转换为由该对节点中的另一个节点所表示的连通分量的刚性运动。
4.如权利要求1-3中任一项所述的方法,其中,所述识别(S40)包括: 在确定出的子图表中,选择(S410)具有最多数量的弧的子图表, 测试(S420)由所选择的子图表的每个连通分量的弧所表示的刚性运动是否全部遵守所述一致性标准。
5.如权利要求4所述的方法,作为测试(S420)的结果,所述识别(S40)还包括: 如果所述测试(S420)的结果是肯定的,则将连通分量的集合识别(S430)为所选择的子图表的连通分量, 否则,如果所述测试(S420)的结果是否定的,则拆分(S440)所选择的子图表,并且重新运行选择(S410)和测试(S420)。
6.如权利要求5所述的方法,其中,所述拆分(S440)包括: 从所选择的子图表中削减所选择的子图表中如下的子图表的弧:在所选择的子图表的全部子图表中,该子图表具有最多数量的弧,并且对于该子图表,由弧所表示的刚性运动全部遵守一致性标准;以及 用削减掉的弧创建新的子图表。
7.—种适于在数据存储介质上记录的计算机程序,其包括用于执行权利要求1-6中任一项所述方法的指令。
8.一种在其上记录有权利要求7的计算机程序的数据存储介质。
9.一种CAD系统,其包括耦合到存储器的处理器以及图形用户界面,所述存储器在其上记录有如权利要求7的计算机程序。
【文档编号】G06F17/50GK103971417SQ201310757403
【公开日】2014年8月6日 申请日期:2013年12月30日 优先权日:2012年12月31日
【发明者】J-B·让维耶 申请人:达索系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1