首页> 中国专利> 具有若干面的模型化对象的计算机辅助设计方法

具有若干面的模型化对象的计算机辅助设计方法

摘要

本发明涉及具有若干面的模型化对象(10)的计算机辅助设计方法。该方法包括步骤:对于对象(10)的所述若干面中的每个面,根据几何学标准识别与所述面相关的所述若干面中的至少另一个面。由此将面标记为连接的。这是用于执行该方法的随后步骤所需的“拓扑预处理”的一部分。该方法还包括步骤:计算形成所述若干面中的每个面的网格状表示的多个点。基于该网格,该方法根据上述识别步骤通过确定和存储数据来表征临界区,所述数据代表三维几何图形(接触给定面)和与所述面相关的面之间的相交。对于一个面的网格状表示的每个点和对于对象的每个面执行确定是否发生相交的步骤。然后,作为“边界提取”一般步骤的一部分,该方法根据点的各自存储的数据计算点之间的边界(界定将进行表面重新计算的区域)并且根据所确定的边界来确定区域。优选地,执行渐进区域确定法;特别地包括通过调用合适的配对例程来确定包括倒角或倒圆状、台阶状和壁状截面的区域。最后,根据所确定的区域来重新计算表面(12、14、140、142、145、148、150)。

著录项

  • 公开/公告号CN1869993A

    专利类型发明专利

  • 公开/公告日2006-11-29

    原文格式PDF

  • 申请/专利权人 达索系统公司;

    申请/专利号CN200610074674.1

  • 发明设计人 约兰·马耶;雷米·罗拉托;

    申请日2006-04-07

  • 分类号G06F17/50;

  • 代理机构永新专利商标代理有限公司;

  • 代理人王英

  • 地址 法国叙雷纳

  • 入库时间 2023-12-17 17:55:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-05-12

    授权

    授权

  • 2007-10-24

    实质审查的生效

    实质审查的生效

  • 2006-11-29

    公开

    公开

说明书

技术领域

本发明涉及计算机程序和系统的领域,更具体而言涉及计算机辅助设计(CAD)系统和计算机辅助制造(CAM)的领域。

背景技术

市场上提供了许多用于设计部件或部件的组合的系统和程序,诸如达索系统公司(DASSAULT SYSTEMES)所提供的商标为CATIA的系统和程序。这些所谓的计算机辅助设计(CAD)系统允许用户构建和操纵对象或对象的组合的复杂的三维(3D)模型。这样CAD系统使用边或线,在某些情况下使用面,提供了模型化对象的表示。线或边可以以各种方式表示,例如非均匀有理B样条(non-uniform rationalB-splines,NURBS)。这些CAD系统管理作为模型化对象的部件或部件的组合,其主要是几何形状的规范。特别地,CAD文件包含从其生成几何形状的规范。从几何形状生成了表示。规范、几何形状和表示可以存储在一个或多个CAD文件中。CAD系统包括用于向设计者展示模型化对象的图形工具;这些工具用于复杂对象的显示——CAD系统中表示对象的文件的典型大小是在每个部件一兆字节的范围内,并且组合可以包括数千个部件。CAD系统管理存储在电子文件中的对象的模型。

显然,至少对于一些应用来说,在CAD系统的帮助下设计的模型化对象旨在尽可能接近地模拟最终制造的产品。

例如,在产品/部件模制领域中使用模具,所述模具可以看作是可能由锐边分开的连续面。然而真实的边例如真实模具的边并不是完全的锐边,而是呈现稍稍被倒圆或被倒角的截面。因此,当在相应的理论模型中忽略这样的特征时,需要用于模制的材料的用量与理论模型的期望用量稍稍不同。显然,只要真实对象和模型化对象之间的总体一致性是关注的焦点,这样的细节可以被看作是无关紧要的。然而,当考虑大量/连续生产时,例如在一年期间用于生产所必需的材料的理论和实际用量之间的差异是相当大的,这变得重要起来。作为一个简单例子,让我们考虑边长为L的立方体模制产品的大量生产。随着实际模制而产生的立方体的十二条边的倒圆(有时被称为“磨斜边”)总计去除了3Lr2(4-π)的体积,其中r是密切圆的半径。因此,例如考虑r=L/10,完美立方体的体积和最终产品的体积之间的差值总计约为2.6%。所以,可以理解需要尽可能可靠地预测最终“实际”产品的特征,应当提高预测。换句话说,必须提高理论模型和实际模型之间的一致性。在这方面以及对于一些特定应用,例如可制造性或美学原因,CAD用户有时必须用倒圆边代替理论模具或产品的锐边。

为了实现该目标,传统的建模方法是逐一地创建产品边缘的倒圆状截面(应用于所有凸边上的半径)或倒角状截面(例如,应用于凹边上的半径)。如图1所示,模型产品10因此可以呈现倒角状截面12(以下称为“倒角(fillet)”)和/或倒圆截面14(以下称为“倒圆(round)”)。

图2以逐一的过程显示了模型产品10的倒圆14和倒角12的设计步骤的典型结果。当模型的元件数量增加时,根据这样的过程产生倒圆和/或倒角很快变得非常复杂。用户必须考虑到步骤的一定顺序,而该顺序可能会根据模型化对象而改变。否则,倒圆或倒角设计可能失败。模型化对象的复杂性(边、角隅区(corner area)等的多样性)可能是失败的另一原因。特别地,模制边缘相交处(角隅,困难区域等)的倒圆或倒角是一种痛苦。此外,传统的倒角处理限制模型由每个操作之间的有效封闭几何形状构成(由于所使用的算法的内在限制)。这种限制常常导致手动倒角或倒圆失败。为了避免该情况,用户不得不花费大量的时间以便确定需要修改锐边的倒角或倒圆的创建顺序。

所以,需要一种解决方案来提高产品表面精细设计的效率,尤其是提高倒圆和/或倒角处理的效率。

发明内容

为了该目标,本发明建议了具有若干面的模型化对象的计算机辅助设计方法,该方法包括以下步骤:

-对于所述面中的每个面,根据几何学标准识别与所述面相关的所述若干面中的至少另一个面;

-计算形成所述若干面中的每个面的网格状表示的多个点;

-对于所述若干面中的每个面;

对于所述面的所示网格状表示的每个点;

确定和存储数据,该数据代表与所述点相接触的三维几何图形和被识别为与所述面相关的另一个面之间的相交;

-根据它们各自存储的数据计算点之间的边界;

-根据所述计算的边界确定区域;以及

-根据所述确定的区域计算新面。

在其它实施例中,根据本发明的处理可以包括以下特征中的一个和多个:

-形成所述计算的网格状表示的所述多个点中的每个点是网格状多边形的顶点;

-所述计算边界的步骤包括确定连接顶点的线段上的边界点,所述顶点具有分别指示相交和不相交的存储数据;

-所述计算边界的步骤包括,在计算所述边界点之前,细分具有顶点的多边形,所述顶点具有分别指示相交和不相交的存储数据;

-所述数据代表所述图形和所述另一个面之间的所述相交的量;

-所述方法还包括步骤:用户选择不被处理的面并且随后从待处理的面中去除该面;

-所述方法还包括步骤:外推与被去除的所述面邻近的多个面;

-所述几何学标准至少包括:待被识别为相关面的所述面的外角在180.5°至360°之间;

-对于与经由用户选择的面相关的若干面的每一配对,还执行所述确定和存储代表相交的数据的步骤;

-所述确定区域的步骤包括:通过使用函数f1和条件C1调用配对例程确定一个或多个区域,所述区域包括一条边并且具有倒角状或倒圆状截面;

-所述确定区域的步骤包括:通过使用函数f2和条件C2调用配对例程确定一个或多个区域,所述区域包括两条边并且具有台阶状截面,所述两条边具有小于与所述三维对象相关的尺寸的最小距离;

-所述确定区域的步骤包括:通过使用函数f3和条件C3调用配对例程确定一个或多个区域,所述区域包括由至少两条边分离的两个基本平行的面部分并且具有壁状截面,所述两条边具有小于与所述三维对象相关的尺寸的最小距离;

-所述确定区域的步骤包括:通过使用函数f1和条件C1调用配对例程确定一个或多个区域,所述区域包括一条边并且具有倒角状或倒圆状截面;然后通过分别使用函数f2和条件C2或者函数f3和条件C3调用配对例程确定一个或多个区域,所述区域包括两条边并且分别具有台阶状截面或者壁状截面,所述两条边具有小于与所述三维对象相关的尺寸的最小距离;

-所述确定区域的步骤还包括:根据所述已经确定的一个或多个区域和所述计算出的边界确定一个或多个剩余区域;

-所述调用的配对例程包括:

对于每个边界Fi;

对于所述边界Fi的每个点Pi,j

对于不同于所述边界Fi的边界Fk;

对于所述边界Fk的每个点Pk,l

根据正在被确定的一个或多个区域来计算yi,j,k,l=fm(Pi,j,Pk,l),其中fm是所述函数f1,f2或f3

根据正在被确定的所述一个或多个区域来选择使yi,j,k,l-1和yi,j,k,l满足所述条件Cm的一个或多个特殊配对Pk,l-1*和Pk,l*,其中Cm是所述条件C1,C2或C3

根据进一步的条件Cs在所述一个或多个特殊配对Pk,l-1*和Pk,l*中选择特殊点Pk,l***

存储所述配对Pi,j,Pk,l***

-对于每个确定区域,所述计算新面的步骤调用适合所述确定区域的类型的面计算例程;

-所述方法还包括根据所述计算的新面修改模型化对象数据面的步骤;

-所述三维几何图形包括半径为r的球面,该球面在所述面的所述网格状表示的所述点处与所述面相接触;

-所述三维几何图形包括半径分别为rx和rc的两个球面,所述球面在所述面的所述网格状表示的所述点处相切;以及

-所述三维几何图形包括锥面,并且其中,在所述确定和存储代表三维几何图形的相交的数据的步骤中,所述图形与所述点相接触并且被赋予特定的纵向和横向角。

本发明还涉及执行本发明的方法的计算机程序。

附图说明

现在参考附图讨论本发明的各个实施例,其中:

图1是具有倒圆和倒角的模型化工件体的举例显示;

图2显示了根据现有技术的逐一倒圆/倒角设计;

图3-7显示了表示根据本发明的实施例的模型化对象的计算机辅助设计步骤的流程图;

图8是表示在图5中调用的配对例程的步骤的流程图;

图9A-B示意性地示出了当从待处理的面去除一个面时工件体的设计管理的一个例子;

图10A-C例举了具有裂片和裂缝的工件体的设计管理;

图11概述了三维几何图形和工件体面之间的相交,作为根据实施例的方法的一部分;

图12A-C图示了在一个实施例中的边界的提取;

图13A-E示出了在一个实施例中的配对步骤;

图14A-B例举了具有各种边部分的工件体的设计管理。

具体实施方式

本发明涉及具有若干面的模型化对象的计算机辅助设计方法。该方法包括:识别步骤,对于对象的所述若干面中的每个面,根据几何标准识别与该面相关的所述若干面中的至少另一个面。由此将面标记为连接的。这是用于执行该方法的随后步骤所需的“拓扑预处理”的一部分。例如,所述标准可以涉及待识别的面的外角。该方法还包括计算形成所述面中的每个面的网格状表示的多个点的步骤。基于该网格,该方法根据上述识别步骤通过确定和存储数据来表征临界区,所述数据代表三维(3D)几何图形(接触给定面)和与所述面相关的一个面之间的相交。对于一个面的网格状表示的每个点和对于对象的每个面执行确定是否出现相交的步骤。优选地,根据用户输入,并非所有的面都需要处理。然后,作为“边界提取”一般步骤的一部分,该方法根据点的各自存储数据计算点之间的边界(界定将进行表面重新计算的区域),并且根据所确定的边界来确定区域。这样,本方法是全局方法:首先为整体确定边界,然后从边界确定区域,这与倒角/倒圆作为一个部分由部分处理局部地进行计算的以前的方法形成对比。优选地,执行渐进区域确定法;特别是包括通过调用合适的配对例程(coupling routine),来确定包括至少一条边并且具有倒角/倒圆状、台阶/壁状截面或显示更复杂型式的区域。最后,根据所确定的区域计算新面。

这样,本发明有可能快速地和自动地计算所述区域中的倒圆和/或倒角。所有临界区都可能被检测并且所确定的区域由该方法进行处理。作为自动过程,它因此克服了先前的由于“手动地”考虑步骤的顺序的难点。利用基于3D图形和相邻面的相交的方法允许提供规则的边界。这样使随后的区域确定变得更容易。这种全局方法和该方法的渐进特征使模型体不必由每个操作之间的有效封闭几何形状构成,而这是以前的主要失败原因。结果是,即使未完全克服,也大大降低了倒圆和/或倒角的失败。所以,本发明提供的解决方案提高了产品表面精细设计的效率,尤其提高了角隅(corner)的倒圆和/或倒角处理的效率。例如,执行根据本发明的方法使得计算的时间是传统倒角任务的10%,同时提供了多种新颖的可能性和用户选项。值得指出的是所需的CPU时间随着待处理的元件的数量大致线性地增加。

上述步骤属于可以如下表示的更一般的步骤:

-“拓扑预处理”,其中可以根据选择作为不倒角面的面和/或当选择裂缝和裂片管理选项时将遇到的面而预备工件体。所述的特定面可以被看作“平滑表面”,这将在以后进行具体论述。此外,计算所述平滑表面之间的倒角凸度(fillet convexity)。

-“网格化”。在这里,如本领域所公知的,目标是将主体转换成多面体。然而,需要特别注意控制输入参数,从而平衡所产生的多面体的逼真度、方法精确性和可用的硬件资源。

-“边界提取”。现在,多面体被分割成一组“可移动”顶点和一组“不可移动”顶点,其将在以后进行具体说明。返回子集之间的边界并且收集用于后续步骤的信息。

另外,本发明的方法可能包括以下一般步骤:

-“精确倒角识别”,其中规则的倒角/到圆区域被确定并且三个面会聚处的面积被重新计算。

-“倒圆近似”。基于调用的面-面倒角算子或者在倒角算子无效时可能基于混合算子,来创建被倒圆的表面(对于倒角状倒角或倒圆状倒角,根据“精确倒角识别”)。

-“困难区域(hard zone)管理”。创建角隅表面并调用填充算子。在困难区域对于填充例程来说太复杂时也可以调用混合算子。

-“缝合(sewing)”,其中所创建的表面被缝合到最终主体上并且未被倒角的边保持不变。

这样的一般步骤将在其后被分解成可选的子步骤,所述子步骤也可以有利地执行以用于实现本发明。

在下文中,如本领域中经常允许的,除非另外指出,“倒角”和“倒圆”的概念通常包含在措词“倒角”中。

图3-7显示了表示模型化对象的计算机辅助设计的步骤的流程图,这将马上进行解释。由于图9-14B显示了在上述流程图中的各个步骤获得的典型模型体的面,因此对这些图的参考将被结合在图3-7的流程图的描述中。

图3涉及“拓扑预处理”的一般步骤,其本身包括两个主要部分,分别涉及“功能”面(例如不被处理的面)和裂片/裂缝的管理。参考该图,在步骤100,对于指定输入体(例如参见图9的输入体10)启动该处理。在步骤110,该过程测试用户是否已经预先选择了给定面作为不被处理的面或者允许用户选择这样的面。如果没有选择任何面,则待处理的主体(工件体)保持与以前相同(步骤120)。否则,从输入体中的待处理的一组面去除任何选定面。

这在图9a中示出,其中模型对象10的面16从初始的一组面被去除。结果是(图9b),该面和另一个面之间的边未被重新计算,尽管可以看到它们可以通过计算其它面的配对而被蚀刻。当用户希望定制表面重新计算时证明特定面的去除是有利的。

接着,返回图3,很可能执行自由边界的外推,例如与被选择作为不被处理的面邻接的面中的每个面。这在实践中是有利的,因为已经发现稍稍不规则的边界型式可以在这样的面的附近被计算。进而,在步骤114检验外推步骤是否成功。如果是,待考虑的工件体将是具有外推面的工件体(步骤118)。在发生外推失败的情况下(例如如果外推面与其它面相抵触),则外推体被丢弃并且工件体保持与以前的输入体相同(步骤116),除了由用户选择作为不被处理的面将不予进一步考虑地被丢弃(步骤120)。

在接下来的步骤130-134中,该过程在主体的面之间创建连接(132-134)。尤其是,该方法根据几何学标准为工件体的面中的每个面(步骤130)识别与所述一个面相关的主体面中的至少另一个面,例如外角在180.5°至360°之间的面。“外角”是在横穿两个相邻面的截面中在外部形成的较大角。当面的所述角符合所述标准时,它们被认为由锐边分离并且面被标记为连接的。相反地,不符合这些标准的面被认为是单一连续面,例如本领域中公知的“平滑表面”。结果是,在将会遇到平滑表面的该过程的其余阶段不应当遇到属于相同平滑表面的两个面。

任选地,用户可以选择用于裂片和裂缝管理的选项(步骤140-144)。裂片和裂缝与共用凸边和凹边的相邻平滑表面有关。这在图10A中被例举,其中工件体10的裂片由参考标记A表示,裂缝由C表示。如图所示,裂片典型地具有凹/凸/凸/凹顺序的截面,而裂缝则相反。这里,尽管B和D分别具有裂片状和裂缝状截面,但是由于他们的临界边是圆形的,因此认为它们是平滑表面。B和D的管理将在下一段进行解释。如果裂片和裂缝选项都未被选择,则该方法的缺省行为将导致如图10B所示的形状,也就是说,裂片/裂缝A或C被稍稍倒圆但是不能达到理想的倒圆/倒角半径。相反地,当被选择时,这样的选项允许创建远距离的面之间的连接。例如,面SA2可以被选择,从而允许创建SA1和SA3之间的连接。结果是(图10C),裂片A几乎已经倒塌。反之,在裂缝管理向导中选择SC2导致裂缝C几乎被填满。因而,对于A或C,现在所获得的型式与倒圆/倒角半径相一致。

进一步地,在图10A-C中可以看到,在裂片B的顶部预先存在倒圆,并且在裂缝D的底部预先存在倒角。由于这种预先存在的倒角/倒圆抑制了各自裂缝/裂片的横截面中的奇点,因此相应的面看起来像是单一连续平滑表面。结果是,没有遇到这些面,这允许预先存在的倒角/倒圆(例如,具有小于图10A-C中的输入倒角/倒圆半径的半径)被保留,如图10A至图10C所示。附带说明,取决于该过程的执行,输入体所允许的倒角只可以是设计倒角。在本阶段,让我们回想一下在待处理的主体的相邻面之间已经创建了连接,并且仅仅有可能在下面遇到不同的相邻(并且可能是远距离的)平滑表面。

返回所述流程图,图4延续图3并且通常涉及“网格化”和“边界提取”的一般步骤。

参考该图,在步骤150计算形成主体面的每个面的网格状表示的多个点,从而产生网格状工件体。典型地,网格状表面由多边形的组合组成。这些典型地为三角形,因而在不损失一般性的情况下以后将使用“三角形”。因此,网格状表示的多个点中的每个点为三角形的顶点。显然可以设想使用每个三角形的中心代替顶点。

在步骤160,考虑到以后将被存储的数据,网格状工作体的每个顶点可以被赋予一个相关的初始缺省值。例如,它们可以被标记为“不移动”,这将在其后更加清楚。

接着,对于工件体的每个面(例如步骤170的“面1”)和对于所述面的网格状表示的每个顶点(步骤172),该方法确定并存储数据(步骤170-182),该数据代表接触所述顶点的3D几何图形和上述识别为连接所述面的一个面之间的相交。这特别有利,原因在于由于3D几何形状的考虑,待以后计算的倒角的半径可以与以上使用的抵触3D图形的空间特征有关。特别地,所述3D图形可以是在所述面的网格状表示的所述顶点处接触所述面(“面1”)的单个或两个球面,与所述表面相切。这将参考图11进行强调。因此,以下所述3D图形由“球面”表示。在步骤172,该方法测试面1的特殊顶点。首先,它检验是否已经在该顶点规定了一个球面(步骤174)。如果为否,对于连接到面1的每个面(“面2”),该方法可以在所述顶点处规定具有适宜半径的一个球面(缺省或用户可选择的球面)(步骤176-178)。接着,测试所述球面是否与面2相交(步骤180)。

显然,可以设想用于抵触检测的其它方案,这对于本领域的技术人员来说是显而易见的。然后代表所述抵触的数据被归属于被测试的顶点。例如,所述数据可以限制为单个二进制值,例如若检测出抵触则为1,否则为0。作为另一选择,所述数据例如可以基于与面2抵触的球面的部分来代表抵触的程度。进一步地,所述数据可以由对应于发现球面与另一个面相切或半相切处的三角形或顶点的数量组成。

参考图11将更好地理解3D图形与相邻或远距离面的相交,该图显示了给定工件体10的各部分和在网格状面21、23、25、27、29、31、33和35的各种顶点20、22、24、26规定的球面30、32。在这里重要的是注意所述面可以是“平滑表面”,也就是由一条边分离的面,所述面的外角大于给定值(例如180.5-360°)。

在该例子中,面23是包括垂直壁部分(垂直且邻近面21)和邻接的水平壁部分(垂直且邻近面25)的平滑表面。此外,在图11的例子中仅仅测试面的配对(21-23),(23-25),(25-27),(27-29),(29-31),(31-33),(33-35)和(35-21)(上述步骤172和176)。为了清楚起见,在图11上没有对所有面的配对表示出球面。

需要注意的是,所述球面可以在对象的外部30(用于检测凹边附近的凹型抵触)或在内部32(用于检测凸型抵触),在被测试顶点(例如参见在顶点20附近的球面30、32)处与主体面相切。

这样,一次只能够测试给定类型的一个球面并且测试上述两种类型(外部的或内部的)需要两次循环,或者作为另一选择,可以在单个循环中一次测试两个球面。

在同样包含在图11中的替换实施例中,3D图形可以包括半径分别为rx和rc的两个球面30、32,在所述顶点处与所述面相切。

实际上,技术人员可以理解,一旦计算出相邻面之间的倒角凸度,就只能够使用一个球面,在识别相关面的步骤之后可以知道该球面的类型。因而,取决于计算出的测试抵触的连接面(面1和2)的凸度,该方法可以适于选择在给定点处的适宜球面(内部的或外部的)并且随后测试它。例如,考虑面21和23之间的边,其可以被看作是凸边。一旦知道该边的凸度,显然外部球面的使用是无用的,因为后者不可能在所述球面和在所述边附近的面21,23中的一个面或另一面之间产生任何抵触。反之,如图所示,利用内部球面则产生球面-面抵触40。由于抵触40在凸边附近,因此方便地称它为“凸抵触”40。这样,可以存储与顶点22相关的表示抵触的数据。需要注意的是,3D图形的形状(在这里为球面的半径)确定了后面待计算的倒角/倒圆的半径。因而,3D几何图形提供了用于确定规则边界的对象工具,表面重新计算将在所述规则边界附近发生。

接着,考虑凹边,对称的推理使得能够推断出箭头42和44表示的相交是“凹”抵触,这次是由外部球面30导致的。然而,由于上述实施例,在该例子中相交42未被标记为抵触,这是因为它出现在两个面属于相同的平滑表面23的情况下。类似地,由于面23和31不是相邻面,因此相交46在这里未被认为是凸抵触。最后,在平滑表面23的例子中只有抵触40和44被看作是有效抵触。因此,代表相应的相交的数据被存储,所述数据与各自的顶点22和26相关。这样的数据例如可以由表示被标记成移动(参见步骤182)的顶点的值组成,在该情况下所述顶点很可能在随后的步骤被去除。作为另一选择,所述值可以根据抵触的程度而连续变化,例如与所述球面的抵触线段的高度成比例,等等。

记住这一点,然后简要地回到涉及裂片和裂缝管理的图10。如所述的,缺省方法仅仅允许相邻的平滑表面相接。相反地,选择用于裂片/裂缝管理的适宜选项不允许遇到相邻平滑表面。因而,考虑到以上步骤170-180的描述,当用户选择裂片/裂缝时,测试在所选择的裂片/裂缝附近的一个面处规定的3D图形是否越过一个相邻面与一个远距离面相交。例如,选择裂片/裂缝允许局部地测试第二相邻面,甚至是第三相邻面。例如,如果在图10A中选择平滑表面SA2,那么除了(SA1,SA2)和(SA2,SA3)之外,面(SA1,SA3)将会相遇(confronted),例如缺省相遇。如果不选择平滑表面SA2(因而如果A不被看作是要保留的裂片),则只测试(SA1,SA2)和(SA2,SA3),从而导致图10B的型式。

现在,再次参考图4的流程图,下一组步骤190-230用于根据顶点各自存储的数据计算顶点之间的边界。例如可以计算这样一些顶点之间的边界,所述顶点的存储数据分别代表抵触和不抵触(由于倒圆/倒角半径与测试球面的尺寸有关,因此这显得很方便)。因而,在连结这样一些顶点的线段上确定边界点,所述顶点具有分别指示相交和不相交的存储数据。

因此,在步骤190,对于每个网格状三角形开始一个循环;然后测试(步骤192)所述三角形是否具有在步骤182被标记为移动的一个或两个顶点。如果是,例如测试所述三角形的面积是否大于阈值面积(步骤194),从而使三角形被标记为“可细分的”。尽管是可选的,但是这样的可能性是有利的,因为它允许具有相反抵触状态的顶点之间的更精细的边界计算。如果发现可细分的三角形(步骤198),它们因此被细分(步骤200),从而产生新顶点,所述新顶点再次通过开始一个新循环(步骤170)来测试抵触。步骤(170)的循环不断出现直到不再发现可细分的三角形(步骤198)。

接着,在步骤210开始一个新循环,由此可以根据近似计算点的位置(步骤220)。特别地,代表抵触量的存储数据,例如基于抵触球面的抵触部分,允许计算点的理论位置。因而可以根据所述计算的点确定“折线”边界。

在图12A-12B中例举了上述边界计算,所述图概述了根据上述实施例的边界计算的连续阶段。

所选的例子是圆柱体60的例子,该圆柱体60根据图12A-C的左边部分中的圆柱体60正上方所示的笛卡尔坐标系标记52被定向。所述图的主要部分显示了根据标记50所表示的平面(x,z)定向的圆柱体的放大的示意性四分之一圆截面62。换句话说,它被从上方观察。所述圆柱体截面62包括根据上述实施例被标记为“移动”或“不移动”的多个顶点。标记为“移动”的顶点被表示为单点,而十字交叉表示不移动的顶点。虚线64代表(尚为)理论边界。

图12A代表关于将在步骤182之后获得的所述四分之一圆截面62:三角形包含0、1、2或3个移动顶点。

图12B显示了由上述步骤190-200产生的情况,即,正好带有一个或两个移动顶点的三角形被细分,由此在理论边界64附近出现新顶点。

接着,图12C示出了执行步骤210-230的结果,由此根据具体计算的点(步骤220)(其在这里显示为圆点),提供了“折线”边界。因此,上述步骤的执行使得能够提取精细边界。

再次参考该方法,图5和6用于“精确倒角识别”、“倒圆近似”和“困难区域处理”的一般步骤。

返回流程图,参考图5,每当确定具有倒角状或倒圆状截面(步骤240)、台阶状截面(步骤250)或壁状截面(260)的区域时调用配对例程。尽管可以调用不同的例程,但是这些至少具有一组共同特征,所述共同特征将参考图8进行具体描述。

首次调用所述例程之后返回精确倒角。由于通常在待处理的普通工件体上观察上述截面型式,因此使用上述例程(或相继的类似例程)证明是有利的。优选地,首先调用用于确定倒圆/倒角区域的配对例程,然后以任意顺序调用用于确定壁/台阶区域的配对例程。因而,只要有可能就搜索精确倒角,然后搜索壁/台阶区域。上述例程将参考图8的流程图进行具体描述。

由于困难区域位于未发现倒角/壁/台阶区域的地方,因此最好在以后处理它们。然后可以根据计算的边界确定一个或多个剩余区域(步骤270),为此在280创建特定角隅区。

接着,参考图6,在步骤290开始一个新循环。对于检测出的每个倒角(参照步骤240),例如基于牛顿-拉弗森法(Newton-Raphson)或类似方法,使用精确重会聚法,从而“放大”待处理的区域(步骤292)。然后,只要有可能就通过调用面-面倒角算子来创建精确倒角表面(步骤294-298)。否则,调用混合算子(步骤296)。

相反地,考虑经由所述配对法检测出的台阶/壁区域(上述步骤250和260),直接调用混合算子(步骤300和310),由此创建混合表面(步骤304和314)。

现在考虑在280创建的角隅区,该方法按如下进行:首先测试所述角隅是否为球形,在该情况下创建一个球面(步骤320-324),否则如本领域中公知的,产生一个传统的填充表面(步骤326)。

按顺序提供一些注释。关于在步骤296、304和314所使用的混合算子:采用以下步骤:使用3D曲线近似边界折线,然后,将所述3D曲线投影到输入体上,从而产生2D曲线。然后,使用创建的2D曲线和所包含的支撑面作为输入,调用混合算子。

现在考虑在步骤326使用的填充算子,出现类似的3D到2D的投影。然后,除了先前创建的倒角表面(参照步骤298)或混合表面(参照步骤296、304或314)的边界之外,还使用产生的2D曲线来调用所述填充算子(本领域中公知的算子),从而创建平滑表面。

如果困难区域对于填充法的使用来说太复杂,在调用混合或填充算子之前可以将困难区域细分,这取决于局部几何形状的特征。

另外,可以调用合适的算子,从而提供表面曲率控制。

最后,参考图7,用于最终缝合一般步骤,在步骤330开始一个循环,从而为每个先前创建的表面触发缝合例程(332)。需要注意的是,取决于缝合策略,可以同时在输入体上缝合一个以上的表面。

该方法在340停止。

现在参考图8,具体描述了图5中的步骤240、250和260调用的配对例程。

对于每个计算出的边界Fi(步骤410)和对于所述边界Fi的每个点Pi,j(步骤412),首先应当测试(步骤414)点Pi,j是否已经包含在先前确定的任何配对中,在该情况下不对该点尝试进一步的配对。否则,对于不同于所述边界Fi的每个边界Fk(步骤416)以及对于所述边界Fk的每个点Pk,l(步骤418),在步骤420-422计算值yi,j,k,l=fm(Pi,j,Pk,l),其中使用的函数fm取决于当前试验配对的类型。例如,当从步骤240(用于倒角区域检测)调用例程时可以使用第一函数f1,当从步骤250(用于台阶区域检测)调用时可以使用f2,或使用f3(用于壁区域检测)。

然后优选地,测试计算出的yi,j,k,l是否满足一些“容许”条件(步骤422)。首先,特别地基于到Pi,j,Pk,l各自的法线,确定正被考虑的当前配对是否属于倒角、倒圆、台阶或壁区域,由此将其保留作为候选,否则将其丢弃。此外,作为用于台阶状截面的附加容许条件的一个例子,由于显然的几何学原因,将高度大于平均倒圆/倒角半径两倍的台阶附近的点放弃作为用于配对的可能候选点。类似的容许条件被用于任一类型的区域。另外,所述容许条件可以在计算yi,j,k,l之前进行计算。

然后,存储(步骤426)一个或多个特殊配对(Pk,l-1*,Pk,l*),对于该一个或多个特殊配对(Pk,l-1*,Pk,l*),分别计算出的yi,j,k,l-1和yi,j,k,l(步骤420-426)满足条件Cm(例如步骤424的符号变化,这将以后进行描述),其中与fm相同,Cm取决于当前试验的配对。条件C1、C2或C3分别在步骤240、250和260使用。

如果在步骤426发现了若干配对(Pk,l-1*,Pk,l*)满足条件Cm,则可以首先根据某个进一步的条件Cs1选择一个更特殊的配对(Pk,l-1**,Pk,l**)(步骤430)。然后,可以根据进一步的条件Cs2选择(例如l***=l-1**或l**)一个更特殊的点Pk,l***(步骤430-432)。需要注意的是,即使Cs1和Cs2被减少为单个任意选择,只要点的配对(Pi,j,Pk,l)之间的步长足够小,例程就可能很好地工作。

换句话说,最后选择的点Pk,l***可以被看作满足条件Cs(除了先前的条件Cm之外)时获得的一个点,其中Cs包括Cs1和Cs2(尤其当要发现若干配对(Pk,l-1*,Pk,l*)时)。

最后,在步骤434存储配对Pi,j,Pk,l***

接着,当在步骤410开始的循环结束时,点与连续极点(例如形成配对的那些)的配对被识别(步骤440)并且被标记为属于相同的组,从而边界的部分被配对,由此形成区域。

例程在450结束。

显然,并非边界Fi,Fk的所有配对以及点的配对(Pi,j,Pk,l)都需要在上述例程中考虑到。而是,最好根据进一步的条件限制yi,j,k,l的计算,所述进一步的条件被选择成使得丢弃这样的配对,所述配对例如由于距离标准而最后没有机会被配对。

在配对例程中执行以上方法有可能自动恢复“精确”倒角、台阶和壁区域。

在下文中,当调用图8的配对法时使用的函数fm和条件Cm将关于图13A-D进行说明。

图13A-D显示了具有边70和边界Fi(如从步骤230确定的)的工件体10。特别地,该工件体显示了台阶状截面72,壁状截面74和“困难”区域(在这里为角隅)76。

作为例子,图13A-C示出了在用于精确倒角识别的配对例程(参照图8的步骤410-450)中使用的特定函数f1和条件C1,即,当从步骤240调用时的特定函数f1和条件C1。需要注意的是,为了清楚起见,仅仅显示了两个边界F1和F2

让我们首先说明一下将要在该特定实施例中获得的理论结果。为了该目标,考虑边界F1的给定点P1,1和在所述点P1,1附近的“凸”(内部)球面111,在该点与包括边界F1的面相切。对于所有不同的边界(在该情况下:F2),搜索用于配对的候选点P2,l-1,P2,l等,所述点具有大致相同的相关凸球面。例如,在图13A中,规定了与点P2,1相切的凸球面121。由于球面111和121未在给定的容限内很好地匹配,因此点P2,1被放弃作为用于配对的可能候选点。相反地,在图13B中,在点P2,1’处规定了球面121’,从而产生基本匹配球面111的一个球面(在图13B的比例下差异看不出来)。因而,点104可以被保留作为用于配对的可能候选点。

现在,为了实现该目标,在下文中参考图13C解释了可能的实施方案。对于F1的一个给定点P1,1,如上面所解释的,对于边界F2的每个点P2,l(l=1,2,3,...)(例如P2,1和P2,2),计算值y1,1,2,l=f1(P1,1,P2,l)。可以选择函数f1作为标量积:

f1(Pi,j,Pk,l)=(ck,l-ci,j)·(ni,j^nk,l),

其中ni,j是在点Pi,j处垂直于所述面的法线,ci,j是指向与Pi,j相切的球面(在图13C中lij=111,121,122)的中心的矢量。需要注意的是,这样的矢量完全由Pi,j的位置信息定义。特别地,ni,j由在Pi,j计算的所述面的梯度导出。因而,注意在理论匹配点Pk,matching处,f1(Pi,j,Pk,l)正好为零,当满足下式时可以选择条件C1

Sign(f1(Pi,j,Pk,l-1))≠Sign(f1(Pi,j,Pk,l))。

在图13C中,点P2,1和P2,2关于P1,1满足所述条件C1。因而,根据上述步骤428,存储该特殊配对(P2,1,P2,2)。对于边界F1的每个点P1,j执行类似的操作。优选地,已经包含在一个配对中的点不被重新计算,并且只测试相邻的边界Fk。用凹球面执行类似的操作。

当在步骤240之后结束配对例程时,情况如图13D中示意性地所示。精确倒角由参考数字90表示。从该图中可以看到,还未在台阶区域72、壁区域74和“困难”区域76附近创建精确倒角,因为在这样的区域没有可能的精确(基于球面的)配对。

现在考虑台阶和壁区域,可以选择函数f2=f3作为:

f2/3(Pi,j,Pk,l)=(Pk,l-Pi,j)·(τk,li,j),

其中τi,j是在点Pi,j处沿边界线Fi与所考虑的面相切的矢量(τi,j和τk,l被选择成具有相反方向)。与以前相同,τi,j和τk,l从Pi,j,Pk,l获知,因此对Pi,j,Pk,l的依赖是隐含的。在该情况下适宜的条件C2/3是:

Sign(f2/3(Pi,j,Pk,l-1))≠Sign(f2/3(Pi,j,Pk,l)),

这与上述情况相同。

尽管f2=f3并且C2=C3,如图13E中所示,台阶和壁固有的几何形状导致配对在本质上不同。当在步骤250和260之后配对例程结束时,情况如图13E中所示:台阶区域92和壁区域94被配对。

然而,还剩下困难区域76,为此将执行特定处理(参照上述步骤320-326)。

作为可由本发明实现的结果的一个教导性例子,图14A-B示出了具有各种边部分的工件体10的管理的结果。锐边70界定了各种面。参考数字72、74和76分别代表台阶、壁和角隅区。在该例子中,面16具体被选择作为未被倒角的面,裂片选项被选择用于壁状截面74’。

执行上述的方法导致了如图14B中所示的修改的工件体(适当地选择了尺寸以突出修改)。特别地,提供了倒角区域12和倒圆区域14,根据上述使用的术语,其受益于“精确配对”表面重新计算。另外,台阶和壁区域(分别为142和145)受益于混合算子(也参见调用了混合算子的152),然而角隅区140的一些被球表面的一部分近似,并且由于上述的填充算子而填充了更困难的角隅区150。

被选择作为裂片的壁状截面74’也受益于精确倒角表面重新计算148(“精确配对”),由此通过抵触球面测试远距离面。因而,可以看出,148中的倒圆半径与用于倒圆14的半径相同。而且,选定面16还未被处理,尽管它由于相邻面的表面重新计算而部分地被蚀刻。

然后将修改的表面缝合到输入体10上。

本发明并不限于参考附图所述的优选实施例。显然,本发明涉及执行根据本发明的方法的计算机程序。

此外,取决于期望的应用,所使用的三维几何图形可以包括各种几何形状。例如,它可以包括锥面或其一部分。因而,根据本发明的方法,在确定和存储代表所述三维图形的相交的数据的步骤中,所述锥面可以规定在所述面上,与所述面相切并且与网格的一个点相接触,所述一个点当前用于测试锥面的抵触。所述锥面可以被赋予特定的纵向和横向角,其中例如使锥面主轴为r,所述角与球坐标中通常的θ和φ角有关。这些角进一步可以是用户可选择的。由此可以在工件体上获得草图。另外,只要锥面的利用适合所述的特定特征,就可以提供许多上述的优点。

而且,尽管在此以一种简单的方式描述了上述方法和例程,但是显然可以出于算法效率的考虑而预见多种改进。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号