掌桥专利:专业的专利平台
掌桥专利
首页

用于计算机辅助设计(CAD)模型的反约束配置和实施

文献发布时间:2023-06-19 11:26:00


用于计算机辅助设计(CAD)模型的反约束配置和实施

背景技术

计算机系统可用于创建、使用和管理产品和其他物品的数据。计算机系统的示例包括计算机辅助设计(Computer-Aided Design,CAD)系统(其可以包括计算机辅助工程(Computer-Aided Engineering,CAE)系统)、可视化和制造系统、产品数据管理(ProductData Management,PDM)系统、产品生命周期管理(Product Lifecycle Management,PLM)系统等。这些系统可以包括有助于产品结构的设计和模拟测试的部件。

发明内容

所公开的实现方式包括支持用于表示物理对象的CAD模型的反约束配置和实施(enforcement)的系统、方法、装置和逻辑。反约束可以指明不要应用于CAD模型的部件的给定约束。

在一个示例中,可以由CAD系统执行、实行或以其他方式来实现方法。该方法可以包括:维持表示物理对象的CAD模型;设定用于CAD模型的部件的反约束,反约束指明不要应用于CAD模型的部件的给定约束;识别对CAD模型进行的影响所述部件的用户修改;以及结合用户修改来更新部件,而不应用在反约束中指明的给定约束。

在另一示例中,系统可以包括反约束配置引擎和反约束实施引擎。反约束配置引擎可以被配置为:识别用户动作,该用户动作指明给定约束不要应用于表示物理对象的CAD模型的部件,以及设定用于CAD模型的部件的反约束,该反约束指明给定约束不要应用于CAD模型的部件。反约束实施引擎可以被配置为识别对CAD模型进行的影响部件的用户修改,以及结合用户修改来更新部件,而不应用在反约束中指明的给定约束。

在又一示例中,非瞬态机器可读介质可以存储由处理器可执行的指令。在执行时,该指令可以使处理器或CAD系统维持表示物理对象的CAD模型;设定用于CAD模型的部件的反约束,该反约束指明不要应用于CAD模型的部件的给定约束;识别对CAD模型进行的影响所述部件的用户修改;以及结合用户修改来更新部件,而不应用在反约束中指明的给定约束,包括:识别对部件的候选更新,所述候选更新包括给定约束,以及结合对CAD模型的用户修改来确定不将候选更新应用于部件。

附图说明

在以下详细描述中并且参考附图描述了某些示例。

图1示出了支持用于CAD模型的反约束配置和实施的CAD系统的示例。

图2示出了由反约束配置引擎进行的示例反约束配置。

图3示出了由反约束实施引擎进行的示例反约束实施。

图4示出了系统可以实现以支持用于CAD模型的反约束配置和实施的逻辑的示例。

图5示出了系统可以实现以支持用于CAD模型的反约束配置和实施的逻辑的另一示例。

图6示出了支持用于CAD模型的反约束配置和实施的系统的示例。

具体实施方式

以下讨论涉及约束。约束可以指代设计部件的任何特性(characteristic)、特征(feature)、限制(restriction)、行为特点或其他定义方面。在CAD模型、CAE模型或表示物理对象的其他图形模型的背景中,约束可以确保在对CAD模型的后续改变或编辑期间维持某些部件特性。可关于设计的其他部件来定义约束,并且示例约束包括平行约束、对称约束、旋转的、径向的、切线的、共线的和其他几何的或位置上的约束、尺寸值阈值、距离阈值、形状要求、取向限制和许多更多的约束。约束可以确保在通过CAD工具进行的产品设计阶段期间维持所设计的对象的某些物理特性。

CAD系统可以支持对图形模型的任何数量的部件(诸如线、曲线、形状、设计要素等)应用各种约束。因此,即使图形模型被进一步改变、修改或处理,约束也可以允许图形模型维持某些设计特性。

虽然CAD系统可以允许用户手动地输入约束来设计CAD模型的部件,但是创建全面且准确的约束的集合可能是耗时且令人困惑的,特别是随着CAD模型的尺寸和复杂性的增加。通过CAD模型设计的物理产品可以包括数百万个部件,通常更多,使得一致的CAD模型行为耗时并且计算密集。

一些CAD系统可以基于用户动作(例如,平行位置或切向位置的曲线放置)来推断约束,用户动作可以在用户的编辑操作期间被可选地应用。约束推断可以尝试确定修改和动作中的用户意图,提供可能的或推荐的CAD修改以经由推断的约束来一致地应用。然而,在一些情况下,推断的约束可能是不完整的、不准确的或不持久的。另一方面,对CAD模型中的每个可应用的约束进行完全的用户说明(full user-specification)是耗时的,并且可能经常导致不准确性或不一致性。

本文中的公开可以提供用于反约束配置和实施的系统、方法、装置和逻辑。如下面更详细描述的,反约束可以指CAD系统选择不应用于CAD模型的部件的特定约束或约束的集合。就此而言,本文所述的特征可以提供CAD系统通过其禁用用于CAD模型的约束的机制。由于CAD系统可以基于对CAD模型的用户修改来推断多个、不同的约束,因此反约束配置和说明可以使应用于CAD模型的可能的约束的集合变窄,支持一致的CAD模型行为并且具有提高的效率和降低的存储要求。

例如,与(例如,经由约束求解器)明确定义的CAD模型相比,本文所描述的反约束特征(anti-constraint feature)可获得一致的CAD模型行为,但这样做的同时具有降低的存储要求和提高的计算性能。由CAD系统跟踪的反约束的数量可以比通过用于完全约束模型的约束求解器确定的显式约束(explicit constraint)的数量少几十到几百倍(或者甚至更多),但是仍然可以维持一致的模型行为。因此,本文中描述的反约束特征可以提供具有降低的存储要求和提高的性能的一致的、准确的CAD模型性能,从而向CAD计算系统提供技术改进。此外,本文所描述的反约束特征可以通过允许用户聚焦于模型设计而不是学习并反复手动地应用复杂的设计约束来减少CAD模型设计中所需要的用户时间,减少计算和资源消耗,并改进CAD系统的可用性。

图1示出了支持用于CAD模型的反约束配置和实施的CAD系统100的示例。CAD系统100可以采取计算系统的形式,包括单个或多个计算装置,诸如应用服务器、计算节点、台式或膝上型计算机、智能电话或其他移动装置、平板装置、嵌入式控制器等等。在一些实现方式中,CAD系统100实现CAD工具或CAD程序,用户可以通过该工具或CAD程序设计并模拟产品结构的测试。

如本文更详细描述的,CAD系统100可以放宽或以其他方式禁用已经针对CAD模型确定(例如,推断)的约束,经由反约束来这样做。在该意义上,CAD系统100可以至少部分地基于CAD模型不要有如何行为的用户指示或意图来控制CAD模型部件。例如,CAD系统100可以利用反约束和约束(这两者都可以是用户指明的)的组合来控制CAD模型的行为,例如,由在活动编辑模式(例如,草绘(sketch)模式)期间的用户修改或者在非活动模式期间影响CAD模型的其他设计修改所导致的改变。这种控制可以提供一致的机制来确保适当的CAD模型行为,但是这样做不需要用于约束求解器或其他处理以确定完全良好的行为的约束模型的昂贵的计算要求。

作为示例实现方式,图1所示的CAD系统100包括反约束配置引擎108、反约束实施引擎110和图形用户界面(graphical user interface,GUI)112。CAD系统100可以各种方式(例如,作为硬件和编程)实现引擎108和110(及其部件)。用于引擎108和110的编程可以采取存储在非瞬态机器可读存储介质上的处理器可执行指令的形式,并且用于引擎108和110的硬件可以包括用以执行这些指令的处理器。处理器可以采取单处理器或多处理器系统的形式,并且在一些示例中,CAD系统100使用相同的计算系统特征或硬件部件(例如,公共处理器或公共存储介质)来实现多个引擎。GUI 112可以包括各种部件,用户通过这些部件与CAD系统100交互,诸如显示器、键盘、鼠标、触摸屏等。

用户可以通过GUI 112访问和修改CAD模型,例如以修改图1所示的CAD模型120。在操作中,反约束配置引擎108可以识别指明给定约束不要应用于CAD模型120的部件的用户动作,并且设定用于CAD模型120的部件的反约束。反约束实施引擎110可以识别对CAD模型120进行的影响部件的用户修改,并且结合用户修改来更新部件,而不应用在反约束中指明的给定约束。

接下来更详细地描述反约束配置和实施的一些示例特征。在2维(2D)CAD模型和这种2D CAD模型中的直线或曲线的几何约束的背景下,描述了以下示例中的许多示例。然而,本文描述的任何特征可以一致地应用于任何维度和类型的CAD模型或部件约束。

图2示出了由反约束配置引擎108进行的示例反约束配置。相对于CAD模型220提供了图2中所示的示例,CAD模型220可以描绘表示物理对象的2D设计模型。CAD模型220因此可以包括所表示的物理对象及其部件的线、曲线、尺寸、参数、约束和其他设计特性。在图2中,CAD模型220包括各种部件,包括线222以及用其对应的维度值标记为“p1”、“p2”、“p3”和“p4”的维度值。

在一些示例中,反约束配置引擎108维持CAD模型220。在这样做时,反约束配置引擎108可以存储CAD模型220,通过GUI呈现CAD模型220,或者以其他方式控制对CAD模型220的用户访问。因此,反约束配置引擎108可以实现用于用户创建和修改CAD模型220的各种CAD功能。

反约束配置引擎108可以实现CAD系统100的与反约束的识别、说明或其他配置相关的任何特征。例如,反约束配置引擎108可以支持在特定于部件的基础上指明和配置反约束。即,反约束配置引擎108可以设定用于CAD模型220的特定部件的任何数量的反约束,并且设定可应用于CAD模型220的另一部件的其他反约束。作为说明性示例,图2所示的CAD模型220包括被识别为线222的CAD模型部件,并且反约束配置引擎108可以识别和配置特定于线222的反约束(与CAD模型220的其他部件相比)。

在一些实现方式中,反约束配置引擎108提供CAD用户可以通过其来指明反约束的机制。例如通过在显示CAD模型220的GUI 112中呈现反约束说明图标来设想任何类型的可视指示符或说明机制。反约束配置引擎108在一些系统中可以提供反约束菜单,用户可以通过该菜单来选择或指明各种反约束配置。

作为图2中所示的说明性示例,反约束配置引擎108提供用于CAD模型220的线222的反约束菜单。反约束配置引擎108可以产生反约束菜单以包括针对特定CAD模型部件所识别的任意数量的推断的或可能的约束,并且进一步提供选项来设定用于推断的/可能的约束的反约束。使用线222具有示例,CAD系统100可以基于来自先前用户动作的线222的取向或定位来推断用于线222的垂直约束。其他可能的推断的约束(图2中未示出)包括CAD模型220的线222与其他CAD部件之间的平行约束或切线约束。

对于推断的垂直约束,反约束配置引擎108为用户提供选择机制以将垂直约束指明为反约束,在图2中通过“不垂直”选项示出了其示例。因此,用于线222的反约束可以指明不要应用于线222的特定约束(例如,垂直约束)。垂直反约束可以向CAD系统100指示线222不需要以垂直取向进行定位,并且对CAD模型220的后续修改可以(并且可能应当)将线222重新取向为不再以垂直取向。

如在图2中的说明性示例中进一步看到的,反约束配置引擎108可以支持不同类型的反约束的配置,诸如临时类型反约束、永久类型反约束和条件类型反约束。临时类型反约束可以在临时基础上可应用于CAD模型220,例如,关于通过其推断给定约束的特定用户动作或用户修改或用于CAD模型220的特定编辑或草绘会话。图2中的“现在不垂直”选项示出了反约束配置引擎108可以提供的临时类型反约束。

永久类型反约束可以可应用于CAD模型220,直到以其他方式被去激活。因此,CAD系统100可以对影响CAD模型部件(永久类型反约束可应用于该CAD模型部件)的后续用户动作或其他设计改变应用永久类型反约束。图2中的“不总是垂直”选项示出了反约束配置引擎108可以提供的永久类型反约束。

本文也设想了条件类型反约束,反约束配置引擎108可以提供、设定或配置条件类型反约束。条件型反约束可以指明不要应用给定约束(并且,因此,当给定约束不要被应用时,当特定条件不被满足时)的特定条件。就此而言,反约束配置引擎108可以将任何数量的条件与特定的反约束相关,其中在确定相关条件被满足时给定约束不被应用。可以设定用于条件类型反约束的任何类型的条件。示例条件包括特定尺寸范围(例如,长度小于5mm的线)、几何属性条件(不应用于圆,但应用于椭圆)、距离阈值、基于部件数量的条件(例如,当模型要素的数量超过阈值时)或任何其他指明的条件。这种条件可以例如是用户指明的。

反约束配置引擎108可以用各种方式指明、识别、设定、更改或以其他方式配置反约束。在一些实现方式中,反约束配置引擎108维持反约束列表230,该反约束列表230跟踪可应用于CAD模型220的部件的任何反约束。反约束配置引擎108本身可以实现反约束列表230或远程地访问反约束列表230(或两者的组合)。反约束列表230可以采取将CAD模型部件与反约束相关联(例如,作为反约束条目)的任何数据结构的形式,并且因此可以包括表、关系数据库或其他合适的数据结构。

在图2中,反约束配置引擎108识别用户动作以设定用于线222的反约束(例如,通过“不总是垂直”选项的用户选择来进行)。作为响应,反约束配置引擎108可以将反约束条目插入到用于线222的反约束列表230中。在该示例中,反约束条目指明用于线222的永久类型垂直反约束。以一致的方式,CAD系统100可以配置用于CAD模型的各种部件的反约束。

图3示出了由反约束实施引擎110进行的示例反约束实施。在一般意义上,反约束实施引擎110可以控制CAD模型220,使得被指明为用于CAD模型部件的反约束的任何约束不被应用于CAD模型220。具体地,反约束实施引擎110可以识别对CAD模型220进行的影响部件的具有反约束的用户修改,并且结合用户修改来更新部件,而不应用在反约束中指明的给定约束。

改变特定CAD模型部件的用户做出的改变可以影响与特定CAD模型部件相关的其他部件的尺寸、形状或呈现(rendering)。例如,重新调整CAD模型220的形状的用户动作可以进一步使CAD系统100修改形成该形状或以其他方式与该形状相关的多条直线或曲线。这种影响可以由反约束实施引擎110通过任何其他部件来确定,该任何其他部件通过指明的或推断的约束(例如,通过平行的、阈值距离、切线、共线或其他约束)与特定CAD模型部件相关,或者它们本身以用户做出的改变影响的特定方式(例如,垂直的、水平的、固定在特定位置、维持特定长度等)受到约束。

为了说明,对CAD模型220(或包括由CAD模型220表示的物理对象的更大设计)的各种用户动作可以影响线222。一个这种改变包括对图2中所示的维度“p1”的维度值的改变。当p1的维度值改变时,CAD系统100可以以使得线222改变的方式更新CAD模型220,并且因此用以减小p1的维度值的用户做出的改变影响线222。维度p1和线222因此可以被表征为CAD模型220的相关的部件。

对CAD模型220的维度值p1的用户做出的改变可以引起指明的反约束的实施。当维度值p1改变时,CAD模型220中的其他相关的部件(包括线222)能够以多种方式更新。在图3所示的具体示例中,CAD系统100识别用以将维度值p1从45.0减小到30.0的用户动作。

在将维度值p1减小到30.0之前、期间或之后,CAD系统100可以识别可能受维度值改变影响的CAD模型220的部件。即,反约束实施引擎110可以识别与维度p1相关的CAD模型部件。在基于维度值改变为p1来更新CAD模型220时,反约束实施引擎110可以推断或以其他方式确定用于受维度值减小影响的相关的部件的约束。换言之,反约束实施引擎110可以识别用于受用户做出的改变影响的相关的部件的候选更新的集合。候选更新的集合可以表示CAD系统100可以对CAD模型220做出的以实现将维度值减小至p1的可能更新的集合,并且因此可以包括用于相关的部件的各种推断的约束。

在图3所示的示例中,反约束实施引擎110基于对CAD模型220进行的以减小p1的维度值的用户修改来识别要应用于线222的候选更新的集合320。具体地,针对CAD模型220确定的候选更新的集合320包括以下用于线222的推断的约束:(i)用于线222的垂直约束,即使维度p1的长度减小,线222也保持垂直取向(如图3中的候选更新321所示);以及(ii)用于CAD模型220中的曲线330的径向约束,维持曲线330的一致的半径值(在图3中显示为候选更新322)。尽管在图3中显示了两个示例候选更新,但是反约束实施引擎110也可以确定用于相关的部件的组合的候选更新,例如,分别用于多个相关的部件的不同推断的约束的排列或组合。

为了实施指明的反约束,反约束实施引擎110可以过滤出应用了反约束指明不要应用的给定约束的任何候选更新。为了这样做,反约束实施引擎110可以对反约束列表230执行查找,以识别指明用于受影响的CAD模型部件或以其他方式与对CAD模型220进行的用户修改相关的CAD模型部件的任何反约束。在图3的示例中,反约束实施引擎110识别可应用于线222(如上所述,该线222与维度p1相关)的永久类型垂直反约束。作为响应,反约束实施引擎110可以通过过滤掉不应用的候选更新321来对线222实施指明的反约束。反约束实施引擎110然后可以从过滤出的集合中选择候选更新来应用。在图3所示的具体示例中,过滤出的集合仅包括候选更新322,并且因此反约束实施引擎110可以在将p1的维度值减小到30.0的过程中根据候选更新322来更新CAD模型220。因此,反约束实施引擎110可以根据指明的反约束来确定针对线222不实施垂直约束。

注意,即使反约束列表230指明用于线222的垂直反约束,也存在其中反约束实施引擎110可以修改CAD模型220使得线222处于垂直取向的场景。这种场景可以基于用以将p1的维度值增加回到45.0的后续的用户改变而发生,例如其中用于曲线330的径向约束使得线222被修改为垂直取向。因此,反约束不指明部件永远不能以使得满足给定约束的方式进行修改。相反,反约束可以使CAD系统100不限制对具有在反约束中指明的给定约束的CAD模型的修改。

如上所述,反约束实施引擎110可以通过不应用在反约束中指明的给定约束来更新CAD模型。设想了其他实现方式示例来更新CAD模型220的部件,而不应用在反约束中指明的给定约束。

作为一个示例,反约束实施引擎110可以基于对CAD模型进行的用户修改来识别要应用于CAD模型部件的候选约束的集合(与可以包括应用于与用户修改相关的部件的多个不同约束的组合的候选更新的集合相比)。候选约束的集合可以包括针对CAD模型部件推断的约束。

在该示例中,反约束实施引擎110可以从候选约束的集合中过滤在用于CAD模型部件的反约束中指明的给定约束。在这样做时,反约束实施引擎110可以获得过滤出的候选约束的集合(例如,过滤针对部件推断的垂直反约束,得到包括正切约束和一致约束的过滤出的列表)。然后,反约束实施引擎110可以结合对CAD模型进行的用户修改将来自过滤出的候选约束的集合的候选约束应用于CAD模型部件。

尽管图3描绘了用于线222的特定反约束的说明性示例,但是CAD系统100可以实施多个反约束,所述多个反约束包括用于多个不同的CAD模型部件的反约束。因此,反约束配置引擎108可以设定用于给定的CAD模型部件的多个反约束,多个反约束中的每个反约束指明不要应用于CAD模型的给定的CAD模型部件的不同约束。反约束实施引擎110可以结合用户修改来更新CAD模型部件,而不应用在多个反约束中指明的不同约束中的任何约束。

在一些示例中,CAD系统100可以提供CAD工具的草绘能力,用户通过该CAD工具可以草绘2D曲线的集合以表示物理对象,作为设计或工程工作流的一部分。在这方面,2D草图可以用作用于物理对象的初始或基线CAD模型。由CAD系统100提供的草绘选项可以最初以空白图形模型开始,用户可以在该空白图形模型上插入直线和曲线以二维地表示物理对象。CAD系统100可以支持将2D草图转换成3D CAD模型。在这种示例中,CAD系统100可以根据在草图处理期间做出的用户动作来识别、设定和实施反约束。对于永久类型反约束,反约束实施引擎110随后也可以在2D到3D转换处理期间应用这种反约束。

CAD系统100因此可以配置和实施对CAD模型的反约束。反约束可以控制CAD模型行为,特别是对于与由用户动作修改的另一CAD模型部件相关的给定CAD模型部件而言。通过集中于不应用的特定约束,CAD系统100可以提供CAD模型约束特征,而不必必要地肯定地指明CAD模型中的每个特定约束。即,本文所描述的反约束特征可以支持准确、一致和有效的CAD模型行为,而无需完全约束的或行为良好的模型。因此,反约束配置和使用可以减少CAD系统100的存储占用(footprint),并且通过减少的资源消耗和执行时间来提高计算性能。

图4示出了系统可以实现以支持用于CAD模型的反约束配置和实施的逻辑400的示例。例如,CAD系统100可以将逻辑400实现为硬件、存储在机器可读介质上的可执行指令或两者的组合。CAD系统100可以通过反约束配置引擎108和反约束实施引擎110来实现逻辑400,CAD系统100可以通过该反约束配置引擎108和反约束实施引擎110来执行或实行逻辑400作为配置和实施反约束的方法。使用反约束配置引擎108和反约束实施引擎110作为示例来提供逻辑400的以下描述。然而,CAD系统100的各种其他实现选项是可能的。

在实现逻辑400时,反约束配置引擎108可以维持表示物理对象的CAD模型(402)。维持图形模型可以包括控制对作为CAD工具的部分的图形模型的访问和修改。反约束配置引擎108还可以识别指明给定约束不要应用于CAD模型的部件(404)的用户动作。作为响应,反约束配置引擎108可以设定用于CAD模型的部件的反约束,该反约束指明给定约束不要应用于CAD模型的部件(406)。

在一些实现方式中,反约束配置引擎108可以确定用于部件的推断的约束的集合,该推断的约束的集合包括由用户动作指明的给定约束。反约束配置引擎108可以向用户提议推断的约束的集合以用于在CAD模型的部件上应用,并响应于用户动作(该用户动作指示来自所提议的推断的约束的集合的给定约束不要应用于部件),设定用于CAD模型的部件的反约束。

在实现逻辑400时,反约束实施引擎110可以识别对CAD模型进行的影响部件的用户修改(408)。影响CAD部件的用户修改可以包括直接对部件进行的任何修改或其它修改,所述其它修改的对CAD模型的至少一个候选更新(例如,推断的约束)包括对部件的改变。由反约束实施引擎110进行的影响确定可以因此包括识别与修改的部件相关的任何CAD模型部件。例如,用户修改可以导致修改的CAD模型部件(例如,图2和3中的维度p1),该修改的CAD模型部件与设定了用于其的反约束的部件(例如,线222)相关。

进一步地,反约束实施引擎110可以结合用户修改来更新部件,而不应用在反约束中指明的给定约束(410)。为了更新部件而不应用在反约束中指明的给定约束,反约束实施引擎110可以基于对CAD模型进行的用户修改来识别要应用于部件的候选约束的集合,候选约束的集合包括给定约束(412)。反约束实施引擎110可以对来自候选约束的集合的给定约束进行过滤,以获得过滤出的候选约束的集合(414),并且结合对CAD模型进行的用户修改,将来自过滤出的候选约束的集合的候选约束应用于部件(416)。

图5示出了CAD系统100可以实现以支持用于CAD模型的反约束配置和实施的逻辑500的另一示例。如上所述,CAD系统100可以支持各种类型的反约束。图5中所示的逻辑500提供了CAD系统100可以如何应用临时类型反约束和永久类型反约束的一个示例。使用反约束配置引擎108和反约束实施引擎110作为示例来提供逻辑500的以下描述。然而,CAD系统100的各种其他实现选项是可能的,包括作为硬件、存储在机器可读介质上的可执行指令或作为两者的组合。

在实现逻辑500时,反约束配置引擎108可以设定用于CAD模型的部件的反约束,包括将反约束设定为永久类型反约束或临时类型反约束(502)。反约束可以指示给定约束不要应用于该部件。在一些实现方式中,反约束配置引擎108可以提供视觉图标或可选择的选项,用户通过该视觉图标或可选择的选项可以指示反约束类型(例如,临时的或永久的)。附加地或可替代地,反约束配置引擎108可以设定或获得关于应用的持续时间、应用的准则(例如,在草绘模式期间,用于设定的时间量、编辑或其他可测量的动作等)的反约束参数。

在一些示例中,反约束配置引擎108响应于对推断的约束(所述推断的约束用于对CAD模型进行的用户修改)的确定或提议来设定临时类型反约束。用户可以选择不应用所提议的推断的约束,反约束配置引擎108可以在该推断的约束上(例如,通过用户选择“现在不垂直”选项,如以上用于图2所讨论的)设定临时类型反约束。在这样做时,CAD系统100可以针对当前用户修改应用一次性的反约束或临时反约束,并且随后呈现用于在后续时间进行考虑、应用或拒绝的推断的约束。

CAD系统100可以基于反约束类型来应用或实施指明的反约束。在实现逻辑500时,反约束实施引擎110可以,例如,以与上述类似的方式识别对CAD模型进行的影响部件的后续用户修改(504)。用户修改可以是后续的,因为它是在反约束的指明或设定之后(例如,其中临时类型反约束可能不再可应用于CAD模型部件)。响应于后续用户修改,反约束实施引擎110可以例如经由查找反约束列表,来确定是否已经设定了用于受影响的部件的任何反约束。

对于受用户修改影响的和利用任何反约束设定的任何部件,反约束实施引擎110可以确定每个可应用的反约束的类型(506)。对于永久类型反约束,反约束实施引擎110可以结合后续用户修改来更新部件,而不应用在反约束中指明的给定约束(508)。对于临时类型反约束,反约束实施引擎110可以潜在地更改CAD模型以应用给定约束,因为反约束是临时类型的并且可能对于用户修改是不可应用的。

例如,反约束实施引擎110可以基于后续用户修改将(在反约束中指明的)给定约束确定为用于CAD模型的部件的推断的约束(510),并且向用户提议推断的约束以应用于CAD模型的部件(512)。在这种情况下,反约束实施引擎110可以确定不实施临时类型反约束,而是在是否应用给定约束的方面给予用户选项。

尽管图5是关于永久反约束类型和临时反约束类型来呈现的,但是逻辑500可以包括任何附加的或可替代的要素以一致地解决任意条件类型反约束。因此,反约束实施引擎110可以将反约束识别为条件类型反约束,并且当相关条件被满足时实施这种反约束,否则则不然(例如,应用给定约束并且实际上不实施反约束)。

图6示出了支持用于CAD模型的反约束配置和实施的系统600的示例。系统600可以包括处理器610,其可以采取单个或多个处理器的形式。处理器610可以包括中央处理单元(Central Processing Unit,CPU)、微处理器或适于执行存储在机器可读介质上的指令的任何硬件装置。系统600可以包括机器可读介质620。机器可读介质620可以采取存储可执行指令(诸如图6中所示的反约束配置指令622和反约束实施指令624)的任何非瞬态电子、磁性、光学或其他物理存储装置的形式。因此,机器可读介质620可以是例如随机存取存储器(Random Access Memory,RAM)(诸如动态RAM(DRAM))、闪存、自旋转移矩存储器、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、存储驱动器、光盘等。

系统600可以通过处理器610执行存储在机器可读介质620上的指令。执行指令可以使得系统600(或任何其他CAD系统)执行本文描述的反约束配置和实施特征中的任何一者,包括根据关于反约束配置引擎108、反约束实施引擎110或两者的组合的特征中的任何一个特征。例如,由处理器610执行反约束配置指令622可以使得系统600维持表示物理对象的CAD模型并设定用于CAD模型的部件的反约束,该反约束指明不要应用于CAD模型的部件的给定约束。

由处理器610执行反约束实施指令624可以使得系统600识别对CAD模型进行的影响部件的用户修改,并且结合用户修改来更新部件,而不应用在反约束中指明的给定约束,包括通过识别包括给定约束的对部件的候选更新,以及结合对CAD模型进行的用户修改来确定不将候选更新应用于该部件。

上述系统、方法、装置和逻辑,包括反约束配置引擎108和反约束实施引擎110,可以以硬件、逻辑、电路和存储在机器可读介质上的可执行指令的许多不同组合的许多不同方式来实现。例如,反约束配置引擎108、反约束实施引擎110或其组合,可以包括控制器、微处理器或专用集成电路(Application Specific Integrated Circuit,ASIC)中的电路,或者可以用组合在单个集成电路上或分布在多个集成电路之中的离散逻辑或部件、或其他类型的模拟或数字电路的组合来实现。产品(诸如计算机程序产品)可以包括存储介质和存储于该介质上的机器可读指令,当在端点、计算机系统或其他装置中执行时,其使得装置执行根据以上任何描述的操作,包括根据反约束配置引擎108、反约束实施引擎110或它们的组合的任何特征的操作。

本文描述的系统、装置和引擎(包括反约束配置引擎108和反约束实施引擎110)的处理能力可以分布在多个系统部件之中,诸如分布在多个处理器和存储器(可选地包括多个分布的处理系统或云/网络元件)之中。参数、数据库和其他数据结构可以被分开地存储和管理,可以结合到单个存储器或数据库中,可以以许多不同的方式在逻辑上和物理上组织,并且可以以许多方式实现,包括诸如链表、散列表或隐式存储机制的数据结构。程序可以是单个程序的部分(例如,子例程)、分开的程序、跨若干存储器和处理器分布的、或以许多不同方式(诸如在库(例如,共享库)中)实现。

尽管上文已经描述各种示例,但更多实现是可能的。

相关技术
  • 用于计算机辅助设计(CAD)模型的反约束配置和实施
  • 用于确定具有一实体集合并满足一组约束集合的模型的配置的方法和系统
技术分类

06120112919217