CN111382777A - 从网格中提取特征树 - Google Patents
从网格中提取特征树 Download PDFInfo
- Publication number
- CN111382777A CN111382777A CN201911392353.XA CN201911392353A CN111382777A CN 111382777 A CN111382777 A CN 111382777A CN 201911392353 A CN201911392353 A CN 201911392353A CN 111382777 A CN111382777 A CN 111382777A
- Authority
- CN
- China
- Prior art keywords
- sketch
- intersecting
- entity
- mesh
- ring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 142
- 239000013598 vector Substances 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000010408 sweeping Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 description 67
- 238000004519 manufacturing process Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 24
- 238000004458 analytical method Methods 0.000 description 18
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 13
- 239000007787 solid Substances 0.000 description 12
- 238000001125 extrusion Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 239000000126 substance Substances 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000003825 pressing Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 108010015046 cell aggregation factors Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000004800 variational method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Generation (AREA)
Abstract
一种用于从网格提取特征树的计算机实现的方法。该方法包括提供网格;计算所提供的网格的几何和邻接图;基于所述区域的所识别的图元类型和参数,针对所述图的每个节点实例化表面;对于所述图的每个节点:计算一个外部相交环和可能的一个或多个内部相交环;从所述外部相交环计算至少一个草图,并分别从实例化表面的可能的一个或多个内部相交环计算可能的一个或多个草图;将扫掠操作应用于每个计算出的草图,从而针对每个草图生成实体,计算所获得的实体之间的添加或移除操作的所有可能的组合,并且针对每个计算的组合获得最终的实体,计算每个最终实体与输入网格的相似度分数,并且基于所述相似度分数,识别与所述输入网格最相似的最终实体。
Description
技术领域
本发明涉及计算机程序和系统领域,更具体地说,涉及一种用于从网格中提取特征树的方法、系统和程序。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的缩写,例如,它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的缩写,例如,它涉及用于模拟未来产品物理行为的软件解决方案。CAM是计算机辅助制造的缩写,例如,它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要作用。这些技术可以嵌入产品生命周期管理(PLM)系统中。PLM是指一种业务战略,可帮助企业在扩展企业的整个概念中共享产品数据、应用通用流程以及利用企业知识来从概念到使用寿命结束的对产品的开发。DassaultSystèmes(商标为CATIA、ENOVIA和DELMIA)提供的PLM解决方案提供了工程中心(用于组织产品工程知识)、制造中心(用于管理制造工程知识)以及企业中心(实现到工程和制造中心二者的企业集成和连接)。该系统共同提供了一个开放的对象模型,该模型将产品、过程、资源链接在一起,以实现基于动态的知识产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
从网格构建(或重构)结构化的3D模型允许构建(或重构)可在专用软件(例如CAD/CAE/CAM/PDM/…系统)中使用的3D模型。换句话说,可以对现有网格进行分析,以用于提取网格中包含的隐式知识。例如,可以通过度量精确扫掠来生成表示真实世界的对象(诸如机械零件)的网格,但是建模软件无法利用隐式包含在网格中的语义。作为另一示例,CAD系统可以模拟用于制造对象的工具机的工具运动,并且可以从包含机器命令和规格的文件中输出网格。同样,对这些文件进行反向工程以获取结构化的3D表示是不可能的,或者非常困难。在另一个示例中,原始网格表示可以从结构化的3D模型获得,通常用于可视化目的。但是,结构信息在此过程期间会丢失。
在Bénière等人的“Topology Reconstruction for B-Rep Modeling from 3DMesh in Reverse Engineering Applications,2012”中致力于从网格中提取足够的信息,以使用曲率建立精确的B-Rep模型。通过分析相对于整体网格曲率分布的网格三角形上的曲率,它们建立了子网格,这些子网格可能是B-Rep表示的面的潜在候选。当子网格不接触其相邻网格时,它们将对其进行扩展,直到它们可以恢复相邻面之间的某些限制。它们通过基于到已构建的子网格的距离的概念聚合三角形来扩展子网格。对于复杂且曲折的几何形状,此过程无法保证恢复有效限制。此外,该方法仅专注于重构精确的B-Rep,而不是CAD流程/特征树。
F.Boussuge在“Extraction of generative processes from B-Rep shapes andapplication to idealization transformations”,2014中提供了从B-Rep表示开始的“过程树”重构方面的大量工作。他们的“过程树”概念类似于特征树。为了构建过程树,他们分析了B-Rep的面以及面之间的相交处,以生成随后可以将其挤压的草图。他们的方法认为精确的B-Rep已经可用,并设计了一些方法来从中构建所谓的过程树(简化的特征树)。但是,所得的过程树仅限于实体添加操作,即不生成任何减法操作。由于可以使用精确的B-Rep可用,因此算法会迭代进行,即通过布尔操作从当前B-Rep中识别并移除特征实体,直到处理完整个实体为止。如果初始输入不是精确的B-Rep,则此方法不起作用,除非支持精确和多面实体之间的布尔操作(在现有技术中不是这种情况)。
因此,能够反转网格具有巨大的价值,因为它允许高级版本并支持CAD/CAE/CAM/PDM/…系统传统上提供的所有设计工具。
在这种情况下,仍然需要一种用于从网格提取特征树的改进方法。
发明内容
因此,提供了一种用于从网格提取特征树的计算机实现的方法。该方法包括:
-提供网格;计算所提供的网格的几何和邻接图,其中:
--图的每个节点表示网格的一个区域,并包括该区域的图元类型和参数;
--两个节点之间的每个连接是由两个连接的节点表示的区域的各个表面之间的交集;
–基于所识别的图元类型和区域参数,针对图形的每个节点实例化表面;
-对于图的每个节点:
-计算一个外部相交环以及可能的一个或多个内部相交环,每个相交环是从连接到所述每个节点的图的节点的有序列表中获得的;
-从外部相交环计算至少一个草图,并分别从实例化表面的可能的一个或多个内部相交环计算可能的一个或多个草图;
-对每个计算出的草图应用扫掠操作,从而针对每个草图生成实体;
-计算获得的实体之间的添加或移除操作的一组可能的组合,并针对每个计算的组合获得最终的实体;
-计算每个最终实体与输入网格的相似度分数;
-基于相似度分数,识别与输入网格最相似的最终实体,所识别的最相似的最终实体的添加或移除操作的组合与网格的特征树相对应。
该方法可以包括以下一项或多项:
-计算所获得的实体之间的添加或移除操作的一组可能的组合,包括:-针对用凸形的外部相交环生成的实体使用添加操作;-针对用凹形的外部相交环生成的实体使用移除操作;-针对用凹形的内部相交环生成的实体使用添加操作;-针对用凸形的内部相交环生成的实体使用移除操作;
-计算所获得的实体之间的添加或移除操作的一组可能的组合,进一步包括:对于每个用不具有可确定的凸度或凹度的外部相交环生成的实体,使用添加和移除操作二者;
-计算所获得的实体之间的一组添加或移除操作的可能组合的集合进一步包括:-如果要被使用移除操作的实体仅与一个要被使用添加操作的单个生成的实体的面相邻,则在添加操作之后执行移除操作;-如果要被使用移除操作的实体仅与要被使用添加操作的两个或更多个生成的实体的面相邻,则在添加操作之后执行移除操作;-如果要被使用添加操作的实体仅与一个要被使用移除操作的单个生成的实体的面相邻,并且如果要被使用移除操作的实体仅与一个要被使用添加操作的单个生成的实体的面相邻或者与要被使用添加操作的两个或更多个生成的实体的面相邻,首先对在要被使用移除操作的实体上的要被使用添加操作的实体执行移除操作,然后仅对首先执行的移除结果执行移除操作。
-对每个计算出的草图应用扫掠操作,从而针对每个草图生成实体,包括:-对于每个草图,从与一个外部相交环相邻的相交环和从与草图的可能的一个或多个内部相交环相邻的相交环计算扫掠方向和扫掠长度;
–针对草图的一个外部相交环并且针对每个可能的一个或多个相交环执行扫掠方向和扫掠长度的计算,计算包括对于草图的每个相交环:
–识别相交环上的一个或多个草图点,草图点是与草图的相交环相邻的相交环所共有的点;-对于每个识别的草图点,识别作为与草图的相交环相邻的相交环所共有的点的目标点;-对于每个草图点计算将草图点连接到目标点的矢量,矢量的方向是扫掠方向,而矢量的范数是扫掠长度;
–当计算两个或更多个矢量时:-确定矢量具有相同方向,并且与草图的每个相交环相邻的相交环的表面平行于该相同方向;-应用作为挤压的扫掠操作,从而生成草图的实体;
-对于矢量的范数的每个不同值,应用扫掠操作;或者在这些值中选择最小值,并针对所选择的值应用扫掠操作;
-当计算两个或更多个矢量时:-确定矢量具有相同方向,并且与草图的每个相交环相邻的相交环的一个或多个表面不平行于该相同方向;-检测与草图的每个相交环相邻的相交环的所有表面的共同旋转轴平行于该相同方向;-估计针对每个草图点及其对应的目标点的旋转的角度;-将绕检测到的共同旋转轴旋转的扫掠操作应用到估计的角度;
-当检测共同旋转轴时:-如果与草图的相交环相邻的相交环的表面属于从圆柱、圆锥、球形和/或圆环中选择的类型的图元,则验证相邻表面是否由旋转的轴定义;-如果与草图的相交环相邻的相交环的表面属于类型平面的图元,则验证相邻表面平行于还是正交于旋转的轴。
-对于针对旋转的角度的估计每个不同的值,应用扫掠操作;或者在这些值中选择最小值,并针对所选择的值应用扫掠操作;
-针对图的每个节点,在基于区域的所识别的图元类型和参数实例化表面之后:-检测实例化的表面与任何平面都不相邻;-在网格边界之外实例化新平面;-计算实例化表面与新平面的交集,该交集在新平面上形成环;-从相交环计算至少一个草图。
还提供了一种计算机程序,其包括用于执行上述方法的指令。
还提供了一种其上记录有计算机程序的计算机可读存储介质。
还提供了一种系统,该系统包括耦合到存储器和图形用户界面的处理器,该存储器上记录有计算机程序。
在示例中,以上方法可以与用于从网格生成(或计算)结构化三维(3D)模型的计算机实现的方法组合。从网格计算(或生成)结构化三维(3D)模型的方法包括:提供包括面的网格,该网格的每个面包括法线和主曲率值,通过对离散曲率值的出现次数进行计数来计算所述主曲率值在整个网格上的分布;在计算出的分布中识别主曲率值的一个或多个主导范围;对于每个识别出的主导范围,计算网格中的包括属于识别出的主导范围的面的一个或多个区域;对于每个计算出的区域,通过使用区域的所有面的曲率值检测图元类型,并通过使用区域的网格表面来识别检测到的图元的参数。
用于从网格计算(或生成)结构化三维(3D)模型的方法可以包括以下中的一项或多项:
-建立所提供的网格的结构化的3D表示的几何图形和相邻图,其中该图的每个节点表示所计算出的区域中的一个,并且包括该区域的所识别的图元类型和参数;并且两个节点之间的每个连接是节点所表示的区域的各个表面之间的交集。
-对于每个连接,几何图形和相邻图的构建还包括:两个节点之间的每个连接是由节点表示的区域的各个表面之间的交集,两个节点之间的每个连接具有相关联的凸度、凹度和位置信息;
-在计算出的分布中识别主曲率值的一个或多个主导范围包括:在计算出的分布中确定两个连续局部最小值之间的局部最大值,并将两个连续局部最小值之间包括的面识别为属于所述一个或多个主导范围;
-当局部最大值的出现次数等于和/或大于预定值时,重复在计算出的分布中确定局部最大值以及将面识别为属于所述一个或多个主导范围,并且其中每次重复之前,丢弃先前被识别为属于所述一个或多个主导范围的面,并重新计算根据其主曲率值的面的分布;
-每个面的主曲率值包括最小曲率值和最大曲率值;计算面的分布包括:通过对离散曲率值的出现次数进行计数来计算最小曲率值在整个网格上的第一分布,以及通过对离散曲率值的出现次数进行计数来计算最大曲率值在整个网格上的第二分布;并且其中该方法的后续步骤是针对第一和第二分布执行的;
-将高斯核应用于所得分布;
-对于每个计算出的区域,应用区域增长,增长由面之间的距离引导,该距离由曲率值加权以聚合尚未分配给计算出的区域的所有面;
-区域增长包括向第一组面中的面分配相同的第一分数,第一组面包括不属于计算出的区域的面中的面,并且针对属于计算出的区域中的一个的每个面分配相同的第二分数零,第一分数大于第二分数;通过以下步骤测试第一组的每个面:对于面的每个相邻区域,基于面和相邻区域之间的距离以及面和相邻区域之间的主曲率值的差来计算第三分数;如果第三分数小于第一分数,则将第一分数设置为第三分数,并记录第三分数对应的区域;如果测试的面的邻域不属于第一组面,则将邻域添加到第一组面;如果第三分数大于第一分数,则从第一组中移除测试的面;将初始在第一组中的测试的面与它们拥有的最佳第三分数相关联的区域重新分组;
-当第二组的所有面都经过测试后,测试停止;
-在计算网格的区域之后,计算计算出的区域之间的相交环;
-在计算相交环之后,对于每个相交环:收集组成该相交环的区域的有序列表,以及针对所述相交环的每个边的凹度、凸度和位置信息;
-通过使用针对该区域的表面来识别图元的参数,包括利用这些参数的最小优化来估计检测到的图元的参数。
还提供了一种计算机程序,该计算机程序包括用于执行从网格生成结构化三维(3D)模型的方法或用于执行从网格生成结构化三维(3D)模型和从网格中提取特征树的两种方法的指令。
还提供了一种计算机可读存储介质,其上记录有计算机程序,该计算机程序用于执行从网格生成结构化三维(3D)模型的方法,或用于执行从网格生成结构化三维(3D)模型以及从网格中提取特征树的两种方法。
还提供了一种系统,该系统包括耦合到存储器和图形用户界面的处理器,该存储器在其上记录了计算机程序,该计算机程序用于执行从网格生成结构化三维(3D)模型的方法或者执行用于从网格生成结构化三维(3D)模型以及从网格提取特征树的两种方法。
附图说明
现在将通过非限制性示例并参考附图来描述本发明的实施例,其中:
图1示出了用于获得网格的结构化3D表示的方法的示例的流程图;
图2示出了系统的示例;
图3示出了根据本发明的方法与现有技术之间的比较的示例;
图4示出了原始网格的示例的屏幕截图;
图5示出了图4的原始网格的重新网格化的示例的屏幕截图;
图6示出了曲率的表示的示例;
图7和图8示出了图5的网格的主曲率的屏幕截图;
图9和图10示出了图5的网格的主曲率值分布的示例;
图11示出了图5的网格的感兴趣的曲率值范围的屏幕截图;
图12示出了图5的网格的均匀曲率的区域的屏幕截图;
图13示出了图5的网格的均匀曲率的区域的屏幕截图;
图14a和图14b是示出了区域增长之前和之后的屏幕截图;
图15a和图15b是示出了区域增长之前和之后的屏幕截图;
图16是平面实体的主曲率值分布的示例;
图17是圆柱体的主曲率值分布的示例;
图18是来自网格的结构化三维(3D)模型的表示的屏幕截图;
图19示出了根据本发明的方法的示例的流程图;
图20是交集的邻接信息和定向环的示例;
图21是从环导出的草图的示例;
图22和图23是使用顶点位置解决的歧义的示例;
图24是作为输入提供的实体的示例;
图25示出了从草图点开始的挤压距离和方向的示例;
图26示出了利用图25的距离和方向挤压的实体的示例;
图27示出了从草图点旋转角度的示例;
图28示出了使用来自图27的角度的旋转实体的示例;
图29示出了确定两个不同的挤压方向的情况的示例;
图30示出了其中针对草图构造增加附加平面的情况的示例;
图31示出了从凸度信息中添加或移除布尔操作选择的四个示例;
图32示出了基于挤压方向和凸度信息的添加或移除布尔操作;
图33至图35示出了可以在特征树中指定移除操作的位置的情况的示例。
具体实施方式
参考图19的流程图,提出了一种用于从网格提取特征树的计算机实现的方法。该方法包括提供网格,例如通过计量精确扫掠获得的原始网格。该方法还包括计算所提供的网格的几何和邻接图。在所提供网格的几何和邻接图中,每个节点表示网格的一个区域,并且每个节点包括该区域的图元类型和参数。仍然在几何和邻接图中,两个节点之间的每个连接表示由两个连接的节点表示的区域的各个表面之间的交集。该方法还包括针对图形的每个节点实例化表面。实例化基于区域的所识别的图元类型和参数。然后,该方法还包括针对图的每个节点执行以下计算:(a)计算一个外部相交环,并且计算可能的一个或多个内部相交环,一个外部相交环和可能的一个或多个内部相交环通过图的节点的有序列表获得,该图的节点连接到针对其执行第一和第二操作的当前节点;(b)从外部相交环计算至少一个草图,并且分别从实例化表面的可能的一个或多个内部相交环分别计算可能的一个或多个草图。该方法还包括将扫掠操作应用于每个计算的草图,从而针对每个草图生成实体。此外,该方法包括计算获得的实体之间的添加或移除操作的一组可能的组合,以及针对每个计算出的组合获得最终的实体。该方法还包括计算每个最终实体与输入网格的相似度分数,并基于相似度分数,识别与输入网格最相似的最终实体,所识别的最相似的最终实体的添加或移除操作的组合与网格的特征树相对应。
这种方法改善了从网格中提取特征树的能力。值得注意的是,特征树的重构依赖于在网格上执行的用于创建网格的几何和邻接图的增强分析操作的结果。这允许直接生成特征树,而无需先生成中间精确B-Rep。B-Rep构造解决方案通常很脆弱,即取决于所提供的网格的质量,它们完全成功或不能产生实体的有效的结构化表示。在本方法中,所提供的网格的计算的几何和邻接图对网格的质量较不敏感。另外,该方法实例化定向环的边以引导CAD建模器。这将产生一系列平面草图,随后将其挤压或旋转。然后,经由布尔操作将得到的特征实体组装为得到的特征树中。因此,该方法利用与初始网格的对应关系,以便区分针对计算出的草图的多个可能的相交解决方案。几何和邻接图也可用于基于实例化的草图计算挤压距离和旋转角度。凸度信息用于确定所生成的特征实体是在最终特征树中添加还是移除了物质。
因此,该方法提供了一种特征树构建器,该特征树构建器可以从通过网格分析获得的几何和邻接图中提取最相关的信息,并根据定义得出一系列操作,从而得到有效的实体。不需要将(重新)构建有效的B-Rep作为中间步骤:因此,避免了(重新)构建有效的B-Rep的已知缺点。
此外,该方法确保所有生成的实体均具有良好的定义和水密性。在通过网格分析获得的信息无法重构完整的B-Rep的情况下,这尤其有趣。不完整的网格数据、几何复杂度和噪声可能导致不正确的邻接图,从而导致利用其他方法的无效B-Rep。相反,只要可以从网格中提取足够的信息,本方法就可以生成有效的实体。通过挑选用于构造特征树的几何图形的可用部分,该方法不那么脆弱,并且可以构建有效且有意义的实体。即使这些部分不一定反映原始网格的全部细节(例如,如果提供的网格不完整),这些部分也可以用作建模操作的有效基础,并且可以扩展为可以使用传统精确CAD进行的任何用法。例如,用户仅将结果的部分用作中间步骤,并通过其参数编辑任何元素。
因此,如图3所示,图3示出了已知方法与本方法之间的区别,本方法不需要精确的B-Rep模型作为输入,精确的B-Rep模型可能难以(或不可能)计算并且需要许多计算资源(例如CPU和存储器);该方法可以将网格作为输入。此外,从草图中计算出的实体将在单遍中生成,因此与迭代解决方案相比,减少了计算资源的消耗。
该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤可以由计算机执行,可能是全自动执行,或者是半自动执行。在示例中,可以通过用户-计算机交互来执行该方法的至少一些步骤的触发。所需的用户-计算机交互级别可能取决于预见的自动级别,并与实现用户意愿的需求保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
例如,提供网格的步骤可以是对例如存储在数据库上的网格的用户选择的结果。
方法的计算机实现的典型示例是利用适用于此目的的系统来执行该方法。该系统可以包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器上记录有包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括若干物理不同部分(例如,一个用于程序,并且可能一个用于数据库)。
通过CAD系统,另外意味着至少适于基于建模对象的图形表示来设计建模对象的任何系统,例如CATIA。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。CAD系统可以例如使用边或线(在某些情况下使用面或表面)来提供CAD建模对象的表示。线、边或表面可以以各种方式表示,例如,非均匀有理B样条(NURBS)或从由LIDAR计算的一组点获得的表面。具体地,CAD文件包含可以从其生成几何形状的规范,该规范继而允许生成表示。建模对象的规范可以存储在单个CAD文件中或多个CAD文件中。表示CAD系统中建模对象的文件的典型尺寸在每个部件一兆字节的范围内。并且建模对象通常可以是数千个部件的组件。
在CAD的上下文中,建模对象通常可以是3D建模对象,例如,代表产品,例如,部件的一部分或组件,或者可能是产品的组件。“3D建模对象”是指由允许其3D表示的数据建模的任何对象。3D表示允许从所有角度观察部件。例如,3D建模的对象,当进行3D表示时,可以被围绕其任何轴、或围绕在其上显示表示的屏幕中的任何轴进行处理或转动。这尤其不包括未经3D建模的2D图标。3D表示的显示有助于设计(即,增加设计者统计地完成其任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造过程的一部分。
网格(并通过扩展生成的结构化的3D模型)可以表示在完成其虚拟设计后,使用例如CAD软件解决方案或CAD系统(诸如(例如,机械)零件或零件的组件(或等效地是零件的组件,因为从方法的角度来看,零件的组件可以看作是零件本身,或者该方法可以独立地应用于组件的每个零件),或更通用而言,任何刚体组件(例如,移动机制)在现实世界中制造的产品的集合图形。网格还可以表示在扫描产品之后在现实世界中要制造的产品的几何形状,例如,网格来自计量精确扫描,后续网格设计操作,例如使用允许网格编辑的软件执行。网格还可以表示在从机床数据文件、3D打印机文件、度量衡设备数据文件中取回网格之后,现实世界中要制造的产品的几何形状……网格还可以表示在由专用网格化软件处理过或在数字内容创建工具(可以针对3D可视化产生资产)中创作的点云之后在现实世界中要制造的产品的几何形状。
网格(并通过扩展生成的结构化的3D模型)可以表示在各种以及无限的工业领域中的产品,所述工业领域包括:航空航天、建筑、构造、消费品、高科技设备、工业装备、运输、船舶和/或海上油气生产或运输。因此,通过该方法设计的3D建模对象可以表示工业产品,该工业产品可以是任何机械零件,诸如陆地车辆(包括例如汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和共同汽车、火车)的一部分、空中飞行器(包括例如机身装备、航空航天装备、推进装备、国防产品、航空装备、太空装备)的一部分、海军车辆(包括例如海军装备、商业船舶、海上装备、游艇和作业船、船舶装备)的一部分、通用机械零件(包括例如工业制造机械、重型移动机械或装备、安装的装备、工业装备产品、金属制品、轮胎制造产品)、机电或电子零件(包括例如消费类电子产品、安全和/或控制和/或仪表产品、计算和通信装备、半导体、医疗设备和装备)、消费品(包括例如家具、家庭和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
CAD系统可以是基于历史的。在这种情况下,通过包括几何特征的历史的数据进一步定义建模对象。建模对象实际上可以由物理人(即设计者/用户)使用标准建模特征(例如,挤压、旋转、切割和/或旋转)和/或标准表面特征(例如,扫掠、混合、投掷、填充、变形和/或平滑)来设计。支持这种建模功能的许多CAD系统是基于历史的系统。这意味着设计特征的创建历史通常通过非环数据流来保存,该非环数据流通过输入和输出链接将所述几何特征链接在一起。自80年代初以来,基于历史的建模范例是众所周知的。通过两个持久数据表示来描述建模对象:历史和B-rep(即边界表示)。B-rep是历史中定义的计算结果。当表示建模对象时,在计算机屏幕上显示的部分的形状是(例如,镶嵌)B-rep。该部分的历史是设计意图。基本上,历史记录收集有关建模对象所经历的操作的信息。B-rep可以与历史一起保存,以便更容易地显示复杂的部分。历史可以与B-rep一起保存,以允许根据设计意图对部件进行设计改变。
通过PLM系统,它还意味着适于管理表示物理制造产品(或待制造产品)的建模对象的任何系统。因此,在PLM系统中,建模对象由适合于制造物理对象的数据定义。这些通常可以是尺寸值和/或公差值。为了正确制造物体,拥有这样的值确实更好。
通过CAM解决方案,它还意味着适用于管理产品的制造数据的任何解决方案、硬件软件。制造数据通常包括与要制造的产品、制造过程和所需资源有关的数据。CAM解决方案用于规划和优化产品的整个制造过程。例如,它可以向CAM用户提供关于可行性、制造过程的持续时间或可以在制造过程的特定步骤中使用的资源(诸如,特定机器人)的数量的信息;并且因此,允许决定管理或所需的投资。CAM是CAD过程和潜在CAE过程之后的后续过程。这种CAM解决方案由Dassault Systèmes以商标提供。
通过CAE解决方案,它还意味着适用于分析建模对象的物理行为的任何解决方案、硬件的软件。一种众所周知且广泛使用的CAE技术是有限元方法(FEM),其通常涉及将建模的对象划分为可以通过方程计算和模拟物理行为的元素。此类CAE解决方案由DassaultSystèmes以商标提供。另一种不断增长的CAE技术涉及复杂系统的建模和分析,复杂系统由来自不同物理领域的多个组件组成而没有CAD几何数据。CAE解决方案允许模拟,从而优化、改进和验证要制造的产品。此类CAE解决方案由Dassault Systèmes以商标提供。
PDM代表产品数据管理。PDM解决方案是指适用于管理与特定产品相关的所有类型数据的任何解决方案、硬件的软件。PDM解决方案可供参与产品的生命周期的所有参与者使用:主要是工程师,但也包括项目经理、财务人员、销售人员和买家。PDM解决方案通常基于面向产品的数据库。它允许参与者共享其产品的一致数据,并且因此防止参与者使用不同的数据。此类PDM解决方案由Dassault Systèmes以商标提供。
图2示出了用于执行该方法的系统的示例。该示例的系统包括通信地耦合到存储器(例如,随机存取存储器(RAM)1070)的中央处理单元(CPU)1010。在该示例中,CPU和存储器通过内部通信总线1000通信。客户端计算机还进一步包括图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(诸如硬盘驱动器1030)的访问。适于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备(诸如EPROM、EEPROM和闪存设备);磁盘(诸如内部硬盘和可移动磁盘);磁光盘;和CD-ROM盘1040。上述内容中的任何内容都可以通过专门设计的ASIC(专用集成电路)进行补充或合并。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,诸如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。替代地或附加地,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
该计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的单元。该程序能够记录在任何数据存储介质上,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为有形地体现在机器可读存储设备中以由可编程处理器执行的装置(例如产品)。方法步骤可以通过执行指令程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备传输数据和指令。如果需要,可以以高级过程或面向对象的编程语言或汇编或机器语言来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统结构上的应用都会生成执行该方法的指令。
“从网格中提取特征树”至少是详细阐述3D建模对象的过程的至少一部分。因此,该方法可以包括从头开始创建网格。该方法可以包括在制造过程中,该制造过程可以包括在执行该方法之后,从所生成的结构化的3D模型中产生新的3D建模对象。新的3D建模对象表示一种物理产品。在任何情况下,方法的输入中的网格和生成的结构化的3D模型都可以表示作为产品的制造对象,例如零件或零件的组件。因为该方法允许从原始网格设计建模对象,所以该方法还改善了产品的制造,从而提高了制造过程的生产率。
特征树是一个分层组织,其包含在三维(3D)实体模型上执行的实体操作的历史记录。每个实体操作都定义为实体上的特征。从草图(以及方向/长度/角度参数)创建实体的挤压/旋转操作也是特征树的特征。操作是布尔操作,例如添加操作或移除操作。用于应用布尔操作的实体通常是从草图中获得的,在该草图上应用了挤压操作。在示例中,特征树是CSG(构造实体几何)特征树。CSG建模是在实体建模中使用的众所周知的技术,包括使用布尔操作来组合简单对象以生成复杂对象。用于表示的最简单的实体对象称为具有简单形状的图元,所述简单形状例如长方体、圆柱体、棱柱、金字塔、球体、圆锥体。
如从CAD领域已知的,特征树是可编辑的数据结构,其包括表示应用到叶片几何形状的几何操作的树形布置的数据。特征树形布置的每个叶节点表示各自的叶片几何形状,并且树形布置的每个非叶节点表示要应用于其子节点的各自的几何操作,也称为“特征”。因此,将几何操作的树形布置应用于叶片几何形状就等于从叶片几何形状开始,并按照树形布置依次应用每个非叶节点的几何操作。由可编辑特征树表示的3D形状对应于可编辑特征树的根节点的结果。
叶片的几何形状可以是任何类型。叶片几何形状可以例如各自包括相应的3D形状(例如,由其组成),例如相应的3D实体。几何操作可以是任何类型。在示例中,几何操作全部是相同类型的,例如所有添加或移除操作。
叶片几何形状或几何操作的编辑可以由用户以CAD领域中已知的任何方式来执行,例如包括选择具有当前参数值的其至少一个参数以及修改所述参数值。与离散几何表示(例如原始网格)的版本相比,这种版本具有人体工程学特征。特别地,可编辑的特征树可以包括比输入网格的离散几何实体的数量低5倍(例如,更多或10倍)的叶片几何形状的数量和/或低于100(例如低于50)的叶片几何形状的数量。每个叶片几何形状可以由低于20(例如,低于10)的多个参数定义。因此,与离散几何形状表示相比,可编辑特征树以更紧凑和更有组织的方式表示3D形状。而且,如从CAD领域所知,作用于可编辑特征树的单个参数可能会呈现全局影响,而在离散几何形状表示作用于单个几何实体的情况下,则仅呈现局部影响。例如,本文中的任何可编辑特征树可被配置为通过修改小于5(例如小于3)的参数值的数量来按比例缩放(例如弯曲的,例如圆柱形的)部分或整个3D形状,与移动/增加大量的网格三角形不同。另外,与离散的几何表示相比,可编辑的特征树对用户在语义上更有意义。
参照回图19,现在讨论该方法的示例。在S100处,提供网格。已经参考图1讨论了网格的特性。网格包括使用多边形表示(包括三角形和四边形)定义3D形状或3D形状的至少一部分的顶点、边和面。3D形状表示实体。3D形状表示了各种工业领域的产品,包括但不限于航空航天、建筑、构造、消费品、高科技设备、工业装备、运输、船舶和/或海上油气生产或运输。
提供的网格的每个面都包括法线。如本领域中已知的,面的法线垂直于面的方向。在示例中,法线可以是顶点法线。
提供的网格的每个面都包括主曲率值。主曲率值测量表面在该点如何在不同方向上以不同的量弯曲。面的最大和最小曲率值称为面的主曲率值。
图6(摘自“Discrete differential geometry:an applied introduction”,K.Crane)是位于参考点(N,X1,X2)起点的表面给定点处的曲率的概括表示。轴N表示表面在所述给定点的法线,在此示例中,X1和X2是计算最小和最大曲率值的方向。
在示例中,当多边形表示不具有相似的尺寸并且很好地平衡时,所提供的网格可以是原始网格。例如,原始网格可以包括瘦三角形。更一般地,本方法在3D实体的有效表示的网格上正确地表现并产生有用的结果(即使有时是部分的),例如,3D网格可以形成没有自动相交的闭合且可定向的流形表面。该方法还可以利用未闭合的网格产生感兴趣的结果。图4示出了具有三角形作为多边形表示的原始网格的示例。这种三角形的原始网格不是特别干净,因为它具有T型结,也就是说,网格包括两个多边形沿着另一个多边形的边相遇的点。此外,没有有关法线和主曲率值的信息可用。
在示例中,该方法可以进一步包括对提供的网格重新网格化。这允许改善网格的质量,即,面具有相似的尺寸并且平衡良好,例如,没有瘦三角形。有很多可用的方法,例如对于本方法,变分方法可能倾向于产生表现良好的网格。图5示出了在图4的原始网格上执行重新网格化操作之后所得网格的示例。
另外,对原始网格进行重新网格化可以改善对主曲率值的评估。确实,可以使用诸如切线一的过程在诸如三角形网格的离散3D表示上评估曲率,并且这些过程中的大多数倾向于在面(通常为三角形)相似且平衡良好的网格上提供更好的结果。
在示例中,可以使用任何已知方法对离散几何体(重新网格化的面)上的主曲率值进行评估。可以在评估主曲率值的同时或之前或之后评估法线。
图7和图8示出了针对图5的网格识别(计算)的最大曲率值70或最小曲率值80。
假定提供的网格正确地表示了体积的边界,因此包含相对于该体积一致的方向信息。
参照回图19,计算(S110)所提供的网格的几何和邻接图。该图提供了所提供的网格的结构化3D模型的表示。该图是对提供的网格进行分析的结果,并提供了以下分析结果:
-一组节点,其中图形的每个节点表示网格的一个区域,并包括该区域的图元类型和参数;
-两个节点之间的每个连接是由两个连接的节点表示的两个区域的表面之间的交集。
网格的区域是所提供的网格的一组面。因此,区域形成网格的界定表面。图的每个节点都与图元类型相关联。图元是可以从其构建其他形状的构建块。3D建模中通常使用图元来构建3D建模对象。例如,2D多边形(例如正方形、矩形)是可以挤压以形成3D体积(例如正方形垫或矩形垫)的图元。图元可以是但不限于平面、圆柱体、球体,金字塔、圆锥、二次表面、直纹表面、圆环……一组图元可以描述一种工业产品,例如:以网格所表示的。
另外,图的每个节点包括图元的参数。图元的参数确定了可以从其实例化图元的图元的特征。例如,如本领域中已知的:
-图元平面的参数是该平面的法线和该平面上的点;
-图元球体的参数是中心和半径;
-图元圆柱体的参数是轴的方向、圆柱体的高度、圆的中心和半径;
-图元圆锥的参数是轴向、圆锥的高度、圆锥底的中心和半径;
-图元圆环的参数是方向矢量、中心、大圆的半径和小圆的半径。
因此,每个节点都与“标准”几何形状(图元)和参数相关联,可以用这些参数实例化“标准”几何形状。每个参数包括一个或多个用于实例化图元的参数值。为了简单起见,术语“参数”和“参数值”是同义词。
该图还包括两个节点或一对节点之间的连接。连接表示两个区域的各个表面之间的交集,每个区域由两个连接的节点中的一个表示。两个区域之间的交集也称为表面与表面相交(SSI),其中表面是两个区域的表面相交。当两个表面相交时,结果可能是一组孤立点、一组曲线或这些情况的任意组合。
区域与其他区域的交集界定了该区域。交集形成至少一个相交环。
术语“环”是指相交在其内部形成闭合曲线,或者两个或更多个相交在其内部形成闭合曲线。因此,区域的相交环可能是该区域与另一个区域相交的结果,例如,平面与圆柱体相交;或区域的相交环可能是该区域与两个或更多个区域相交的结果,例如,立方体的面与四个面相交。
所述区域是网格的一组面,两个区域之间的相交包括面的互连边(边的连接序列),所述互连的边都属于形成交集的区域。因此,交集是两个区域的面的共同边的多段线,因此,相交环也是包含两个或更多区域的面的共同边的多段线,该两个或更多个区域界定了该区域的表面。
每个节点的连接是有序的并且形成交集的有序列表,该交集的有序列表表示所述每个节点的相交环。因此,根据在所述给定区域的环上的行进方向,识别和排序与给定区域相交的区域。在节点包括两个或更多个相交环的事件中,则针对每个环计算连接的有序列表。
如本领域中已知的,相交环可以是外部相交环或内部相交环。因此,外部相交环和内部相交环表示每个节点的外部和内部边界,即所提供的网格的区域的边界。在示例中,对于可以展平并投影到某个位置的区域,外部环将是包含其他环的区域。
为了连接,收集表面和其相邻表面之间的交集的凸面和/或凹面并将其存储在图形中。可以对交集的每个边执行此操作。可替换地,可以针对形成交集的一组边(由形成交集的边创建的多段线)执行此操作:收集并存储全局凸度和/或凹度以用于交集。应当理解,只有凸度或凹度可以与图一起存储。
网格分析生成所提供网格的几何和邻接图。几何和邻接图提供了已识别的网格(区域)上的表面的图元类型及其参数,以及表面之间的邻接图,每个表面的内部和外部边界定向环,每个表面的每个环的相邻表面以及表面及其相邻表面之间的各个凸面。
图20是可以从图取回的相交的邻接信息和定向环的示例,所述图是在分析该立方体的网格之后获得的。如上所述,所提供的网格正确地表示了体积的边界,因此包含相对于该体积一致的方向信息。网格具有立方体的形状。每个平面与其他四个有序垂直平面相邻,并且对于每个平面,所有四个边均为凸形。为了便于分析图,相邻表面在相对于表面的物质侧的缠绕方向上排序。
现在参照图1至18,现在讨论用于计算S110所提供的网格的几何和邻接图的示例。
回到图1,计算(S20)主曲率值在整个网格上的分布。通过离散化主曲率值来计算分布,并通过对特定值的出现次数进行计数来进行分布。保持分布的每个曲率值与其对应的面之间的链接-对应的面是已获取(或计算)所述每个曲率值的面。
分布中的每个条目都包含主曲率值的值间隔内的主曲率值的出现次数。主曲率值的间隔也称为主曲率值的范围。应当理解,值的所有间隔(即,所有范围)包括网格的面的所有主曲率值。在示例中,高斯可被应用于分布以降低噪声。在实践中并且为了仅使分布的直方图可视化(例如在图9和图10上),主曲率值的间隔可以相同;另外,对于两个主曲率分布,值的离散化和分布在其上扩展的值的范围必须相同。
在示例中,范围的数量对于离散化是固定的,并且可以由用户选择。主曲率值在整个网格上累积。
在另一个示例中,可以根据针对每个范围的最大出现次数来调整范围的数量:实际上,出现次数的数量可以从一个网格到另一个网格变化很大。最后,这些精确计数相对于其他计数很重要,因为它们可用来识别主曲率值的感兴趣的范围,但是一个孤立的计数并不那么重要。范围内的出现次数可以除以网格的面数,因此针对每个范围内的出现次数可以解释为百分比。
如本领域中已知的那样进行分布的计算。
在示例中,分布的计算可以进一步包括将高斯核应用于所得的分布以消除值中的一些波动。
图9是网格的面的主曲率值的分布的示例的图示。在此示例中,分布用直方图表示。在此,主曲率值在-2.0到2.0之间,并且分布包括40个值范围。取主曲率值的符号值用于计算分布。主曲率值可以在图9的直方图中以更大范围离散化,例如100个范围。在此示例中,曲率值已被强制离散为40个范围。
参照回图1,S20,每个面的主曲率值可以包括最小曲率值和最大曲率值。因此,代替如参考图9所讨论的计算具有绝对值的分布,该计算可以包括两个分布的计算,分别是通过对离散曲率值的出现次数进行计数来计算最小曲率值在整个网格上的第一分布,以及通过对离散曲率值的出现次数进行计数来由其在整个网格上的出现次数对最大曲率值进行分类来计算最大曲率值的第二分布。
应当理解,参考通过对离散曲率值的出现次数进行计数来计算分布的通用情况的示例应用于计算第一和第二分布的示例。
图10是相同网格的两个计算分布的示例的图示;左侧的分布已针对网格的面的最小曲率值进行计算,并且右侧的分布已针对网格的面的最大曲率值进行了计算。
回到图1,在S30,该方法进一步包括在计算的分布中识别主曲率值的一个或多个主导范围。主导范围是表示出现次数大于其他范围的出现次数的范围。主导范围可能在整个分布中处于主导范围。替代地,主导范围可以是局部主导;它称为局部主导范围。局部主导范围是出现次数大于分布上给定数量的连续范围中范围的出现次数的范围。
在计算两个分布的示例中,在两个分布中的每个分布上都是识别出主导范围。
在示例中,主曲率值的主导范围的识别可以在确定分布的两个连续最小值之间的分布的最大值之后执行。根据数学定义,“局部最大值”和“局部最小值”是局部极值。“成功的局部最小值”表示两个局部最小值之间没有其他局部最小值。包括在两个局部最小值之间的范围(因此包括局部最大值)形成了主导范围。因此,具有包括在两个连续的局部极小值之间的曲率值离散的面属于主导范围,并且属于两个连续的局部极小值的面不属于主导范围。属于两个连续局部极小值的面最有可能属于或接近图元的边,而属于已识别主导范围的面最有可能形成图元。
现在参照图10,示出了从局部最大值和两个连续的局部最小值识别主曲率值的主导范围的示例。深灰色表示的范围是局部最大值。现在讨论该图的右侧部分,该右侧部分对应于网格的面的最大曲率值的分布。已识别出局部最大值1200。该局部最大值被两个局部最小值1210、1212围绕,这两个局部最小值是连续的局部最小值,因为在1210和1212之间的范围内不包括其他局部最小值。矩形1220覆盖形成所识别的主导范围的范围。应当理解,在图10的右侧部分可以识别出另外三个主导范围。现在讨论该图的左侧部分,该部分对应于网格的面的最小曲率值的分布。已经识别出两个连续的局部最大值1230、1332。它们作为被两个连续的局部最小值的局部最小值1240、1242围绕。有趣地,范围1240是空的,因为没有面具有被该范围覆盖的最小曲率值。空范围1240是局部最小值,此外它是分布的最后范围;由于这些原因,将其表示为属于主导范围1250。应当理解,如果范围1240将位于两个局部最大值之间,则不会将其表示为属于已识别的主导范围。
在示例中,在不迭代的情况下执行对分布上的一个或多个主导范围的识别,即,在分布中的行中识别所有主导范围。因此,用于识别主导范围的计算成本较低。在存在两个分布的示例中,对行中的两个分布类似地执行识别。
在示例中,重复在确定位于分布的两个连续局部最小值之间的分布的局部最大值之后执行的对分布上的一个或多个主导范围的识别,同时针对局部最大值的出现次数等于和//或高于预定值,例如预定值可以是等于1的出现次数。图元类型(例如,平面、圆柱体、直纹表面等)的类型受到限制,迭代次数不必超过图元的类型的数量。在每次重复之前,将先前识别为属于主导范围的面丢弃,并重新计算分布。因此,前者识别的分布的两个连续局部最小值属于新分布。可替代地,可以在一行中识别所有主导范围。感兴趣的是,以前的局部最小值可能会导致新近识别的主导范围。这意味着先前被认为具有可能属于图元或接近图元的边的面,在下一个新的主导范围的识别中可能成为图元的一部分。新分布可以包括相同数量的范围。每个主导范围的识别允许导出感兴趣的值范围,其中各个面是可能与感兴趣的图元相关联的表面的一部分。实际上,所识别的主导值的范围允许确定每个面是否是主导图元类型的面。显然,可以对在第一遍期间已丢弃的其余构面(即那些不属于先前识别的主导范围的构面)重复该过程,从而导致值的其他分布,识别与另一个图元类型相关联的面,等等。在存在两种分布(一种用于最小曲率值,而一种用于最大曲率值)的示例中,该迭代识别类似地在两种分布上执行,例如,伴随地。
因此,确定主导范围允许识别网格的可能属于或接近图元的表面的边的第一组面,以及第二组面(针对每个主导范围一组面),其中每一组将形成主导图元类型的区域。
值得注意的是,根据本发明的方法与已知的现有技术(例如,之前讨论过的Bénière等人的方法)不同。在已知的现有技术中,子网格被迭代地处理,直到到达可以识别或知道如何处理每个部分的点。相反,当通过不考虑与图元类型相关联的主导范围之外的区域来实现类似于破坏的操作时,可以提前停止该方法。如本领域所公知的,破坏表示从CAD模型中移除非必要的细节。
图11是示出来自图5连同直方图的网格的最大曲率的屏幕截图-在调试窗口110中-示出最小和最大曲率值的分布以及已建立的值的范围。
回到图1,针对每个识别出的主导范围计算(S40)网格的一个或多个区域。因此,每个计算区域包括属于对应的识别出的主导范围的面。因此,网格的区域是所提供的网格的一组面。
因此,一旦识别出曲率值的一个或多个感兴趣的范围,就在方法的一次迭代中基于这些面是这些主导范围中的一部分对它们进行分类。图12是作为图5的网格上个的结果S40获得的均匀曲率的区域的屏幕截图。区域122、123、124可能与特定的原始表面类型120匹配。区域125、127、128和129与另一图元表面类型(此处为圆柱体)匹配。这些区域都是杆126的图元表面的所有部分,但是在该方法的该步骤,它们被视为分离的区域。还要注意的是,图12所示的大多数区域都与它们的邻域之间没有清晰的交集,例如在122-123和123-124之间。
在示例中,在每个计算区域上应用区域增长以聚合尚未分配给计算区域中的一个的面。尚未分配给计算区域的面是先前未归因于已识别主导范围中的一个的面。区域增长可以连续应用于每个区域,或者同时应用于两个或更多个或所有计算区域。区域增长可改善网格区域之间的交集的质量:实际上,区域增长旨在聚合所有尚未分配给计算区域的面。这些面通常是未被识别为属于主导区域的面。区域增长有助于创建相互接触的区域。
在示例中,区域增长(应用于每个计算区域)由面之间的距离引导。要考虑的距离是该区域的一个面与未分配的面之间的距离。该距离可以使用任何已知的方法(例如,欧几里得距离)来计算。从该区域的三角形到未分配的三角形的多个跳变可以用作距离的估计,例如,表面上的距离。要注意的是,当网格的面很好地详细描述时(例如,由于重新网格化),跳变的次数是测地距离的近似值(甚至非常粗糙)。因此,可以使用测地距离或类似的距离,并且比例如面中心之间的欧几里得距离更好。
在示例中,区域增长的距离通过曲率值之间的差异加权(也可以说是调制的)。使用曲率值之间的差异来引导增长允许最大化正在增长的区域与其他区域的相关交集的数量。此外,用曲率值引导增长允许在更可能是同一图元表面的一部分的区域中增长更快。
在示例中,距离值由常数和曲率值之间的差线性加权。这提高了区域增长的效率。
在区域增长的这些示例中,针对未分配的面计算分数。因此,根据这些示例,可以基于面之间的距离或基于由曲率值之间的差加权的距离,或者基于由常数线性加权的距离和两个曲率值之间的差来计算分数。当到达可能已经与另一个图元相关联的未分配面时,将当前扩展的新分数与记录的分数和获胜的最佳分数进行比较。如果是前一个分数获胜,则通过此构面的扩展停止。如果相反,新分数获胜,则意味着接触该构面的所有构面(除了那个构面,我们来自于新分数)都可能比以前有更好的分数,因此我们将相同的过程扩展到这些邻域...等等。如果已经相关联的面与新区域相关联,则将再次评估此已相关联的面的所有邻域(相关联的面除外)。该机制与Dijkstra或A*有一些相似之处,只是该机制不会尝试达到特定的目标,并且不受启发式方法的指导向该目标。
现在讨论增长区域算法的详细示例。区域增长受到距离的引导,该距离由常数和曲率值之间的差线性加权。
尽管原理是上述原理,但在实现级别上,算法以如下方式工作,所述方式与简化实现的方式类似。面检查邻域的值是多少。
该过程如下启动。将相同的第一分数(相同的任意大分数)分配给第一组面的面,第一组面包括不属于任何计算区域的面。另外,针对属于计算区域中的一个的每个面分配相同的第二分数零。第一分数大于第二分数。否则,为了启动该过程,以零成本初始化区域中的所有三角形,并将它们作为其一部分的区域记录为给予它们该零分数的区域。不作为区域的的一部分的所有面(例如三角形)的分数都将无限高,并且在这些面上将“无区域”区域记录为给出该分数的区域。
然后测试第一组的每个面(尚未成为区域的一部分且必须进行处理的面)。即,将未分配给区域的所有面放入要处理的面的队列中。
对于要处理的每个面(或要测试的面),都会检查面的邻域以查看可以通过的分数。面的邻域是共享边的面。因此,对于面的每个相邻区域,基于面与相邻区域之间的距离以及面与相邻区域之间的主曲率值的差来计算第三分数。
如果没有更好的分数(也就是说,如果第三分数大于第一分数),则针对测试的面停止该过程,并将测试的面放入已处理的面的列表中。也记录分数对应的区域。可替代地,当已经确定在针对测试的面的计算分数中的最佳分数时,将记录分数对应的区域。
如果分数等于已分配的分数,则过程停止。将经过测试的面放在已经处理过的面列表中。也记录分数对应的区域。可替代地,当已经确定在针对测试的面的计算分数中的最佳分数时,将记录分数对应的区域。
如果存在更好的分数(即,如果第三分数小于当前分数),则将测试的面从第一组(尚未作为区域的一部分且必须进行处理的面)中移除,过程会记录更好的分数(即过程会记录更好的分数,该更好的分数成为新的当前面分数),以及关于测试的面的该分数的区域,然后将测试的面的所有邻域面(除了赋予新分数的面)放回到要处理的面的队列中。如果最终邻域面是已处理面的列表,则将其从已处理面的列表中移除。
并且,当要处理的面的列表为空时,最初在第一组中的测试的面利用与其具有的最佳第三分数相关联的区域进行重新分组。
该过程将像Dijkstra一样收敛,并确保未分配给区域的每个面都将记录其最佳的“邻近度”分数以及相关联的区域。
区域增长可以总结如下。
针对每个“边”三角形(未分配给区域的)初始化任意大的分数,并在此时指定它不与任何区域相关联。
用分数零初始化已经与图元相关联的所有非“边”三角形,并将它们与它们已经作为其一部分的的图元相关联。
将所有“边”三角形放入要处理的三角形集合中
虽然要处理的三角形集合不为空:
从该集合中获取三角形
如果三角形已在已处理列表中:
继续要处理的三角形集合中的下一个三角形
对于该三角形的每个邻域:
使用以下公式计算该三角形可能的新分数,就好像我们来自该邻域一样,新分数是将与面的当前最佳分数进行检查的值):
新分数=邻域分数+1+常数聚合因子*(A+B)
其中
constant_curvature_factor是恒定曲率因子;
A是所选择的面的最大曲率值与相邻区域的面的最大曲率值之间的差的绝对值;
B是所选择的面的最小曲率值与相邻区域的面的最小曲率值之间的差的绝对值。
如果该新分数低于该三角形当前分数:
设定新分数
将三角形与邻域相关联的形状相关联
记录我们使用过的邻域
如果该三角形分数值得到了改善(通过特定的邻域):
将所有该三角形邻域(但具有改进的分数的特定三角形邻域除外)放回到要处理的三角形列表中,并将其从已处理的列表中移除,
将该三角形添加到已处理的列表中。
值得提醒的是,该算法是在识别出主曲率值的一个或多个主导范围之后应用的(S30)。因此,该算法在输入中具有一个或多个第二组(针对每个主导范围的一组面),其中每一组将形成主导图元类型的区域,而第一组面包括可能属于的面或靠近区域的边的面。
当第二组面为空时,即当所有面都与网格的计算区域中的一个相关联时,上述测试停止。图13表示在应用区域增长后获得的图12的网格。可以注意到,每个区域现在都有由面的互连边定义的边;因此,区域的边是界定区域表面的多段线。
图14a(分别是图15a)是具有在增长区域之前的区域的网格的屏幕截图。图14b(分别是图15b)是在应用区域增长之后的图14a(分别是图15b)的网格的屏幕截图。
参考回到图1,针对每个计算区域检测图元类型(S50)。图元是可以从其构建其他形状的构造块。在3D建模中通常使用图元来构建3D建模对象。例如,2D多边形(例如正方形、矩形)是可以积压以形成3D体积(例如正方形垫或矩形垫)的图元。图元可以是但不限于平面、圆柱、球体、金字塔、圆锥、二次表面、直纹表面、圆环……一组图元允许描述一种工业产品,例如:以网格表示的那个。
图元类型的检测(也可以说是计算)依赖于该区域的面的曲率值。如本领域中已知的那样,通过使用区域的面的曲率值来检测图元的类型。图16示出了作为类型平面的图元的区域的面的主曲率值的分布。图17示出了作为类型圆柱体的图元的区域的面的主曲率值的分布。图16和图17的分可以是相应类型的图元的模板,并且模板与区域的分布的比较允许识别该区域的图元。
对于每个检测到的图元,使用区域的表面(也就是与该区域相关联的网格的三角形)基于图元类型来计算检测到的图元的参数,并且可以对参数应用最小二乘优化算法。图元的参数确定了可以从其实例化图元的图元的特征。例如,如本领域中已知的:
–图元平面的参数是该平面的法线和该平面上的点;
-图元球体的参数是中心和半径;
-图元圆柱体的参数是轴的方向、圆柱体的高度、底圆的中心和半径;
-图元圆锥的参数是轴向、圆锥的高度、圆锥底的中心和半径;
-图元圆环的参数是方向矢量、中心、大圆的半径和小圆的半径。
如本领域中已知的,执行图元的参数的检测。使用区域的表面(即直接形成网格)来计算参数。在示例中,通过利用最小二乘优化估计参数来执行参数的识别。优化参数的值,以便可以从它们实例化的确切表面最多粘附到该表面所表示的网格部分。每个参数包括用于实例化图元的一个或多个参数值。为了简单起见,术语“参数”和“参数值”是同义词。
在示例中,并且在计算网格的区域之后,使用网格的三角形的邻接来计算区域之间的相交环。两个区域之间的交集也称为表面对表面相交(SSI),其中表面是两个区域的交集。当两个表面相交时,结果可能是一组孤立点、一组曲线或这些情况的任意组合。
区域之间的相交环形成区域表面的边界。术语“环”是指交集在其内部形成闭合曲线,或者两个或更多个交集在其内部形成闭合曲线。因此,针对区域的相交环可能是该区域与其他区域相交的结果,例如,平面与圆柱体相交;针对区域的相交环可能是该区域与两个或更多个区域相交的结果,例如,立方体的一个面与四个面相交。所述区域是网格的一组面,两个区域之间的交集包括面的互连边(边的连接序列),所述互连的边都属于形成交集的区域。因此,交集是两个区域的面的共同边的多段线,因此,相交环也是包括界定了该区域的表面的两个或更多区域的面的共同边的多段线。
在示例中,在识别出区域与其他区域的所有交集之后,针对每个区域执行相交环的计算。因此,从该区域与其他区域的所有交集创建相交环。如本领域所公知的,当完成相交环的计算时,构建该区域的面的边的多段线。
在示例中,在计算相交环之后,并且对于每个相交环,收集属于相交环的区域的有序列表。换句话说,根据在所述给定区域的环上的行进方向,识别和排序与给定区域接触的区域。交集的有序列表表示邻接图和几何图的节点的相交环。在该区域包含两个或更多个相交环,因此该节点需要包含多个交集的事件中,则在列表中向它们提供包含其他交集的第一交集(圆柱的选择是任意的)。
在示例中,收集相交环的每个边的凹度、凸度和位置信息。如本领域中已知的那样执行对凹度、凸度的计算。在示例中,一旦各个区域彼此接触,就针对每个区域收集外部相交环和内部相交环。使用谓词关于针对每个三角形所评估的相同旋转顺序来收集这些交集,以处理可能由浮点算术引起的潜在数字问题。Jonathan Richard Shewchuk在“RobustAdaptive Floating-Point Geometric Predicates”,in Symposium on ComputationalGeometry 1996,pages 141-150中讨论了这样的集合。在收集交集的同时,计算并记录针对该区域的面的每个边的凹度、凸度信息,并且还记录与环部分相关联的顶点。可替代地,可以记录形成相交环的边而不是顶点。相交环的每个边的凹度、凸度和位置信息可以存储在与边相关的两个节点之间的连接上。
在示例中,收集形成两个区域之间的交集的边的凹度、凸度和位置。该凹度、凸度和位置不再是每个边的凹度、凸度和位置,而是收集由形成两个区域之间的交集的边创建的多段线的整体凹度、凸度和位置。然后将它们合并以与交集相关联,使得可以获得针对两个区域之间的每个邻接/交集的凹度、凸度。
如本领域中已知的,相交环可以是外部相交环或内部相交环。因此,外部相交环和内部相交环表示每个节点的外部和内部边界,即所提供网格的区域边界。在示例中,对于可以展平并投影到某个位置的区域,外部环将是包含其他环的区域。
内部相交环和外部相交环的示例在对象180的网格的图2的图片(屏幕截图)上表示。已经计算了几个区域(例如1800、1820、1810、1830、1840…)。区域1800将被识别为类型平面的图元。区域1800与将被识别为类型圆柱体的图元的区域18010以及四个区域接触(在该图中只能看到四个区域中的两个1830、1840)。已经在区域1800和区域1810之间计算了相交环1802。已经在区域1800和四个区域之间计算了另一个相交环1804。更精确地,相交环1804包括区域1800和四个区域(例如1830、1840)之间的四个交集。相交环1802界定区域1800并且是外部相交环。由相交环1804限定的表面是空的(也就是说,相交环1804不限定网格的任何面,或者区域1800的任何面都不在由相交环1804限定的界定表面中),因此相交环1804是内部相交环交集。环1802也是区域1810的外部相交环。区域1810和区域1820之间的相交环1822(将被识别为圆柱体图元)是区域1810的内部相交环,而它是区域1810的外部相交环。类似地,区域1820和区域1840之间的相交环1824(将被识别为类型平面的图元)是区域1820的外部相交环,而它是区域1840的内部相交环。应当理解,该选择对于圆柱体是任意的,因为在圆柱体的另一侧上存在等效环。因此,在构建CSG树时,可能会尝试几种组合。
收集定向的相交环,将其标记为内部或外部环,保持每个交集的凸度信息和相交边的位置,允许直接利用此信息,例如以生成精确的实体特征树而无需构建完整的精确B-Rep表示。同样,在网格分析提供的信息无法重构完整的B-Rep的情况下,这尤其是感兴趣的。因此,本发明更加鲁棒。即使所获得的结果可能不能反映图元网格的全部细节,它也可以用作建模操作的基础,并且可以扩展到利用传统精确CAD模型的任何用法。例如,用户可以使用从网格生成的结构化三维(3D)模型的一部分用作中间步骤,并通过其参数编辑任何元素。
回到图1,构建所提供的网格的几何和邻接图(S60)。该图提供了步骤S10至S50的输出的结构化表示,并因此提供了利用这些步骤生成的网格的结构化3D模型的表示。该图包括节点和节点之间的连接。图的每个节点表示计算区域中的一个(S40),并与针对此区域识别的图元类型和针对此区域识别的参数相关联。两个节点之间的每个连接表示由节点表示的区域的各个表面之间的交集。
图18的屏幕截图提供了显示使用步骤S10至S50的输出生成的对象180的网格的结构化3D模型的表示的示例。节点“face_16”表示区域1800,并且与区域1800(平面)的图元类型和图元的参数相关联。如已经讨论的,区域1800与五个区域接触。区域1810由节点“face_15”表示,四个区域(例如1830、1840…)由节点“face_16”、“face_17”、“face_18”、“face_19”表示。显示五个连接,用于表示交集1802的节点“face_16”和节点“face_15”之间的一个连接,以及表示形成相交环1804的交集的节点“face_16”和节点“face_15”之间的一个连接(分别为“face_17”、“face_18”、“face_19”)。
在示例中,将先前收集的进一步收集的信息(例如交集、形成相交环的区域的有序列表)、针对与环部分相关联的面和/或顶点的每个边的凹度以及凸度信息与几何形状和邻接图一起记录。“一起记录”是指可以访问此信息或将其与节点或连接相关联。例如,现在参考图18,可以将形成相交环1804的四个区域的有序列表与节点“face_16”,或节点“face_16”和节点“face_15”、“face_17”、“face_18”、“face_19”之间的连接可以按照列表进行排名。
在这些示例中,已经针对处理了网格的完整表面的情况,示出生成。值得一提的是,表示并不一定是完整的,也就是说,生成只能覆盖网格的一部分。尽管生成的结构化3D模型并未完全反映出图元网格的所有细节,但生成的结构化3D模型仍然有用。
回到图19,在S120和S130处,针对图的每个节点计算草图。草图的计算依赖于从图中识别出的平面环。现在讨论节点草图的计算的示例。
对于图的每个节点,基于该节点所表示的区域的所识别的图元类型和参数来实例化表面(S120)。如本领域中已知的例如通过CAD系统lai执行该操作。
然后,对于每个实例化的表面,计算一个或多个相交环(S132)。从先前计算的几何和邻接图(S110)执行计算,该几何和邻接图包括针对节点的每个环计算的连接的有序列表。交集的有序列表提供了用于互连计算的交集的信息,从而形成相交环。可以理解,在S132处计算出的交集和相交环与网格的分析(S10至S60)期间获得的交集和相交环不同,因为它们是与从其可以推断出它们的网格的区域不一定相同的图元开始构建的:实际上,图的大多数图元都是网格的近似值。因此,所计算的交集和相交环(S132)可以不同于在网格的分析期间识别出的交集和相交环,作为S132的结果,网格中识别出的闭环不再闭合。但是,由于该图提供了有关每个表面的每个环的相邻表面以及表面与其相邻表面之间的相应凸度的信息,因此可以闭合实例化表面的未闭合的相交环。
每个实例化的表面都包括一个外部相交环。另外,实例化的表面可以包括一个或多个内部相交环。针对外部相交环和内部相交环的计算方法相同地执行。
对于圆形草图(即,草图平面仅具有一个相邻的表面,该表面是圆柱、圆锥或球体)的情况,这足以生成草图。
在所有其他情况下,可以从实例化表面与其相邻的实例化表面之间的交集计算几个环。
这例如在图22中示出,图22示出了具有实例化平面的四个面(220、221、222、223)和两个圆柱体(224、225)的交集。在该示例中,连接的有序列表不足以识别由交集形成的单个环。图23示出了可以从图22的情况得出的所有解决方案。所有这些可能性都可以从以下图中计算得出:该图提供了表面之间的邻接性、每个表面的每个环的相邻表面、表面与其相邻表面之间的相应凸度以及每个表面的内部和外部边界定向环。
当可以定义交集的互连的几种组合时,可以执行以下步骤,以便生成最接近在网格上检测到的环的草图。
首先,计算连接的曲线的一组端点。可以理解,端点是在顺序列表中连续的两个交集(在实例化表面上)之间计算的。这些端点中的每一个都由三个表面的交集定义,即所述三个表面为草图平面和两个相邻的表面,这两个相邻的表面有助于定义草图中的两个相连的相交曲线。
在图22中,交集220根据图的有序交集的列表与交集224相交。交集220和224可以与两个端点2200和2210互连。具有两个端点2220和2230的曲线224和221也会发生类似情况。
其次,为了确定最佳解决方案,即,为了生成最接近在网格上检测到的环的草图,选择最接近网格顶点并属于三个表面的端点。针对属于三个表面的环的每个点执行这种选择。
回到图22,针对三个实例化表面的相同交集,获得端点2200和2210,并且选择端点2200,因为它最接近所提供的网格。这在图24中示出,图24示出了与图22相关的网格。仅为了清楚起见,参考图22在图24中进行了报告。
一旦测试并选择了端点,就获得了交集的最佳互连组合,这是生成最接近在网格上检测到的环的草图的组合。
在示例中,在已经测试并选择了端点之后,可以执行选择使用相交曲线的哪个弧度(除非它是两个平面之间的相交线)。这是通过计算圆弧的中点并将其与在网格上找到的相交曲线的所有内部点进行比较来完成的。
接下来,使用外部相交环从实例化的表面计算草图(S134),并分别从实例化表面的可能一个或多个内部相交环计算可能的一个或多个草图。术语“草图”是指2D平面,用于在2D平面积压之后构建3D体积。2D平面由一组互连曲线定界,其中互连曲线是形成环的计算出的交集。图21示出了草图的示例。
S130的输出是一组草图。
回到图19,将扫掠操作应用于每个计算出的草图(S140)。将针对每个草图生成扫掠体积或实体。
在示例中,扫掠操作可以包括计算扫掠方向和扫掠长度。如本领域中已知的,扫掠方向和扫掠长度定义了草图在3D场景中每个点的位移。可以从与外部相交环相邻的相交环计算扫掠方向和扫掠长度。在草图包括一个或多个内部相交环的事件中,则可以从与草图的内部相交环相邻的相交环计算扫掠方向和扫掠长度。
现在讨论扫掠方向和扫掠长度的计算的示例。
在示例中,针对每个草图和针对草图的每个相交环执行计算。结合图25讨论该示例,图25示出了扫掠方向和扫掠长度的计算的原理。
首先,在相交环上识别一个或多个草图点。草图点是保留的先前端点。因此,草图点是与草图的相交环相邻的相交环共有的点。在图25中,草图点2240连接曲线223和220,每个曲线支持相邻环到草图的相交环以进行积压。
其次,针对每个草图点识别目标点。目标点是与草图的相交环相邻的相交环共有的点。可能有一个以上的共同点(当前的草图点除外),在这种情况下,可以从草图点中选择最接近的一个,也可以从草图点中选择另一个,或者可以计算所有可能的长度。在图25中,目标点2242是由曲线223和220支持的两个相邻的相交环所共有的点。应当理解,一个草图点与一个目标点相关联。
第三,针对每个草图点计算矢量。矢量将草图点连接到目标点。矢量具有方向和范数。矢量的方向是扫掠操作的方向,而矢量的范数是扫掠长度。
因此,作为这些步骤的结果,获得了每个草图点的单个位移,由于针对每个草图点计算了矢量。应当理解,在仅计算一个矢量的情况下,例如,该草图是平面与圆柱体相交的结果。应当理解,对于环的一组草图点,仅可以计算一个矢量。同样,针对其计算矢量的草图点的数量可能小于环上草图点的总数。
在示例中,可以针对已经计算了两个或更多个矢量的情况来计算全局扫掠方向和全局扫掠长度。在这里,全局表示对相交环的每个点应用相同的扫掠方向和扫掠长度。因此,挤压被更均匀地限定。在该示例中,比较矢量以确定它们是否具有相同方向。在这种情况下,这意味着已找到唯一的挤压方向。矢量的比较还允许确定与草图的当前测试的相交环相邻的相交环的表面是否平行于该相同方向。这样可以确保挤压将生成表面。如果是这种情况,并且两个确定是累加的,则根据矢量的唯一全局方向来应用扫掠操作。
在示例中,没有确定全局扫掠长度,因此针对每个草图点应用的扫掠长度就是与其矢量相关联的长度。
在示例中,可以对矢量执行进一步的测试,以便计算挤压的全局长度。在示例中,识别矢量范数中的最小值并将其用作挤压的全局长度。在另一个示例中,识别矢量范数中的最大值并将其用作挤压的全局长度。在另一示例中,计算矢量范数的平均值,并将其用作挤压的全局长度。
图26示出了由于图25的草图的挤压而获得的实体。
现在讨论全局扫掠方向和全局扫掠长度的计算的另一示例。在此示例中,针对每个草图以及针对草图的每个相交环执行计算。结合图27讨论该示例,图27示出了扫掠方向和扫掠长度的计算原理。
在该示例中,在识别草图和目标点之后计算矢量,将这些矢量进行比较,以便确定与草图的每个相交环相邻的相交环的表面是否平行于矢量的相同方向。如果测试失败,也就是说,如果草图中当前测试的相交环的相邻表面不平行于该相同方向,则检测与所有相邻表面(与草图的当前测试的相交环相邻的相交环的表面)一致的共同旋转轴。
共同旋转轴的检测可以包括确定与草图的相交环相邻的相交环的表面是否属于在圆柱体、圆锥体、球体和/或圆环中选择的类型的图元。如果已经验证相邻的表面是图元(例如,圆柱体、圆锥、球体和/或圆环)的表面,则检查是否用相同的旋转轴定义了这些相邻的表面。如果是这样,则执行进一步的确定:如果与草图的相交环相邻的相交环的表面(相邻表面)属于类型平面的图元,则检查相邻表面与旋转轴正交。如果也是这种情况,则通过使草图围绕检测到的轴旋转来满足从草图生成实体的条件。然后,针对每个草图点及其对应的目标点估计旋转角度。如本领域中已知的那样执行该估计。从共同的旋转轴和估计的角度,可以应用扫掠操作。
在图27中,由曲线圆柱体220支持的相邻表面已从类型圆柱体的图元实例化。该相邻表面平行于旋转轴线270。对于与实例化平面形成相交曲线225的圆环而言也是如此。相邻平面223垂直于旋转轴线270。
图28示出了由于图27的草图的挤压而获得的实体。
在示例中,无法确定全局旋转角度,因此,针对每个草图点应用的旋转角度就是与其矢量相关联的旋转角度。可替代地,矢量的旋转角之中的最小值可以用作全局旋转角。在另一个示例中,识别矢量范数中的最大值并将其用作挤压的全局长度。在另一示例中,计算旋转角的平均值并将其用作全局旋转角。
已经讨论了扫掠方向和扫掠长度的计算的示例。这些示例可以应用于外环和内环。扫掠操作的计算可以针对每个相交环单独地并且独立地执行。
这些扫掠操作的示例主要依赖于对共享共同相交的实例化表面之间的几何关系和相邻关系的分析。在计算清扫操作的特定示例中,生成了所有可能的实体(例如,对于不同的挤压方向),如图29所示。在识别出几个扫掠长度或旋转角度的事件中,则可以使用此特定示例。在生成所有可能的实体之后,将这些实体与所提供的网格进行比较,例如,通过使用每个实体与输入网格的局部部分的相似度分数来进行比较。保留最适合局部网格的实体,即与网格具有最小距离的实体。在图29的示例中,移除了挤压件292并且保持了挤压件290。
在扫掠操作的另一个特定示例中,可以检测到多次挤压导致产生等效的实体。等效实体是具有相同或几乎相同的几何形状的实体。例如,在一个长方体上有六个不同的草图的六个不同的挤压,但是所有这些都导致相同的形状。在生成所有可能的实体的情况下,可以检测到等效的实体。如果针对从具有至少一个共同交集的草图获得的实体执行生成的实体的比较,则也可以检测到等效的实体。当识别出等效的实体时,仅保留其中的一个。如果有多于一个单个实体局部地最适合输入网格(例如,在长方体的情况下),并且确定它们是否相同,则选择一个实体,其最小化用于整个特征树的不同草图平面的全局数量。这有助于限制特征树的扩展大小。
在另一特定示例中,在某些情况下,无法在输入网格上检测到的平面上生成草图。例如,当实例化的表面不与任何平面相邻时,就是这种情况。图30示出了这种情况的示例,其中网格是圆柱体300a或300b,其包括具有圆柱体310a和310b的形状的腔。腔可在圆柱体300a中形成通孔或在圆柱体300b中形成开放孔。为了解释附图,腔由圆柱体310a、310b表示,应理解,这些圆柱体不在网格中呈现。腔由网格的几何和邻接图中的一个节点表示;但是,无法从提供的网格派生出可用于生成腔的草图的平面。
为了解决这种情况,可以创建生成这些草图所需要的一个或多个其他平面。可以在实例化图形的每个节点之后执行检测。
实例化的新平面可以位于网格边界之外,以便确保要创建的拉伸/旋转足够大。新平面可以垂直于实例化的表面定向,使得实例化的表面与相邻表面的交集的新平面上的投影表示隐式存在于网格中(但不由网格的面表示)的图元。
在图30上,对于每个圆柱体300a、300b,已经在网格的边界之外添加了附加平面(在网格和添加的平面之间没有交集)。更精确地,针对圆柱体的每个相交环添加一个新平面,对于该相交环,不能从提供的网格得出任何平面,提供的网格可用于生成实例化的表面的草图。在图30中,针对两个圆柱体300a增加了两个平面,因为两个交集320a、322a可以从图中得出。即使当腔体打开时只有一个交集,也针对圆柱体300b添加两个平面。在彼此前面添加两个平面可以允许提高网格的更复杂几何形状的覆盖范围。所添加的平面垂直于实例化的表面310a,310b;并且这增加了获得有效实体的机会,该有效实体将接近提供的网格的几何形状。
放置新平面后,计算在实例化的表面和新平面之间的交集。交集可以形成相交环,也可以不形成相交环。在后一种情况下,交集是闭合的,以形成环。可以完成交集的闭合,使得相交环具有已知图元的形状。在图30中,在圆柱体300b的两个平面上的交集没有闭合;在此示例中,相交环闭合以保持规则的弯曲形状。
接下来,根据相交环计算草图。如已经讨论的那样执行。
已经讨论了草图生成的示例。但是,在某些情况下无法生成草图。例如,当与草图的当前测试的相交环相邻的相交环的表面不平行于矢量的相同方向时,则无法生成实体。同样,如果不满足通过围绕检测轴旋转草图的方式从草图生成实体的条件,则不会生成实体。在这种情况下,可以计算出通用实体,该通用实体可以在以后的阶段由设计人员手动定义。
回到图19,计算获得的实体之间的添加或移除操作的一组可能的组合(S150)。对于每个计算的组合,都将获得最终的实体。这里的添加和移除操作是指布尔操作。添加操作意味着针对草图计算的实体表示最终实体中的物质,而移除操作意味着针对草图计算的实体表示没有物质的体积。
在示例中,该组可能的组合可以包括所有可能的组合。因此,计算所有组合。
在示例中,图的凸度信息用于减少添加和移除操作的组合数量。另外,将凸度信息的知识与从中计算出实体的草图的相交环是内部相交环还是外部相交环的知识一起使用。这两条信息使得可以确定体积物质位于草图平面的哪一侧。将此方向与较早获得的挤压方向(或与此有关的草图旋转方向)进行比较,可以确定实体是添加还是移除了物质。
现在参考图31,现在讨论用于确定实体对添加或移除操作有贡献的规则。当利用是外凸的外部相交环生成实体时,则生成的实体会添加物质,即生成的实体将用于添加布尔操作。如果利用是凹形的外部相交环生成实体时,则生成的实体将用于移除布尔操作。当利用是凹形的内部相交环生成实体时,生成的实体将用于添加布尔操作。而且,当利用是外凸的内部相交环生成实体时,则生成的实体将用于移除布尔操作。
与计算所有组合的详尽解决方案相比,这些规则的使用大大减少了要计算的集合的组合数量。因此,有助于减少用于在S150期间执行的计算资源的使用。
在示例中,可以不确定外部或内部相交环的整体凸度(或相反地,相交环的整体凹度)。在这种情况下,先前讨论的规则将不适用。在无法确定相交环的凸度、凹度的情况下,添加和移除布尔操作都将用于从相交环生成的实体。
由于并非所有草图都是从可以确定整体凸度的环生成的,因此计算了两个实体,一个必须移除,另一个将添加。如已经参考图29所讨论的,这些情况是已经确定了不同的挤压方向的情况。感兴趣的是,与输入网格的比较使得仅保留两个实体中的一个成为可能。
在示例中,对图形进行分析以确定实体之间的操作顺序,从而减少该组的组合数量。该分析基于以下假设:由于添加操作是相关联的和可交换的,因此可以按任意顺序添加添加物质的实体(即,生成的实体用于添加布尔操作)。但是,如果检测到必须移除的实体(该实体用于移除布尔操作),则布尔操作的顺序将不再是任意的,必须谨慎考虑。图形分析确定了简单但频繁的情况,可以指定特征树中移除操作的位置。这是可能的,因为所有实体仅生成到实体的边界并且不会穿透其体积,即没有实体之间不可预见的碰撞的风险(分析邻接图时检测到的除外)。
给出了用于确定操作的顺序的图形的第一分析。如果实体B将与移除操作一起使用,并且仅与要与添加操作一起使用的单个单个生成的实体A的面相邻,则将实体B的移除操作放置在实体A的添加操作之后。否则,添加和移除操作将按顺序A–B执行。
现在参考图33,实体332与添加操作相关联,而实体330(三角形垫)与移除操作相关联。实体330的面是由于移除了与实体332相邻的挤压而导致的。
提供了用于确定操作顺序的图的第二分析。如果实体B将用于移除操作,并且仅与与添加操作一起使用的两个或更多个生成的实体A和C的表面相邻,则将在实体A和C的添加操作之后执行实体B的移除操作。换句话说,添加和移除操作以A+C–B的顺序执行。
参考图34,实体340(三角形垫)与移除操作相关联,而实体342和344与添加操作相关联。实体340的面与实体342和344的面相邻。因此,实体340的面是由于移除了与垫板342和344相邻的三角形垫的挤压而产生的。
用于确定操作顺序的图的第三分析是通过参考图33和图34讨论的先前示例进行的。如果要与添加操作一起使用的实体D仅与要与移除操作一起使用的一个单个生成的实体B的面相邻,并且如果实体B仅与要与添加操作一起使用的一个单个生成的实体B的面相邻,或仅与要用与添加操作一起使用的的两个或更多个生成的实体的面相邻,然后首先对实体B执行实体D的移除操作。然后从剩余的实体中移除第一操作的结果。换句话说,添加和移除操作以A+C–(B-D)的顺序执行。
现在参考图35,实体350(三角形垫)与移除操作相关联,而实体352和354与添加操作相关联。实体350的面与实体352和354的面相邻。实体356是由从实体350中移除挤压圆柱体得到的,其结果是从垫片352和354中移除的。
参照回图19,在S160处,针对具有所提供的网格的每个最终实体计算相似度分数。这可以使用本领域中任何已知的技术来执行,该技术可以允许网格和实体之间的差异化(例如测量)。作为S160的结果,可以提供最终实体的等级:最相似的最终实体与不太相似的最终实体。
然后,在S170处,基于相似度分数来识别最相似于具有所提供的网格的最终实体,例如,具有最高等级的那个。如本领域中已知的那样执行。识别的最相似的最终实体的添加或移除操作的组合对应于网格的特征树。这意味着从草图计算出的每个实体都与操作相关联,因此每个计算出的草图及其扫掠操作都形成了一对与添加或移除布尔操作相关联的对。在示例中,特征树可包括成对的(草图、扫掠操作、布尔操作),它们以保留的操作组合提供的顺序形成特征树的叶子。所述对可以进一步包括扫掠操作的参数;例如,扫掠操作的类型(挤压、旋转、未定义),挤压的方向和长度值、用于旋转的旋转轴和旋转角度。
在示例中,该方法可以包括显示特征树的图形表示。用户可以对特征树进行编辑。特征树的表示可以包括图形项的树状布置,所述图形项分别表示相对应的叶片几何形状或几何操作。该版本可以包括例如通过图形交互来选择图形项。这里的图形交互是指操作触觉设备以激活与显示器上的图形项的位置相对应的位置处的像素。例如,可以将鼠标光标放置在所显示的图形项上方,或者可以直接经由触摸屏或经由触摸板间接触摸所显示的图形项。该选择可以触发对话框等的打开,以及由用户例如经由键盘输入一个或多个参数值。
在示例中,该方法可以包括显示所提供的网格的图形表示,并且同时,由用户启动用于从网格中提取特征树的方法,并且作为结果,显示所提取(可以也称为生成的)的特征树的图形表示同时显示与离散几何表示的图形表示。然后,用户可以隐藏网格的图形表示以进行结构化的3D模型的编辑。可替代地,该方法可以继续同时显示网格和结构化的3D模型的图形表示,并且在用户对结构化的3D模型执行编辑时,该方法可以相应地更新(例如,改变)网格的图形表示。这向执行版本的用户提供了视觉反馈。相反,用户可以修改所提供的网格,例如,通过置换形成网格的一个或多个元素(顶点、边、面等),并通过执行用于生成特征树的方法来更新特征树。
在示例中,该方法被配置为将从对真实对象的物理测量确定的3D网格或3D点云作为输入,并且该方法允许确定表示真实对象的3D形状的对应的可编辑特征树。然后,用户可以执行可编辑的特征树的版本,例如以创建类似于真实对象但与真实对象不同的设计。在替代和附加示例中,该方法被配置为将没有对应的可编辑的特征树的3D建模对象的3D网格作为输入,该3D建模对象是从远程计算机系统接收或从非易失性存储器取回的,并且该方法允许确定表示3D形状的对应的可编辑的特征树。然后,用户可以执行可编辑的特征树的版本,例如以创建类似于3D网格但与之不同其的设计,或完成由3D网格形成的设计。
除了以更符合人体工程学的方式执行3D形状编辑的可能性之外,特征树的出现还可以用于其他目的,例如3D形状合并或机械仿真。
3D形状合并方法可以包括:在计算机系统上提供表示第一3D形状的第一特征树,提供第二3D形状的网格,对该网格执行该方法以获得表示第二3D形状的第二特征树,然后合并第一特征树和第二特征树。可以根据任何合并技术来执行合并和/或表示第一3D形状和第二3D形状之间的机械组装或机械配合。合并可以例如包括将第二树连接到第一树。3D形状合并方法可以进一步包括将几何模型应用于合并的树以便获得由此表示的3D形状的图形表示,和/或向用户显示所述图形表示。
可以基于特征树来执行机械仿真。实际上,由于特征树以紧凑的形式(相对于离散的几何表示)和参数化的方式表示3D形状,因此可以对使用本方法获得的特征执行更精确的机械计算。特别是,从CSG计算有限元网格更容易、更直接(如论文“Finite-element meshgeneration from constructive-solid-geometry models”,Edwin Boender,WillemF.Bronsvoort,Frits H.Post,in Computer-Aided Design,Volume 26,Issue 5,May1994,Pages 379-392,或论文“Finite element mesh generation methods:a review andclassification”,K Ho-Le,in 38Computer-Aided Design,volume 20number 1January/February 1988所教导的)。此外,CSG还提供了对表面的防水性的保证。机械模拟因此可以包括从特征树(例如,CSG)和/或其一个或多个修改来计算一个或多个有限元网格,然后基于每个有限元网格执行有限元分析。另外,由于CSG是参数化的,因此可以根据仿真结果容易地优化CSG。因此,一个或多个修改可以用于基于每个先前的有限元分析结果来优化可编辑特征树(例如,CSG)。
Claims (15)
1.一种用于从网格提取特征树的计算机实现的方法,所述方法包括:
-提供(S100)网格;
-计算(S110)所提供的网格的几何和邻接图,其中:
--所述图的每个节点表示所述网格的一个区域,并且包括所述区域的图元类型和参数;
--两个节点之间的每个连接是由两个连接的节点表示的区域的各个表面之间的交集;
-基于所述区域的所识别的图元类型和参数,针对所述图的每个节点实例化(S120)表面;
-对于所述图的每个节点(S130):
--计算(S132)一个外部相交环和可能的一个或多个内部相交环,每个相交环是从连接到所述每个节点的所述图的节点的有序列表中获得的;
--从所述外部相交环计算(S134)至少一个草图,并分别从实例化表面的可能的一个或多个内部相交环计算(S134)可能的一个或多个草图;
-将扫掠操作应用于(S140)每个计算出的草图,从而针对每个草图生成实体;
-计算(S150)所获得的实体之间的添加或移除操作的一组可能的组合,并且针对每个计算的组合获得最终的实体;
-计算(S160)每个最终实体与输入网格的相似度分数;
-基于所述相似度分数,识别(S170)与所述输入网格最相似的最终实体,所识别的最相似的最终实体的添加或移除操作的组合与网格的特征树相对应。
2.根据权利要求1所述的计算机实现的方法,其中,计算所获得的实体之间的添加或移除操作的一组可能的组合包括:
-针对用凸形的外部相交环生成的实体使用添加操作;
-针对用凹形的外部相交环生成的实体使用移除操作;
-针对用凹形的内部相交环生成的实体使用添加操作;
-针对用凸形的内部相交环生成的实体使用移除操作。
3.根据权利要求2所述的计算机实现的方法,其中,计算所获得的实体之间的添加或移除操作的一组可能的组合还包括:
-对于每个用不具有可确定的凸度或凹度的外部相交环生成的实体,使用添加操作和移除操作二者。
4.根据权利要求2至3中的一项所述的计算机实现的方法,其中,计算所获得的实体之间的添加或移除操作的一组可能的组合还包括:
-如果要被使用移除操作的实体仅与一个要被使用添加操作的单个生成的实体的面相邻,则在所述添加操作之后执行所述移除操作;
-如果要被使用移除操作的实体仅与要被使用添加操作的两个或更多个生成的实体的面相邻,则在所述添加操作之后执行所述移除操作;
-如果要被使用添加操作的实体仅与一个要被使用移除操作的单个生成的实体的面相邻,并且如果要被使用所述移除操作的所述实体仅与一个要被使用添加操作的单个生成的实体的面相邻或者与要被使用添加操作的两个或更多个生成的实体的面相邻,首先对在要被使用所述移除操作的实体上的要被使用添加操作的实体执行移除操作,然后仅对首先执行的移除结果执行移除操作。
5.根据权利要求1至4中的一项所述的计算机实现的方法,其中,将扫掠操作应用于每个计算出的草图,从而针对每个草图生成实体包括:
-对于每个草图,从与一个外部相交环相邻的相交环和从与所述草图的可能的一个或多个内部相交环相邻的相交环计算扫掠方向和扫掠长度。
6.根据权利要求5所述的计算机实现的方法,其中,针对所述草图的所述一个外相交环以及针对所述可能的一个或多个相交环中的每个,执行所述扫掠方向和所述扫掠长度的计算,所述计算包括对于所述草图的每个相交环:
-识别所述相交环上的一个或多个草图点,草图点是与所述草图的相交环相邻的相交环所共有的点;
-对于每个识别的草图点,识别作为与所述草图的相交环相邻的相交环所共有的点的目标点;
-对于每个草图点计算将所述草图点连接到所述目标点的矢量,所述矢量的方向是所述扫掠方向,而所述矢量的范数是所述扫掠长度。
7.根据权利要求6所述的计算机实现的方法,还包括:当已经计算出两个或更多个矢量时:
-确定所述矢量具有相同方向,并且与所述草图的每个相交环相邻的相交环的表面平行于所述相同方向;
-应用作为挤压的所述扫掠操作,从而生成所述草图的实体。
8.根据权利要求7所述的计算机实现的方法,还包括:
-对于所述矢量的范数的每个不同值,应用所述扫掠操作;或者
-在所述值当中选择最小值,并且针对选择的值应用所述扫掠操作。
9.根据权利要求6所述的计算机实现的方法,还包括:当计算两个或更多个矢量时:
-确定所述矢量具有相同方向,并且与所述草图的每个相交环相邻的相交环的一个或多个表面不平行于所述相同方向;
-检测与所述草图的每个相交环相邻的相交环的所有表面的共同旋转轴平行于所述相同方向;
-估计针对每个草图点及其对应的目标点的旋转的角度;
-将绕检测到的共同旋转轴旋转的扫掠操作应用到估计的角度。
10.根据权利要求9所述的计算机实现的方法,还包括:当检测到所述共同旋转轴时:
-如果与所述草图的相交环相邻的相交环的表面属于从圆柱、圆锥、球形和/或圆环中选择的类型的图元,则验证相邻表面是否由旋转的所述轴定义;
-如果与所述草图的相交环相邻的相交环的表面属于类型平面的图元,则验证所述相邻表面平行于还是正交于旋转的所述轴。
11.根据权利要求9或10所述的计算机实现的方法,还包括:
-对于针对旋转的角度的估计每个不同的值,应用所述扫掠操作;或者
-在所述值中选择最小值,并且针对所选择的值应用扫掠操作。
12.根据权利要求1至11中的一项所述的计算机实现的方法,还包括:针对所述图的每个节点,在基于所述区域的所识别的图元类型和所述参数来实例化表面之后:
-检测实例化的表面不与任何平面相邻;
-在所述网格边界之外实例化新平面;
-计算所述实例化表面与所述新平面的交集,所述交集在所述新平面上形成环;以及
-从所述相交环计算至少一个草图。
13.一种计算机程序,包括用于执行根据权利要求1至12中任一项所述的方法的指令。
14.一种计算机可读存储介质,其上记录有根据权利要求13所述的计算机程序。
15.一种系统,包括耦合到存储器和图形用户界面的处理器,所述存储器在其上记录了根据权利要求13所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18306889.9A EP3675059B1 (en) | 2018-12-29 | 2018-12-29 | Extracting a feature tree from a mesh |
EP18306889.9 | 2018-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382777A true CN111382777A (zh) | 2020-07-07 |
CN111382777B CN111382777B (zh) | 2024-03-01 |
Family
ID=65234369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911392353.XA Active CN111382777B (zh) | 2018-12-29 | 2019-12-30 | 从网格中提取特征树 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11100710B2 (zh) |
EP (1) | EP3675059B1 (zh) |
JP (1) | JP2020115339A (zh) |
CN (1) | CN111382777B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3629203A1 (en) * | 2018-09-26 | 2020-04-01 | Bricsys NV | Improved parallel face alignment in cad |
EP3825956B1 (en) * | 2019-11-21 | 2022-06-22 | Dassault Systèmes | Processing a 3d signal of a shape attribute over a real object |
US11238649B2 (en) * | 2019-11-26 | 2022-02-01 | Nature Simulation Systems Inc. | Method and system for hybrid modeling using geometric facets |
US11176739B1 (en) * | 2020-04-24 | 2021-11-16 | Ansys, Inc. | Enhancing tetrahedral meshing for self-intersecting boundaries |
CN111738362B (zh) * | 2020-08-03 | 2020-12-01 | 成都睿沿科技有限公司 | 对象识别方法及装置、存储介质及电子设备 |
US11573772B2 (en) * | 2020-09-10 | 2023-02-07 | Electronic Arts Inc. | Mechanism for information propagation and resolution in graph-based programming languages |
US11593979B2 (en) * | 2021-04-28 | 2023-02-28 | Adobe Inc. | Editing raster images utilizing part-level semantic aware transformations |
KR102319566B1 (ko) * | 2021-05-31 | 2021-11-01 | 주식회사 트라이폴리곤 | 3d 모델링 데이터 관리 방법 및 이러한 방법을 수행하는 장치 |
EP4300343A1 (en) * | 2022-06-27 | 2024-01-03 | Dassault Systèmes | Cad feature tree generation |
CN117763877B (zh) * | 2024-02-21 | 2024-05-07 | 中南建筑设计院股份有限公司 | 基于plm平台的钢节点通用参数化建模方法和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070036434A1 (en) * | 2005-08-15 | 2007-02-15 | Peter Saveliev | Topology-Based Method of Partition, Analysis, and Simplification of Dynamical Images and its Applications |
US20120330636A1 (en) * | 2009-07-24 | 2012-12-27 | Bionext S.A. | Method for Characterising Three-Dimensional Objects |
CN106062827A (zh) * | 2013-12-15 | 2016-10-26 | 7893159加拿大有限公司 | 3d模型比较方法和系统 |
WO2018125620A1 (en) * | 2016-12-29 | 2018-07-05 | Exxonmobil Upstream Research Company | Method and system for interpolating discontinuous functions in a subsurface model |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040075656A1 (en) * | 2002-10-18 | 2004-04-22 | Kimia Benjamin B. | Method and apparatus for multi-dimensional shape representation via shock flows |
JP3968056B2 (ja) * | 2003-06-10 | 2007-08-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 形状作成装置、コンピュータ装置を形状作成装置として動作させるための制御方法、該制御方法をコンピュータ装置に対して実行させるためのコンピュータ実行可能なプログラム |
US7995810B2 (en) * | 2005-06-24 | 2011-08-09 | The University Of Iowa Research Foundation | System and methods for image segmentation in n-dimensional space |
US8175734B2 (en) * | 2009-10-08 | 2012-05-08 | 3D M. T. P. Ltd. | Methods and system for enabling printing three-dimensional object models |
FR3010812A1 (fr) * | 2013-09-13 | 2015-03-20 | Eads Europ Aeronautic Defence | Procede de conception assistee par ordinateur comportant une etape de modelisation |
EP3271900A4 (en) * | 2015-03-17 | 2019-03-06 | Environmental Systems Research Institute, Inc. | INTERACTIVE DIMENSIONING OF PARAMETRIC MODELS |
-
2018
- 2018-12-29 EP EP18306889.9A patent/EP3675059B1/en active Active
-
2019
- 2019-12-24 JP JP2019233116A patent/JP2020115339A/ja active Pending
- 2019-12-30 CN CN201911392353.XA patent/CN111382777B/zh active Active
- 2019-12-30 US US16/730,833 patent/US11100710B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070036434A1 (en) * | 2005-08-15 | 2007-02-15 | Peter Saveliev | Topology-Based Method of Partition, Analysis, and Simplification of Dynamical Images and its Applications |
US20120330636A1 (en) * | 2009-07-24 | 2012-12-27 | Bionext S.A. | Method for Characterising Three-Dimensional Objects |
CN106062827A (zh) * | 2013-12-15 | 2016-10-26 | 7893159加拿大有限公司 | 3d模型比较方法和系统 |
WO2018125620A1 (en) * | 2016-12-29 | 2018-07-05 | Exxonmobil Upstream Research Company | Method and system for interpolating discontinuous functions in a subsurface model |
Non-Patent Citations (3)
Title |
---|
FRANCESCO BUONAMICI ET AL.: "Reverse engineering modeling methods and tools: a survey", 《COMPUTER-AIDED DESIGN & APPLICATIONS》, pages 443 - 464 * |
ROSELINE BÉNIÈRE ET AL.: "A comprehensive process of reverse engineering from 3D meshes to CAD models", 《COMPUTER-AIDED DESIGN》, pages 1382 - 1393 * |
张德军;何发智;李小霞;: "异构CAD数据交换中样条草图的处理方法", 图学学报, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
EP3675059B1 (en) | 2022-09-14 |
CN111382777B (zh) | 2024-03-01 |
US20200211281A1 (en) | 2020-07-02 |
EP3675059A1 (en) | 2020-07-01 |
JP2020115339A (ja) | 2020-07-30 |
US11100710B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382777B (zh) | 从网格中提取特征树 | |
Mescheder et al. | Occupancy networks: Learning 3d reconstruction in function space | |
JP7428516B2 (ja) | 編集可能なフィーチャツリーの推測のためにニューラルネットワークを学習すること | |
JP6787661B2 (ja) | 工作物の機械加工のシミュレート | |
US11210866B2 (en) | Forming a dataset for inference of editable feature trees | |
CN107818196B (zh) | 机械部件的骨架的表示 | |
EP4092558A1 (en) | Parameterization of cad model | |
JP2022023010A (ja) | 2点接触曲線による乗り物衝撃解析 | |
EP3825956B1 (en) | Processing a 3d signal of a shape attribute over a real object | |
Li et al. | On surface reconstruction: A priority driven approach | |
US11195330B2 (en) | Generation of a structured 3D model from a raw mesh | |
CN116226947A (zh) | 对3d cad模型的划分 | |
Sahebdivani et al. | Deep learning based classification of color point cloud for 3D reconstruction of interior elements of buildings | |
JP2021131852A (ja) | 機械部品の構造シミュレーション | |
Kansal et al. | A systematic approach for cad model generation of hole features from point cloud data | |
JP2022179418A (ja) | 材料の押し出し検出方法 | |
JP2023160791A (ja) | 画像からの3d再構成 | |
JP2024003783A (ja) | Cadフィーチャーツリー生成 | |
Schinko et al. | Vertex Climax: Converting Geometry into a Non-nanifold Midsurface. | |
BUATAN et al. | DEVELOPMENT OF INTELLIGENT 3D SOLID MODELER BASED ON ARTIFICIAL INTELLIGENCE TECHNIQUE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |