CN115997213A - 计算机辅助设计(cad)组件的约束的基于机器学习的生成 - Google Patents
计算机辅助设计(cad)组件的约束的基于机器学习的生成 Download PDFInfo
- Publication number
- CN115997213A CN115997213A CN202180052875.4A CN202180052875A CN115997213A CN 115997213 A CN115997213 A CN 115997213A CN 202180052875 A CN202180052875 A CN 202180052875A CN 115997213 A CN115997213 A CN 115997213A
- Authority
- CN
- China
- Prior art keywords
- cad
- constraint
- given
- geometric
- constraints
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
一种计算系统(100),可包括约束学习引擎(110)和约束生成引擎(112)。约束学习引擎(110)可以被配置为:访问包括多个计算机辅助设计(CAD)零件的CAD组件(130);生成CAD组件(130)的表示图;确定CAD组件(130)中的约束,其中,约束限制CAD组件(130)中的不同CAD零件的几何面之间的移动程度;将表示所确定的约束的约束边插入到表示图中;以及将表示图提供为训练数据以训练机器学习模型(120)。约束生成引擎(112)可以被配置为通过将机器学习模型(120)应用于不同CAD组件来生成不同CAD组件的约束。
Description
背景技术
现代计算机系统可用于创建、使用和管理产品和其它物品的数据。例如,计算机辅助技术(Computer-Aided Technology,CAx)系统可以用于辅助产品的设计、分析、模拟或制造。CAx系统的示例包括计算机辅助设计(Computer-Aided Design,CAD)系统、计算机辅助工程化(Computer-Aided Engineering,CAE)系统、可视化和计算机辅助制造(Computer-Aided Manufacturing)系统、产品数据管理(Product Data Management,PDM)系统、产品生命周期管理(Product Lifecycle Management,PLM)系统等。这些CAx系统可以包括便于产品结构和产品制造过程的设计和模拟测试的组件(例如CAx应用)。
附图说明
在以下具体描述中并参考附图描述了某些示例。
图1示出了支持基于机器学习(ML)生成CAD组件的约束的计算系统的示例。
图2示出了根据本发明的由支持基于ML的约束生成的约束学习引擎进行的表示图的示例性生成。
图3示出了根据本发明的由支持基于ML的约束生成的约束学习引擎将约束边插入到表示图中的示例。
图4示出了由约束生成引擎使用机器学习模型生成约束的示例。
图5示出了系统可以实现以支持基于ML生成CAD组件的约束的逻辑的示例。
图6示出了支持基于ML生成CAD组件的约束的计算系统的示例。
具体实施方式
现代技术的进步已经引起了跨越许多不同行业的各种类型的日益复杂的产品的设计、模拟和制造。CAx系统可以支持产品系列的设计和跟踪,该产品系列可能包括数量为数十万、数百万、数千万和可能更多的CAD零件。如本文所用的,CAD零件可以指能够数字地表示(例如作为CAD数据)的任何离散对象,并且CAD零件可以被组合以形成产品或其部件。连同零件一起,现代CAx系统可以支持CAD组件的设计和管理,这可以指CAD零件如何组合以形成特定产品或产品部件的任何表示。由此可见,CAD组件可以表示不同的产品(例如用于硬盘驱动器的给定CAD组件,该硬盘驱动器包括表示为CAD零件的多个部件,例如外壳、螺栓、光存储部件等)。CAD组件还可表示给定产品的不同子系统或部件(例如服务器机架的电气和冷却子系统)、给定产品的不同变型(例如基础车辆模型、中档车辆模型、高端车辆模型)等。
现代CAx背景下的组件创建可以涉及相对小的组件中的数百个单独CAD零件到相对大的组件中的数十万个零件(或更多)的设计和定位。而且,形成CAD组件的各种零件可以以各种方式互连,常见示例是在特定直径和几何形状的孔处装配到其它CAD零件中的螺母、螺栓、轴或螺钉。这样的CAD零件可以根据特定的物理位置和特定的取向而相互关联,在该特定的物理位置和特定的取向,CAD零件在给定的CAD组件中互连。具体地,CAD组件可以支持限制形成CAD组件的CAD零件的约束。如本文所用的,约束可以指对CAD组件的CAD零件的移动程度的任何指定限制。CAD模型中的CAD零件可以具有关于例如沿着其中设计CAD零件的3D系统的“x”、“y”或“z”维度轴的移动、和/或沿着、绕或围绕“x”、“y”或“z”轴的旋转的多个自由度。
可以为给定CAD零件或在多个CAD零件之间指定约束,以限制(例如约束或防止)沿着CAD零件或在CAD零件之间的至少一个移动程度的移动。由此可见,CAD组件中的约束可以限制CAD零件如何能够或不能相对于另一CAD零件移动。CAD组件中的这种约束可以反映在由这种CAD组件表示的物理产品的构造时对移动的物理限制。作为说明性示例,针对CAD组件的板和螺栓零件设定的约束可限制螺栓零件侧向漂移穿过板(例如沿着“x”或“y”方向)或防止螺栓未穿过板中的孔(例如沿着“z”方向),其中螺栓在孔处固定到CAD组件中的板。虽然这样的示例看起来简单,但是为包括几十万个CAD零件或更多的CAD组件设定适当的约束将是一项挑战。
在当前CAD背景下确定和指定约束可能是耗时、耗费资源并且乏味的。例如,CAD组件中的CAD零件的配合可以通过在各个CAD零件上手动标记互补特征来执行,但是这样的过程需要手动设计工作并且可能易于出错。用户指定的约束可以是手动指定互连CAD零件之间的移动限制的另一种方式。然而,给定的CAD组件将以几乎无限数量的方式来约束,许多时候实现相同程度的移动限制,但是基于用户偏好具有不同的约束设定。这种手动过程可能是耗时的、易出错的、不一致的且非最佳的。
本文的公开内容可以提供用于基于ML生成CAD组件的约束的系统、方法、设备和逻辑。如本文更详细描述的,提出了各种特征以支持通过机器学习生成CAD组件的约束。本发明的基于ML的约束生成特征可以支持CAD组件的CAD零件的约束的自动检测、应用和验证,并且可以支持约束生成而无需将CAD零件实际放置到CAD组件中。而且,用于这种基于ML的解决方案的训练数据不需要包括明确约束的CAD模型,因为本文提出的基于ML的约束生成特征可以支持根据现有设计推断约束。通过本发明,通过提出CAD组件中可能的CAD零件位置,可以使CAD组件中的约束和CAD零件确定、指定和定位更简单和更快速,这可以降低CAD用户巡览CAD组件的3D空间的负担。如果CAD组件的最终布置是未知的,则所提出的特征还可以使得能够检测CAD组件中的互补CAD零件,因此提高CAD处理效率。
这些和其它基于ML的约束生成特征以及技术益处在本文中更详细地描述。
图1示出了支持基于ML生成CAD组件的约束的计算系统100的示例。计算系统100可以采取单个或多个计算设备(例如应用服务器、计算节点、台式或膝上型计算机、智能电话或其他移动设备、平板设备、嵌入式控制器等)的形式。在一些实现方式中,计算系统100实现CAx工具、应用或程序,以帮助用户设计、分析、模拟或3D制造产品。
作为支持本文所述的基于ML的约束生成特征的任何组合的示例实现方式,图1所示的计算系统100包括约束学习引擎110和约束生成引擎112。计算系统100可以以各种方式(例如硬件和编程)实现引擎110和112(包括其组件)。用于引擎110和112的编程可以采取存储在非瞬态机器可读存储介质上的处理器可执行指令的形式,并且用于引擎110和112的硬件可以包括执行这些指令的处理器。处理器可以采取单处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用相同的计算系统特征或硬件组件(例如公共处理器或公共存储介质)来实现多个引擎。
在图1所示的示例中,计算系统100还包括机器学习模型120。计算系统100本身可以实现ML模型120,或者在一些实现方式中远程访问ML模型120。ML模型120可以实现或支持任何数量的机器学习能力,其支持CAD组件的约束生成。例如,ML模型120可以实现任何数量的监督、半监督、无监督或增强学习模型,以生成针对CAD组件的CAD零件或在CAD组件的CAD零件之间的约束。作为说明性示例,ML模型120可以利用马尔可夫(Markov)链、上下文树、支持向量机、神经网络、贝叶斯(Bayesian)网络或者各种其它机器学习组件、技术或者算法来解释现有CAD组件并且随后确定输入CAD组件或者组成输入CAD组件的输入CAD零件的约束。作为继续的示例,在约束学习引擎110和约束生成引擎112的背景下讨论ML模型120的训练和应用。
在操作中,约束学习引擎110可以访问包括多个CAD零件的CAD组件130,并且生成CAD组件130的表示图。所生成的表示图中的节点表示多个CAD零件的几何面,并且表示图中的边可以表示多个CAD零件的几何边。约束学习引擎110还可以确定CAD组件130中的约束,并且约束可以限制CAD组件130中的不同CAD零件的几何面之间的移动程度,并且将表示所确定的约束的约束边插入到表示图210中。然后,约束学习引擎110可以提供表示图作为训练ML模型120的训练数据。在操作中,约束生成引擎112可以通过将ML模型120应用于不同CAD组件来生成不同CAD组件的约束。
这些和其它基于ML的约束生成特征在本文中更详细地描述。接下来参考图2和图3经由约束学习引擎110描述训练ML模型120以支持基于ML的约束生成。为了支持ML训练,约束学习引擎110可以以ML模型120可解释的特定形式将CAD组件表示为训练数据,具体地,表示为可以提供给ML模型120以进行训练和从中学习的表示图。
图2示出了根据本发明的由支持基于ML的约束生成的约束学习引擎110进行的表示图的示例性生成。约束学习引擎110可以生成完成的CAD组件的表示图,ML模型120可以处理该表示图以学习或预测不同CAD组件(例如未完成的或无约束的)的约束。在图2所示的示例中,约束学习引擎110访问CAD组件130。CAD组件130可以是完成的CAD模型或设计,其中形成CAD组件130的CAD零件在3维坐标系内适当地定位和对齐,以反映产品或产品部件的物理设计。
约束学习引擎110可以以各种方式访问CAD组件130。例如,用户可以输入CAD组件130,将CAD组件130指定为完成的CAD模型以训练ML模型120。约束学习引擎110可以从存储完成的产品设计的CAD模型库或CAD数据库加载CAD组件130。CAD组件130可以以任何3D形式表示,例如边界表示(BREP),并且形成CAD组件130的多个CAD零件也可以表示为包括几何面、边或其它3D几何元素和图元的BREP。各个CAD零件可以是单独的设计实例或对象,例如通过CAD应用设计或实现的。在图2所示的示例中,CAD组件130表示夹钳工具,其包括多个CAD零件,包括螺栓、板、轴等,各个零件可以是CAx应用中的不同的CAD对象。
为了便于机器学习,约束学习引擎110可以根据CAD组件生成表示图,以提供ML模型120的训练数据。在某种意义上,约束学习引擎110可以将CAD组件130从3D几何表示转换为ML模型120可解释的数据格式,以学习或预测CAD组件中的约束。具体地,从CAD组件生成的表示图可提供3D结构的基于图的表示,并且约束学习引擎110可在生成表示图时将3D几何形状分解为节点和边。所生成的表示图中的节点可以表示CAD组件的几何面,并且表示图中的边可以表示CAD组件的几何面相遇或相交的几何边(也称为拓扑边)。
在图2中,约束学习引擎110生成表示图210,其可以以基于图形的形式表示CAD组件130的几何面和几何边。约束学习引擎110可以通过解析形成CAD组件130的多个CAD零件的3D几何形状来生成表示图210。例如,约束学习引擎110可以迭代通过CAD组件130的各个CAD零件,并且对于给定CAD零件,将给定CAD零件的各个几何面的节点插入到表示图210中,并且在表示图210中的节点之间插入表示给定CAD零件的几何面相遇的几何边的边。约束学习引擎110还可以将边插入到表示图210中,在与具有在CAD组件130中相遇或相交的几何面的不同CAD零件相对应的节点之间。这样的边可以表示CAD组件的不同CAD零件相交和相遇的部分(其可以在不同CAD零件的单个或多个几何面处)。
约束学习引擎110可以迭代通过CAD组件130的各个CAD零件,直到CAD组件130完全表示在表示图210中。表示图210的不同图部分可以表示CAD组件130的不同CAD零件。图部分可以指表示图210中的节点和边的集合,并且示例性图部分在图2中被例示为图部分220。图部分220可以表示CAD组件130的给定CAD零件,并且在这种情况下,图部分220表示存在于CAD组件130中的六角螺母零件。
注意,由约束学习引擎110生成的表示图可以是不连贯的,因为表示图的一些图部分可以与其他图部分断开(例如在表示图中不存在节点和边的路径来连接断开的图部分)。这可以是CAD组件130的给定CAD零件或一组CAD零件不与CAD组件130的其余部分共享任何几何边的情况。在一些实现方式中,约束学习引擎110可以生成表示多个不同CAD组件的表示图。在这样的实现方式中,所生成的表示图可以是不连贯的,因为不同的CAD组件可以表示不共享任何公共几何边的分离的、不相关的结构。
在图2所示的示例中,表示图210被例示为2D视觉图形,其包括被例示为圆的节点和被例示为节点之间的直线的边。约束学习引擎110可以以任何数量的形式(例如作为阵列、值对(例如表示边)、邻接矩阵或列表)或通过任何数量的其他数据形式或数据结构来生成、表示或存储表示图。
约束学习引擎110可以在生成的表示图中表示CAD组件130的任意数量的参数,包括CAD组件130或CAD组件130的CAD零件的几何和拓扑特性。在一些实现方式中,约束学习引擎110可以跟踪CAD组件的几何面的特性,作为在表示图的节点中编码的、分配给表示图的节点的、与表示图的节点相关联的或者附加到表示图的节点的值。作为这样做的一种方式,约束学习引擎110可以将特征向量插入到表示图210中的节点中,并且给定特征向量可以表示CAD组件130的对应几何面的拓扑和几何特征。
特征向量可以指任何数据形式,通过该数据形式来捕获、提取或表示CAD组件的几何面的特征(例如参数或属性)。约束学习引擎110可提取并表示在给定几何面的特征向量中的示例特征包括给定几何面的图元类型、给定几何面是其一部分的CAD零件标识符、与给定几何面相邻的多个其它几何面、给定几何面的面积、给定几何面的周长、给定几何面的图元半径、给定几何面的法向量、给定几何面的旋转或尺度不变描述符等、或其任何组合。虽然本文中提供了一些示例特征,但是CAD组件130的任何描述性数据都可以被提取并经由特征向量编码到表示图210中。
在一些示例中,约束学习引擎110可以提取给定几何面的特征向量作为参数值的n维阵列、作为参数值的级联或者以各种其他结构或格式。特征向量到表示图210中的插入可以包括约束学习引擎110将针对特定几何面提取的特征向量关联、联系、以其他方式关联到表示图210中的表示特定几何面的对应节点的任何形式。在图2的示例中,约束学习引擎110在对应于从其提取特征向量230的CAD组件130的几何面的节点处将特征向量230插入到表示图210中。因此,约束学习引擎110可以跟踪表示图中的CAD组件的几何面的特性,这可以进一步支持ML训练以便以提高的精度和准确度确定和预测CAD组件约束。
以本文所述的任何方式,约束学习引擎110可以生成表示一个或多个CAD组件的表示图。表示图可以便于机器学习,因为它可以在每个面的基础上对CAD组件的几何和拓扑特征进行编码。约束学习引擎110还可以生成表示图210,以通过约束边包括、跟踪或表示CAD组件130中的约束,如接下来参考图3更详细描述的。
图3示出了根据本发明的由支持基于ML的约束生成的约束学习引擎110将约束边插入到表示图中的示例。为了插入约束边,约束学习引擎110可以确定CAD组件130中的约束,然后将表示CAD组件130中的所确定的约束的约束边插入到表示图210中。具体地,约束学习引擎110可以在表示图210中的特定节点之间插入约束边,其可以指示特定几何面(和对应的CAD零件),特定几何面(和对应的CAD零件)关于CAD组件130中的至少一个移动程度被约束到另一几何面(和对应的CAD零件)。
为了支持约束边插入到表示图210中,约束学习引擎110可以以各种方式确定CAD组件130中的约束。作为一个示例,约束学习引擎110可以通过识别CAD组件130中的用户指定的约束来确定CAD组件130中的约束。由于CAD组件130可以是先前生成或完成的CAD模型,所以工程师或设计者可以在设计过程期间在CAD组件130中明确地设定各种约束。换句话说,CAD组件130可以是受约束CAD模型。由此可见,约束学习引擎110可以识别在CAD组件130中明确设定的任何用户指定的约束,并相应地将约束边插入到表示图210中。
在一些情况下,CAD组件130可以对不同CAD零件的特定几何面之间的用户指定约束进行编码。在这样的情况下,约束学习引擎110可识别特定几何面的对应节点,并在对应节点之间插入约束边以表示用户指定约束。在其它示例中,CAD组件130可以在CAD组件130的不同CAD零件之间(例如在螺栓零件和螺栓零件插入其中的板零件之间)编码用户指定约束。在这种情况下,约束学习引擎110可以确定不同CAD零件中的每一者的所选几何面,并且在表示图210中与所选几何面相对应的节点之间插入约束边。约束学习引擎110对几何面的选择可以通过随机选择、所选几何面之间的最小距离、最大面积、法向量比较、为给定CAD零件指定的默认面、或根据任何数量的额外或替代选择过程或准则来执行。
作为约束确定的另一示例,约束学习引擎110可以根据CAD组件130的几何形状推断任何数量的约束。在这方面,即使当CAD组件130没有明确地约束或者没有手动地标记有用户指定的约束时,约束学习引擎110也能够处理和从CAD组件130确定约束。即,即使当没有在CAD组件130中设定或编码特定约束时,约束学习引擎110也可以支持从CAD组件130确定约束,只要形成CAD组件的CAD零件相对于彼此定位即可。约束学习引擎110因此可以支持CAD组件的约束的自动检测和应用,这可以提高用于约束生成的基于ML的技术的训练和应用的效率。
为了推断CAD组件130中的约束,约束学习引擎110可以确定约束的公式表示,包括针对不同约束类型的约束的不同公式表示。如本文所用的,公式表示可以包括约束学习引擎110检测CAD组件的几何面之间的约束可以通过的函数、表达式或公式的任何组合。约束学习引擎110然后可以通过应用公式表示来比较CAD组件130的几何面,以确定几何面之间的不同约束类型的约束。
作为说明性示例,约束学习引擎110可以根据CAD组件130推断“接触”约束类型和“对齐”约束类型的约束。对于接触约束类型,约束学习引擎110可确定公式表示为ni·nj=-1,并且ni·rij=nj·rij=0,其中,ni是几何面i的单位法线,nj是几何面j的单位法线,并且rij=cj-ci分别是几何面i和j的质心ci与cj之间的位移向量。对于对齐约束类型,约束学习引擎110可确定公式表示为ni·nj=1,并且ni·rij=nj·rij=1,其中,ni是几何面i的单位法线,nj是几何面j的单位法线,并且rij=cj-ci分别是几何面i和j的质心ci与cj之间的位移向量。在一些实现方式中,约束学习引擎110可在对齐约束类型的公式表示中包括几何面i和j的边界框相交的另外准则。
当满足公式表示时(例如ni·nj=-1而不是另一值,并且ni·rij=nj·rij=0而不是非零值),则约束学习引擎110可以确定在经由公式表示进行比较的几何面之间存在对应的约束。公式表示的确定可以被定制、用户配置或预加载为特定公式、表达式或逻辑以进行评估,从而确定、检测或推断几何面之间的约束。
约束学习引擎110可以通过将任意数量的公式表示应用于CAD组件130的几何面来推断CAD组件130中的约束。尽管使用公式表示对CAD组件130中的每对几何面进行强力比较是可能的,但是这种方法将是低效的,并且需要增加的计算资源和时间。在一些实现方式中,约束学习引擎110可以通过选择特定几何面以应用公式表示来选择性地比较CAD组件130的几何面。作为选择性比较的一个示例,约束学习引擎110可以确定不比较同一CAD零件的几何面。这可以是同一CAD零件的几何面可以被设计为同一刚性对象实例的部件的情况。在这方面,CAD零件的几何面可以被设计为相对于彼此没有自由度(因此同一CAD零件的几何面之间的比较没有意义)。例如,螺栓零件的几何面是同一物理结构的一部分,因此受到限制。由于在同一CAD零件的几何面之间不存在自由度,因此现代CAD系统甚至可能不能在同一CAD零件的几何面之间设定约束,并且约束学习引擎110不需要比较同一CAD零件的几何面。
由此可见,约束学习引擎110可以将(各种约束类型的)公式表示应用于不同CAD零件的几何面,而不是同一CAD零件的几何面。约束学习引擎110还可基于距离选择性地比较几何面。用于比较和应用公式表示的基于距离的几何面选择可以利用约束的方面,如通常在接近的CAD零件之间应用的。由此可见,约束学习引擎110可以确定不将CAD零件的几何面与在CAD组件130中相对较远的另一CAD零件进行比较。为了说明,对于表示飞行器的CAD组件,在飞行器机翼和发动机中的CAD零件之间应用约束推断计算是没有意义的,因为这些零件是不同的、物理上远离的和不相关的。因此,距离可以用作CAD组件的关系量度。
为了应用基于距离的选择性比较,约束学习引擎110可以迭代通过给定CAD零件的几何面,并且将给定CAD零件的几何面与在阈值距离(例如几何面所定位于的坐标系中的欧几里德(Euclidean)距离)内的其它CAD零件的任何几何面进行比较。约束学习引擎110所应用的阈值距离可以是预定的或用户配置的。因此,对于给定约束类型(例如接触约束类型)的公式表示,约束学习引擎110可通过识别CAD组件130的给定CAD零件的几何面来比较CAD组件130的所选几何面,确定在距给定CAD零件的所识别几何面的阈值距离内的其它CAD零件的几何面,并且在给定CAD零件的所识别几何面与其它CAD零件的各个几何面之间应用给定约束类型的公式表示,以确定给定约束类型的约束。
这样,约束学习引擎110可以迭代通过给定CAD零件的各个几何面,然后最终迭代通过CAD组件130中的各个几何面。应用任意数量的约束类型的公式表示可以指示是否根据任意约束类型来约束所比较的几何面。如果是(例如,对于两个所选几何面i和j,ni·nj=-1,并且ni·rij=nj·rij=0),则约束学习引擎110可推断所选几何面的约束,并将边约束插入到表示图210中,在所选几何面的对应节点之间。如果否(例如,对于两个所选几何面i和j,ni·nj!=-1和/或ni·rij=nj·rij!=0),则约束学习引擎110可确定不在对应的节点之间插入约束边。
在本文所述的方式的任意组合中,约束学习引擎110可以确定CAD组件130中的约束,并将表示所确定的约束的约束边插入到表示图210中。
注意,约束学习引擎110可在表示图210中的不同类型的边之间进行区分。在图3中,这种区分通过用于CAD组件130的几何面之间的几何边的细边线和用于CAD组件130的几何面之间的约束边的粗边线来说明。在实现这种区分时,约束学习引擎110可在表示图210中设定边类型参数,以将表示图210中的边识别为几何边或约束边。在一些实现方式中,约束学习引擎110还可以区分表示图210中的不同类型的约束边,其可以指定在CAD组件130的几何面之间设定或推断的特定类型的约束、用户指定的约束等。
通过生成表示图210(具有插入的约束边),约束学习引擎110可以生成ML模型120的训练数据,以学习和预测CAD组件中的约束。因此,约束学习引擎110可以提供表示图120(或其部分)作为训练ML模型120的训练数据。约束学习引擎110可以利用表示任何数量的不同CAD组件的任何数量的表示图来训练ML模型120。
ML模型120可以使用在CAD组件130的表示图210以及任何数量的额外或替代表示图或任何数量的其它CAD组件中编码的数据来训练。在这样做时,ML模型120可以处理在一个或多个表示图中编码的数据以学习约束规则,从而应用于不同CAD组件的CAD零件的约束确定。
在一些实现方式中,ML模型120实现随机森林分类器,其可以学习约束规则并且预测一对几何面是“受约束的”还是“不受约束的”,这样做是基于针对几何面提取的特征向量。实际上,ML模型120可以实现分类器函数f(xi,xj)→y,其中,xi和xj可以表示几何面i和j的特征向量,并且y可以是指示输入CAD组件或两个输入CAD零件的几何面i和j是否被约束的二进制变量。为了确保结果的对称性,约束学习引擎110可以配置ML模型120,使得使用差的绝对值,例如f(|xi-xj|)→y。
为了实现这种分类器函数,ML模型120可以使用在表示图中编码的组件和约束数据来训练。具体地,ML模型120(或约束学习引擎110)可以基于节点对来解析一个或多个表示图,以提取成对或元组形式的训练数据,其包括|xi-xj|(其可以被提取作为针对几何面i和j的对应节点编码的特征向量之间的计算)和y(其可以从表示图中提取作为对应于几何面i和j的节点之间是否存在约束边)。ML模型120然后可以学习可以减小或最小化预测y中的误差的合适变换。在一些情况下,ML模型120可以针对不同的约束类型生成不同的分类函数,或者所实现的分类函数可以针对不同的约束类型生成单独的输出y。由此可见,ML模型120可以处理训练数据并且生成输入CAD组件及其CAD零件的约束。
ML模型120能够学习约束规则,即使具有相对少的训练数据。即使当在单个相对简单的CAD组件上训练时,ML模型120也可以处理针对单个CAD组件生成的表示图,并且能够生成针对具有增加的复杂度和更多复杂度种类的不同CAD组件的约束。作为一个实验示例,约束学习引擎110可以使用针对具有八(8)个相同孔的板和装配到板孔中的八(8)个相同螺钉的简单CAD组件生成的表示图来训练ML模型120。在这种表示图上训练,ML模型120能够生成具有实质上更多种类和更大几何形状、更多约束类型和更大复杂度的输入CAD组件的约束。由此可见,ML模型120甚至可以从相对少的训练数据中学习广泛适用的约束规则,这可以提高本申请的基于ML的约束生成特征的效率和适用性。
图4示出了由约束生成引擎112使用ML模型120生成约束的示例。ML模型120可以使用由约束学习引擎110生成的表示图来训练,并且ML模型120的应用可以为输入CAD组件和输入CAD组件的各种CAD零件提供约束预测能力。
在图4中,约束生成引擎112访问CAD组件410。CAD组件410可以是未完成的、不受约束的,或者包括不同的、未放置的CAD零件。例如,由约束生成引擎112访问的CAD组件410可以包括部分完成的组件结构和要插入或放置在组件结构中的额外CAD零件。作为另一示例,CAD组件410可以是要在组件结构中插入、放置和约束的CAD零件的列表的形式。作为另一示例,CAD组件410可以是无约束CAD模型。在这些示例的任何一者中,约束生成引擎112可以应用ML模型120来生成CAD组件410的约束。
在一些实现方式中,约束生成引擎112可以通过识别或选择CAD组件410的两个(或更多个)CAD零件来生成CAD组件410的约束。这样的CAD零件选择可以根据用户输入或选择来确定,无论是作为要预测约束的CAD组件410中的CAD零件的明确选择还是经由通过应用UI选择要包括在CAD组件410中的CAD零件。对于无约束模型或CAD组件410的其他形式,约束生成引擎112可以确定组成用于约束生成的CAD组件410的多个CAD零件。
为了应用ML模型120,约束生成引擎112可以构造CAD组件410或其所选CAD零件的表示图。约束生成引擎112可以以本文所述的任何方式这样做,但约束生成引擎112不需要从CAD组件410确定或推断约束。而且,约束推断甚至可能是不可能的,因为CAD组件410或其CAD零件可能未被适当地定位在CAD组件410中(并且ML模型120可以针对其预测约束、定位和对齐)。在生成CAD组件410的表示图时,约束生成引擎112可以提取CAD组件410的几何面的特征向量,并且将所提取的特征向量编码为CAD组件410的所生成的表示图的一部分。在图4的示例中,约束生成引擎112生成CAD组件410的表示图420,并且将表示图420提供给ML模型120。
ML模型120可以处理表示图420以确定CAD组件410的几何面对(其可以被提取并解释为针对不同CAD零件的表示图420中的节点对)。然后,ML模型120可以生成CAD组件410的约束430。在一些示例中,ML模型120可以例如根据学习的分类函数f(xi,xj)→y以几何面对的约束预测的形式生成约束430。注意,由ML模型120提供的输出y可以是归一化概率值(例如在0至1之间),其指示ML模型120预测CAD组件410的对应的几何面对应当被约束的程度。
在一些实现方式中,约束生成引擎112可以从约束430生成CAD应用可以提供用于用户反馈的排名列表。这样的用户反馈可以用于设定CAD组件410中的明确约束,基于所生成的约束430或排名列表来定位CAD零件,或者基于所生成的约束430来以其他方式修改、处理或设计CAD组件410。由约束生成引擎112(经由ML模型120)生成的约束430可以基于约束类型进一步描绘,并且不同约束类型的约束可以相应地应用于CAD组件410。约束生成引擎112可以针对两个CAD零件依次、分批(例如针对多个CAD零件或者针对CAD组件410的整个部分)或者针对整个CAD组件410一次性全部地生成约束430并且将其应用于CAD组件410。而且,可以在CAD零件之间应用多种不同类型的约束,这可能限制CAD零件之间的多个自由度。
在一些实现方式中,约束生成引擎112可以确定应用约束430的选择的组合,其一起表示CAD组件410的CAD零件的可行定位。这种选择的组合可以基于任意数量的选择准则来确定。在一些实现方式中,约束生成引擎112可以呈现用于定位CAD零件的约束430的不同可行组合。约束生成引擎112可以在不将任何约束430(或其子集)应用于CAD组件410的情况下进行,例如,以支持用户选择和随后应用约束430的所选组合。
以本文所述的任何方式,可以实现基于ML的约束生成。虽然在本文中已通过各种附图所呈现的说明性示例描述了许多基于ML的约束生成特征,但约束学习引擎110和约束生成引擎112可实现本文所述的基于ML的约束生成特征的任何组合。
图5示出了系统可以实现以支持基于ML生成CAD组件的约束的逻辑500的示例。例如,计算系统100可以将逻辑500实现为硬件、存储在机器可读介质上的可执行指令、或两者的组合。计算系统100可以经由约束学习引擎110和约束生成引擎112来实现逻辑500,通过这些引擎,计算系统100可以执行或实行逻辑500,作为支持基于ML生成CAD组件的约束的方法。使用约束学习引擎110和约束生成引擎112作为示例来提供逻辑500的以下描述。然而,系统的各种其他实现选项是可能的。
在实现逻辑500时,约束学习引擎110可以访问包括多个CAD零件的CAD组件(502),并且生成CAD组件的表示图(504),以本文所述的任何方式这样做。表示图中的节点可以表示多个CAD零件的几何面,并且表示图中的边可以表示多个CAD零件的几何边。在实现逻辑500时,约束学习引擎110还可以确定CAD组件中的约束(506)。
例如,约束学习引擎110可以通过识别CAD组件中的用户指定的约束来确定CAD组件中的约束。另外地或替代性地,约束学习引擎110可以通过根据CAD组件的几何形状推断约束来确定CAD组件中的约束,包括确定给定约束类型的公式表示并使用公式表示比较CAD组件的所选几何面以确定所选几何面之间的给定约束类型的约束。由约束学习引擎110比较CAD组件的所选几何面可以包括:识别CAD组件的给定CAD零件的几何面,确定在距给定CAD零件的所识别几何面的阈值距离内的其它CAD零件的几何面,以及在给定CAD零件的所识别几何面与其它CAD零件的各个几何面之间应用给定约束类型的公式表示,以确定给定约束类型的约束。
在实现逻辑500时,约束学习引擎110还可将表示所确定约束的约束边插入到表示图中(508),并将表示图提供为训练数据以训练机器学习模型(510)。在实现逻辑500时,约束生成引擎112通过将机器学习模型应用于不同CAD组件来生成不同CAD组件的约束(512)。
图5所示的逻辑500提供了计算系统100可以支持基于ML生成CAD组件的约束的说明性示例。本文设想逻辑500中的额外或替代步骤,包括根据本文针对约束学习引擎110、约束生成引擎112、ML模型120或其任意组合描述的各个特征中的任一者。
图6示出了支持基于ML生成CAD组件的约束的计算系统600的示例。计算系统600可以包括处理器610,其可以采取单个或多个处理器的形式。一个或多个处理器610可以包括中央处理单元(CPU)、微处理器或适于执行存储在机器可读介质上的指令的任意硬件设备。计算系统600可以包括机器可读介质620。机器可读介质620可以采取存储可执行指令的任意非瞬态电子、磁性、光学或其他物理存储设备的形式,可执行指令例如为图6所示的约束学习指令622和约束生成指令624。由此可见,机器可读介质620可以是例如随机存取存储器(RAM)(例如动态RAM(DRAM))、闪速存储器、自旋扭矩存储器、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。
计算系统600可以通过处理器610执行存储在机器可读介质620上的指令。执行指令(例如约束学习指令622和/或约束生成指令624)可以使得计算系统600执行本文所述的基于ML的约束生成特征中的任何特征,包括根据约束学习引擎110、约束生成引擎112、ML模型120或其任何组合的特征中的任何特征。
例如,处理器610对约束学习指令622的执行可以使得计算系统600访问包括多个CAD零件的CAD组件,并且生成CAD组件的表示图。表示图中的节点可以表示多个CAD零件的几何面,并且表示图中的边可以表示多个CAD零件的几何边。处理器610对约束学习指令622的执行还可以使得计算系统600确定CAD组件中的约束,其中,约束可以限制CAD组件中的不同CAD零件的几何面之间的移动程度。处理器610对约束学习指令622的执行还可以使得计算系统600将表示所确定的约束的约束边插入到表示图中,并且将表示图提供为训练数据以训练机器学习模型。处理器610对约束生成指令624的执行可以使得计算系统600通过将机器学习模型应用于不同CAD组件来生成不同CAD组件的约束。
如本文所述的任何额外或替代的基于ML的约束生成特征可以经由约束学习指令622、约束生成指令624或两者的组合来实现。
包括约束学习引擎110和约束生成引擎112的上述系统、方法、设备和逻辑可以以硬件、逻辑、电路和存储在机器可读介质上的可执行指令的许多不同组合以许多不同方式实现。例如,约束学习引擎110、约束生成引擎112或其组合可以包括控制器、微处理器或专用集成电路(ASIC)中的电路,或者可以利用分立逻辑或组件或其他类型的模拟或数字电路的组合来实现,这些分立逻辑或组件或电路组合在单个集成电路上或分布在多个集成电路之间。产品(例如计算机程序产品)可以包括存储介质和存储在介质上的机器可读指令,当在终端、计算机系统或其他设备中执行时,机器可读指令使得设备执行根据以上描述中的任意一者(包括根据约束学习引擎110、约束生成引擎112或其组合的任意特征)的操作。
本文所述的系统、设备和引擎(包括约束学习引擎110和约束生成引擎112)的处理能力可以分布在多个系统组件之间,例如分布在多个处理器和存储器之间,可选地包括多个分布式处理系统或云/网络元件。参数、数据库和其它数据结构可以被分开存储和管理,可以被结合到单个存储器或数据库中,可以以许多不同的方式在逻辑上和物理上组织,并且可以以许多方式实现,包括例如链表、散列表或隐式存储机制的数据结构。程序可以是单个程序的部分(例如子例程)、单独的程序、跨若干存储器和处理器分布、或者以许多不同方式实现,例如在库(例如共享库)中。
虽然以上描述了各种示例,但是更多的实现方式是可能的。
Claims (15)
1.一种方法,包括:
通过计算系统(100、600):
访问(502)包括多个计算机辅助设计(CAD)零件的CAD组件(130);
生成(504)所述CAD组件(130)的表示图(210),其中,所述表示图(210)中的节点表示所述多个CAD零件的几何面,并且所述表示图(210)中的边表示所述多个CAD零件的几何边;
确定(506)所述CAD组件(130)中的约束,其中,所述约束限制所述CAD组件(130)中的不同CAD零件的几何面之间的移动程度;
将表示所确定的约束的约束边插入(508)到所述表示图(210)中;
将所述表示图(210)提供(510)为训练数据以训练机器学习模型(120);以及
通过将所述机器学习模型(120)应用于不同CAD组件(410)来生成(512)所述不同CAD组件(410)的约束(430)。
2.根据权利要求1所述的方法,其中,确定所述CAD组件(130)中的所述约束包括识别所述CAD组件(130)中的用户指定的约束。
3.根据权利要求1或2所述的方法,其中,确定所述CAD组件(130)中的所述约束包括根据所述CAD组件(130)的几何形状推断所述约束。
4.根据权利要求3所述的方法,其中,根据所述CAD组件(130)的所述几何形状推断所述约束包括:
确定给定约束类型的公式表示;以及
使用所述公式表示来比较所述CAD组件(130)的所选几何面,以确定所述所选几何面之间的所述给定约束类型的约束。
5.根据权利要求4所述的方法,其中,比较所述CAD组件(130)的所述所选几何面包括:
识别所述CAD组件(130)的给定CAD零件的几何面;
确定在距所述给定CAD零件的所述所识别的几何面的阈值距离内的其他CAD零件的几何面;以及
在所述给定CAD零件的所述所识别的几何面与所述其他CAD零件的各个几何面之间应用所述给定约束类型的所述公式表示,以确定所述给定约束类型的所述约束。
6.根据权利要求1至5中任一项所述的方法,还包括:将特征向量(230)插入到所述表示图(210)中的所述节点中,其中,给定特征向量表示所述CAD组件(130)的给定几何面的拓扑和几何特征。
7.根据权利要求6所述的方法,其中,所述CAD组件(130)的给定几何面的所述特征向量(230)表示所述给定几何面的图元类型、与所述给定几何面相邻的其它几何面的数量、所述给定几何面的面积、所述给定几何面的周长、所述给定几何面的图元半径、所述给定几何面的法向量、所述给定几何面的旋转或尺度不变描述符、或其任何组合。
8.一种系统(100),包括:
约束学习引擎(110),其被配置为:
访问包括多个计算机辅助设计(CAD)零件的CAD组件(130);
生成所述CAD组件(130)的表示图(210),其中,所述表示图(210)中的节点表示所述多个CAD零件的几何面,并且所述表示图(210)中的边表示所述多个CAD零件的几何边;
确定所述CAD组件(130)中的约束,其中,所述约束限制所述CAD组件(130)中的不同CAD零件的几何面之间的移动程度;
将表示所确定的约束的约束边插入到所述表示图(210)中;以及
将所述表示图(210)提供为训练数据以训练机器学习模型(120);和
约束生成引擎(112),其被配置为通过将所述机器学习模型(120)应用于不同CAD组件(410)来生成所述不同CAD组件(410)的约束(430)。
9.根据权利要求8所述的系统(100),其中,所述约束学习引擎(110)被配置为通过识别所述CAD组件(130)中的用户指定的约束来确定所述CAD组件(130)中的所述约束。
10.根据权利要求8或9所述的系统(100),其中,所述约束学习引擎(110)被配置为通过根据所述CAD组件(130)的几何形状推断所述约束来确定所述CAD组件(130)中的所述约束。
11.根据权利要求10所述的系统(100),其中,所述约束学习引擎(110)被配置为通过以下方式来根据所述CAD组件(130)的所述几何形状推断所述约束:
确定给定约束类型的公式表示;以及
使用所述公式表示来比较所述CAD组件(130)的所选几何面,以确定所述所选几何面之间的所述给定约束类型的约束。
12.根据权利要求11所述的系统(100),其中,所述约束学习引擎(110)被配置为通过以下方式来比较所述CAD组件(130)的所述所选几何面:
识别所述CAD组件(130)的给定CAD零件的几何面;
确定在距所述给定CAD零件的所述所识别的几何面的阈值距离内的其他CAD零件的几何面;以及
在所述给定CAD零件的所述所识别的几何面与所述其他CAD零件的各个几何面之间应用所述给定约束类型的所述公式表示,以确定所述给定约束类型的所述约束。
13.根据权利要求8至12中任一项所述的系统(100),其中,所述约束学习引擎(110)还被配置为:将特征向量(230)插入到所述表示图(210)中的所述节点中,其中,给定特征向量表示所述CAD组件(130)的给定几何面的拓扑和几何特征。
14.根据权利要求13所述的系统(100),其中,所述CAD组件(130)的给定几何面的所述特征向量(230)表示所述给定几何面的图元类型、与所述给定几何面相邻的其它几何面的数量、所述给定几何面的面积、所述给定几何面的周长、所述给定几何面的图元半径、所述给定几何面的法向量、所述给定几何面的旋转或尺度不变描述符、或其任何组合。
15.一种包括指令(622、624)的非瞬态机器可读介质(620),所述指令(622、624)在由处理器(610)执行时,使得计算系统(600)执行根据权利要求1至7中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041036517 | 2020-08-25 | ||
IN202041036517 | 2020-08-25 | ||
PCT/US2021/042737 WO2022046329A1 (en) | 2020-08-25 | 2021-07-22 | Machine learning-based generation of constraints for computer-aided design (cad) assemblies |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115997213A true CN115997213A (zh) | 2023-04-21 |
Family
ID=77358375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180052875.4A Pending CN115997213A (zh) | 2020-08-25 | 2021-07-22 | 计算机辅助设计(cad)组件的约束的基于机器学习的生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230267248A1 (zh) |
EP (1) | EP4185981A1 (zh) |
CN (1) | CN115997213A (zh) |
WO (1) | WO2022046329A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117744408A (zh) * | 2024-02-18 | 2024-03-22 | 粤港澳大湾区数字经济研究院(福田) | 一种约束求解引擎的测试方法、系统、终端及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996883B (zh) * | 2022-07-18 | 2023-01-03 | 广州中望龙腾软件股份有限公司 | 基于t型槽型材的连接件装配方法、智能终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060082572A1 (en) * | 2004-09-14 | 2006-04-20 | Baardse Dirk J | Inferring of associative constraints and supporting objects for 3D curves |
US11321605B2 (en) * | 2017-11-13 | 2022-05-03 | Dassault Systemes Solidworks Corporation | Automatic assembly mate creation for frequently-used components |
-
2021
- 2021-07-22 US US18/041,176 patent/US20230267248A1/en active Pending
- 2021-07-22 WO PCT/US2021/042737 patent/WO2022046329A1/en unknown
- 2021-07-22 CN CN202180052875.4A patent/CN115997213A/zh active Pending
- 2021-07-22 EP EP21755635.6A patent/EP4185981A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117744408A (zh) * | 2024-02-18 | 2024-03-22 | 粤港澳大湾区数字经济研究院(福田) | 一种约束求解引擎的测试方法、系统、终端及存储介质 |
CN117744408B (zh) * | 2024-02-18 | 2024-06-11 | 粤港澳大湾区数字经济研究院(福田) | 一种约束求解引擎的测试方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022046329A1 (en) | 2022-03-03 |
US20230267248A1 (en) | 2023-08-24 |
EP4185981A1 (en) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7049763B2 (ja) | 二次元画像からの三次元モデル化オブジェクトの認識 | |
JP6294072B2 (ja) | 剛体運動によって変換される幾何学要素 | |
CN107545025B (zh) | 利用形态学标准查询数据库 | |
Yang et al. | A Point Cloud Simplification Method Based on Modified Fuzzy C‐Means Clustering Algorithm with Feature Information Reserved | |
CN108073682A (zh) | 基于参数视图函数查询数据库 | |
US11321605B2 (en) | Automatic assembly mate creation for frequently-used components | |
Di Stefano et al. | An approach for feature semantics recognition in geometric models | |
CN108351909B (zh) | 计算机辅助设计(cad)环境中用于自动组装部件的数据处理系统和方法 | |
CN115997213A (zh) | 计算机辅助设计(cad)组件的约束的基于机器学习的生成 | |
JP2019045894A (ja) | 検索プログラム、検索方法、及び、検索プログラムが動作する情報処理装置 | |
Saravanan et al. | Optimal geometric tolerance design framework for rigid parts with assembly function requirements using evolutionary algorithms | |
JP6869023B2 (ja) | 探索のための3dから2dへの再画像化 | |
US20160364908A1 (en) | Analysis Model Creation Assistance System, Analysis Model Creation Assistance Device and Analysis Model Creation Assistance Program | |
Liu et al. | Table-top scene analysis using knowledge-supervised MCMC | |
Lim et al. | Machining feature recognition using descriptors with range constraints for mechanical 3D models | |
Takaishi et al. | Free-form feature classification for finite element meshing based on shape descriptors and machine learning | |
US20220156416A1 (en) | Techniques for comparing geometric styles of 3d cad objects | |
US20220156415A1 (en) | Techniques for generating subjective style comparison metrics for b-reps of 3d cad objects | |
Wang | Research on Shape Feature Recognition of B‐Rep Model Based on Wavelet Transform | |
Takashima et al. | Shape descriptor-based similar feature extraction for finite element meshing | |
Liu et al. | Table-Top Scene Analysis Using Knowledge-Supervised MCMC | |
Kent et al. | A Hierarchical Machine Learning Workflow for Object Detection of Engineering Components | |
KR102347407B1 (ko) | Cad모델 기반 cam모델 생성방법 | |
Li et al. | Defining a feature-level digital twin process model by extracting machining features from MBD models for intelligent process planning | |
US20220405447A1 (en) | Machine learning-based selective incarnation of computer-aided design objects |
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 |