相关申请的交叉引用
本申请要求于2020年2月5日提交的题为“预测建模”的第62/970,317号美国临时专利申请的优先权权益。该在先申请的公开内容通过在此引用而以其整体合并到本文中。
本申请涉及预测建模,更具体地,涉及计算机辅助设计(cad)程序范围内的预测建模。
背景技术:
计算机辅助设计(cad)是指使用计算机(或工作站)来帮助设计的创建、修改、分析或优化。cad软件,例如达索系统(ds)公司的solidworks和ds公司的catia,可用于创建草图和/或表示可来自所设计的产品的二维(2d)或三维(3d)草图的实体几何图形。
草图和实体几何图形可能有设计要求,其中,创建的几何图形需要在组件的其他区域被复制。这些其他区域通常具有类似的周围几何图形,但是这些其他区域未被定位成使得创建几何图形的图案或镜像可达到期望的结果,就需要用户在每个区域手动创建非常相似的几何图形。即使对于中等复杂的模型,这也需要创建许多草图和下游特征,因此这就变成了非常繁琐和耗时的任务。确实存在一些技术来减少这些任务的重复性。例如,创建由许多草图及其下游特征组成的、用户定义的库特征使得能够在这些其他区域复制几何图形,但这需要用户创建库特征以在每个区域重复使用和定位。
这方面需要改进。
技术实现要素:
在一方面,一种基于计算机的方法包括:能够使用户在计算机辅助设计程序中创建或选择设计中的几何实体;预测几何实体的副本在设计中的位置和方向;以及在设计中的预测位置和方向显示几何实体的副本的可视化表示,作为给用户的建议。
在另一方面,一种计算机包括:计算机显示器;计算机处理器;以及基于计算机的存储器,耦合到计算机处理器。基于计算机的存储器存储计算机可读指令,当计算机处理器执行计算机可读指令时,计算机可读指令使计算机处理器执行以下步骤,该步骤包括:能够使用户在计算机辅助设计程序中创建或选择设计中的几何实体;预测几何实体的副本在设计中的位置和方向;以及在显示装置上,在设计中的预测位置和方向显示几何实体的副本的可视化表示,作为给用户的建议。
在又一方面,一种非瞬态计算机可读介质存储可由处理器执行以执行前述步骤的指令。
在一些实现方式中,存在以下一个或多个优点。
例如,本文公开的系统和技术有助于减少在设计的其他类似区域复制几何图形的重复性。这是在任何基于计算机的设计软件中实现特定组件的设计意图所需要的常见任务。本文公开的系统和技术可以有助于使在类似区域复制几何图形的任务更有效。此外,试图不仅通过考虑定量因素还考虑定性因素来捕获设计意图。因此,在这些系统和技术的帮助下,设计软件用户可提高他们的效率,且与现有的解决方案相比,可使他们的生产率提高许多倍。系统和技术往往非常容易使用且直观。此外,内部的属性选择有助于在易于使用的用户界面中捕获用户的设计意图。还减少了与在设计过程中执行的常见但必要的任务相关联的繁琐性。此外,由人完成的重复性任务可导致错误。本文公开的系统和技术可有助于减轻这些类型的错误。
从说明书和附图中以及从权利要求中,其他特点和优点将是明显的。
附图说明
图1是配置为实施预测建模的计算机的示意性表示。
图2是表示预测建模过程的流程图。
图3a至图3g示出了表示根据图2的流程图的预测建模的一个示例的一系列部分截图。
图4a至图4j示出了说明预测建模的另一个示例的一系列部分截图。
图5a至图5e示出了说明预测建模的又一个示例的一系列部分截图。
图6a至图6c是表示计算机实施的用于计算预测/建议的过程的一个示例性实现方式的流程图。
图7是在建模对象的边界表示中的不同拓扑元素之间的示例性层次关系的示意性表示。
图8至图12是一系列与预测建模的特定示例有关的图像。
类似的附图标记指代类似的元素。
具体实施方式
cad用户有时需要在设计中创建相同几何特征的多个版本。在一些情况下,cad用户创建几何特征的原始版本,然后希望在设计的不同区域创建相同几何特征的其他版本,这样的不同区域与原始版本的区域具有相同或类似几何特性。例如,cad用户可以创建设计,该设计包括实心矩形长方体主体,该主体的一个角附近有延伸穿过该主体的孔。然后cad用户可能想添加另外三个延伸穿过该主体的孔-在矩形长方体主体的其他角的每一个角上各添加一个孔--每个孔与原始孔在尺寸上相同并相对于其各自的角以与原始孔类似的方式定向。如果没有本文公开的系统和技术,cad用户可能需要单独创建和定位每个孔;这无疑是繁琐且耗时的过程,且可能导致用户在创建和/或定位其他三个孔时出现错误。
在典型的实现方式中,本文公开的系统和技术有利于在设计中具有相同或相似的地理特性的不同区域(例如,在实心矩形长方体主体的多个角处)创建相同几何特征(例如,孔)的多个版本。更具体地,在典型的实现方式中,当cad用户在设计中创建(或选择)特定的几何特征(例如,主体中的孔)时,系统自动预测在设计中用户可能想要放置相同几何特征的其他位置以及用户想要如何定向该几何特征。系统将该信息作为建议呈现给cad用户,而cad用户可接受或拒绝部分或全部建议。
在典型的实现方式中,预测通过将创建了原始几何特征的区域的几何特性与设计中其他区域的几何特性进行比较来实现。
系统可以将其预测/建议作为设计本身的一部分在屏幕上呈现给用户-通常,以从视觉上将建议的预测与设计中的其他几何实体区分开的方式呈现给用户。典型地,系统会生成预测,使得每个预测除了其在设计中的位置或许还有方向之外,与原始的、用户创建的几何实体相同。
cad用户接受的任何预测会自动变成设计中的几何特征。
在典型的实现方式中,这些系统和技术有助于在cad系统中自动进行、加速和简化设计的创建,包括非常复杂的设计的创建。在这些系统和技术的帮助下,cad用户可提高他们的效率、减少错误的发生、与其他系统相比,使生产率提高许多倍。系统和技术非常容易使用。此外,在许多情况下,系统和技术可以有助于通过易于使用的用户界面来捕获用户的设计意图。系统和技术还减少了设计过程中与常见任务相关联的繁琐性,即减少了与在设计中不同但相似的区域创建相同几何特征的多个版本相关联的繁琐性。因为预测通常是自动生成的,以与用户创建的原始几何实体在尺寸上相同,因此本文公开的系统和技术可以消除或至少减少用户在整个设计中在不同的、几何相似的位置创建和定位相同几何实体的多个版本时出现错误的可能性。
图1是计算机(或系统)100的示例的示意性表示,该计算机(或系统)100可以单独地或与其他计算机或计算机组件(例如,服务器或类似组件)结合,执行和/或促进本文公开的基于计算机的功能。
在典型的实现方式中,计算机100被配置为提供与计算机辅助设计(cad)软件相关的功能。更具体地,计算机100被配置为提供如下功能,该功能使cad用户能够快速地且容易地将设计中的某些几何实体复制到设计中的多个不同位置,这样的不同位置在设计的环境中往往是有意义的。在高层次上,计算机通过针对cad用户创建(或选择)的每个几何实体,预测在设计中用户可能想要增加该几何实体的副本的其他地方以及在设计中可如何定向任何这样的副本,来提供这种功能。计算机100通常将其预测在设计中以动态预览的方式呈现,并给cad用户提供多种选项,以快速且容易地接受、修改和/或拒绝计算机做出的任何或所有预测。
在典型的实现方式中,计算机100通过计算(识别)与设计的建模对象中的所有或至少数个共顶点相关联的局部坐标系和描述符来做出其预测。计算机100使用描述符来识别具有类似周围特性的共顶点,并使用局部坐标系将几何实体的任何副本(或拷贝)定位在有意义的、直观的位置和方向上。
在典型的实现方式中,计算机100和本文公开的计算机功能,有助于cad软件用户提高他们的效率,并与现有技术相比,使他们的生产率提高许多倍。此外,在典型的实现方式中,这样的功能易于使用,有助于捕获用户的设计意图,并可通过易于使用的用户界面进行访问。这样的功能通常还减少了与在设计过程中执行的常见但必要的任务-在设计中创建相同(或类似)的几何特征的多个副本相关联的繁琐性。
计算机100具有系统总线112(即用于在计算机100的组件之间传输数据的一组硬件线路)。系统总线112本质上是连接计算机的不同元件(例如,处理器102、存储设备104、存储器106、输入/输出端口110、网络接口端口103等)的共享管道,并能够使信息在连接的元件之间进行传输。附接到系统总线112的是一个或多个i/o端口/设备110,这样的i/o端口/设备包括各种输入和/或输出设备(例如,键盘、鼠标、显示器(触摸感应型或其他)、打印机、扬声器、麦克风等),或用于将各种输入和/或输出设备(例如,键盘、鼠标、显示器(触摸感应型或其他)、打印机、扬声器、麦克风等)连接到计算机100。一个或多个网络接口103使得计算机100能够连接到通过网络与计算机100耦合的各种其他设备(例如,其他计算机、服务器、存储用存储设备等),并与通过网络与计算机100耦合的各种其他设备(例如,其他计算机、服务器、存储用存储设备等)交互。存储器106本质上是存储计算机可读指令的计算机可读介质。存储器实际上可以包括任何种类的基于计算机的存储器,包括易失性计算机存储器和/或非易失性计算机存储器。在典型的实现方式中,存储器106存储计算机软件,计算机软件包括计算机可读指令,当处理器102执行计算机可读指令时,计算机可读指令使处理器102执行本文明确公开的过程和其他过程,以支持归属于计算机100的和本文公开的其他各种功能。在图示的实现方式中,软件108包括计算机辅助设计(cad)软件111,cad软件111具有预测建模(pm)模块113,该pm模块113包括指令,该指令能够使处理器102和计算机100执行和/或促进/引起本文公开的各种功能。存储器106还存储操作系统(o/s)120,以支持本文公开的各种功能。处理器102附接到系统总线112并提供基于计算机的处理功能。图示的计算机100的组件可以在本地(例如,在一个公共外壳内或在单个工作站上)或者是分布式的(例如,在网络上的多个位置)。
图2是表示与图1的计算机100的示例性用户交互的流程图。图3a至图3g是在系统100中的cad软件程序的图形区域示出处于被创建/修改的不同阶段的设计(建模对象)的显示器(即图1的计算机100中的i/o设备110之一)的部分截图。除非另有指明,否则词语“设计”和短语“建模对象”在本文中在很大程度上可以互换使用。图3a至图3g中的每个截图对应于图2的流程图中的相应步骤。
首先,有必要对术语说几句。边界表示(或b-rep)被大多数现代cad程序使用来表示建模对象。在这种表示中,建模对象由不同拓扑元素(即实体、壳、面、共边链、共边、边、共顶点和顶点)之间的层次关系来表示。图7是在建模对象的边界表示中不同拓扑元素之间的示例性层次关系的示意性表示。根据图示的实现方式,实体由其定界壳表示,壳由一组连接的面表示,面由其定界共边链表示,以及共边链由通过共顶点连接的共边的有序列表表示。当在有边界的几何图形的环境中使用时,共边链可以闭合,也就是说,共边链可以环回到自身。当在草图的环境中使用时,共边链可以是开放式的。共边链可以属于称为其父面的面。草图内的共边链可以没有父面而存在。此外,根据图示的实现方式,共边是在特定共边链的环境中的边的表示。共边的方向可以与边的方向不同。共边由两个共顶点即起始共顶点和结束共顶点定界。考虑选择哪个共顶点作为起始共顶点和选择哪个共顶点作为结束共顶点,可以由在共边的有序链中哪个共顶点先出现来确定。共边总是属于单个共边链,该共边链可以被称为它的父共边链。根据图示的实现方式,边由两个面相遇的曲线/直线来描述。指代每条边的共边的数量等于边参与的共边链的数量。在草图中,边可以有一个或多个共边。在流形实体中,每个边有两个共边。在片状模型中,边可以只有一个共边。在非流形实体中,边可以有两个以上的共边。此外,根据图示的实现方式,共顶点是在特定共边链的环境中的顶点的表示。共顶点作为其前一个共边的结束共顶点并作为其下一个共边的起始共顶点。共顶点总是属于单个共边链,该共边链称为它的父共边链。顶点可以由两个或更多个边相遇的点来描述。指代每个顶点的共顶点的数量通常等于顶点参与的共边链的数量。参考共顶点是指示在计算预测/建议时要考虑的周围区域的环境的共顶点。
下文在标题为“术语和相关概念”的章节中对上述和其他相关术语作了补充说明。
现在参考图2中的流程图,用户(在202处)在设计中创建或选择一个或多个几何实体。
图3a是部分截图,示出了cad用户在cad软件程序的图形区域绘制的基础几何图形300。基础几何图形300包括六边形302,该六边形302的上部区域有矩形切口304。
图3b是另一个部分截图,同样示出了图3a的六边形302。然而,在图3b的截图中,cad用户刚刚在设计中创建了新的几何特征--在六边形302内部的长圆形306。长圆形306位于六边形302的左上方区域,在矩形切口304的上方,并定向成使得其直的平行边位于与六边形302的上边和下边平行的平面上。
接下来,根据图2的流程图,计算机(在204处)在屏幕上显示用户可选的预测建模(pm)按钮。在典型的实现方式中,这是自动完成的,并直接响应于cad用户已在设计中创建了新的几何实体(例如,长圆形306)。这种用户可选的pm按钮308的示例在图3b的截图中示出,位于新创建的几何特征(即长圆形306)右侧。本质上,pm按钮308作为对cad用户的指示器或提醒器,表明系统能够预测(并建议cad用户)在设计中cad用户可能想要添加刚刚创建的几何特征的相同实例的其他地方以及在设计中可如何定向那些实例。
此时(即,如图3b所示,当系统仅仅在屏幕上呈现用户可选的pm按钮308时),计算机100并没有向用户提供关于它的预测可能是什么的任何实质性信息。计算机100仅仅是向用户指示这样的预测可用,且用户可以通过选择用户可选的pm按钮308来访问/查看这些预测。如果用户选择用户可选的pm按钮308以及当用户选择用户可选的pm按钮308时,计算机100只提供关于预测的实质性信息。
再次参考图2的流程图,除非用户点击(选择)pm按钮(在206处),否则计算机100只是等待用户在设计中创建另一个几何实体,此时,计算机100在屏幕上在新的几何实体附近呈现另一个用户可选的pm按钮。然而,如果用户点击(选择)pm按钮308(在206处),则计算机100计算预测/建议(在208处),并在屏幕上向用户显示这些预测/建议(在210处)。
图3c示出了计算机100可响应于用户选择pm按钮308而显示的屏幕截图的示例。图示的截图包括在cad程序的图形区域以及在设计本身处,系统的预测/建议的可视化表示,以示出可如何在建模对象的其他地方添加、定位、以及定向几何实体的副本。图示的示例包括11条建议312a-312k(都是建议长圆形)--在此统称为建议312。每个建议312是用户创建的最近一个几何实体(即长圆形306)的一个版本,且在尺寸和形状上与最近一个几何实体(即长圆形306)相同。每个建议312的位置与最近创建的几何实体306的位置有一些相似之处。
图3c所示的建议312还不是正在创建的设计的一部分。相反,图3c所示的建议312仅仅是系统建议/预测的可视化表示。在典型的实现方式中,建议312出现在屏幕上,在过程中的这个时候,以使建议312容易从视觉上与用户最近创建的几何特征306区分开的方式出现,此时该几何特征是设计的一部分。可以有多种方式来表示这种视觉上的区别性。例如,在图3c的截图中,用户最近创建的几何特征306比预测/建议312更暗地出现。在各种其他实现方式中,建议312可以以与用户创建的几何特征306不一样的颜色出现在屏幕上,或者建议312可以用虚线或点划线绘制,而用户创建的几何特征306可以用实线绘制(或者反之亦然)。可以实施这些和/或其他措施中的数种措施,以从视觉上将建议312与最近创建的作为预测计算的种子的几何实体306区分开。
当计算机100(在208处)计算预测/建议时,计算机100将设计中的共顶点之一识别为参考共顶点。在一些实现方式中,在默认情况下,计算机100将选择物理上最接近最近创建或选择的几何实体306的共顶点作为参考共顶点。然后,计算机100在设计中寻找匹配的其他共顶点(即,处于与参考共顶点的区域相似的区域的共顶点)。计算机100通常在计算机100已识别为匹配的其他共顶点附近呈现其对设计的预测/建议312。系统将每个预测/建议相对于其相关的共顶点进行定向,就像最近创建的几何实体306相对于参考共顶点进行定向一样。在某些情况下,计算机100将在计算机100识别为与参考共顶点相匹配的每一个共顶点附近提供预测/建议312。
因此,在典型的实现方式中,计算机100提供的预测/建议312至少部分地取决于计算机100使用设计中的哪个共顶点来做出(计算)那些预测/建议312。此外,如果计算机使用一个共顶点和另一个共顶点作为参考共顶点,那么预测/建议312当然可以不同。出于这个原因,计算机100通常针对特定的一组预测/建议通知用户:计算机100使用设计中的哪个共顶点作为参考共顶点,并能够使用户为计算机100指定不同的共顶点以在更新/做出新的预测/建议时使用。可以有多种方式来使计算机100实现该功能。在图3c的截图中,例如,参考共顶点由球314(在六边形302的顶边和六边形302的左上侧边之间的交点处)标识-用户可以将该球拖动和下落到建模对象中的另一个共顶点,从而使计算机100使用新的共顶点作为其参考点(即参考共顶点)自动更新其预测/建议。
图3c的截图还具有代替用户可选的pm按钮308的建议上下文菜单310。建议上下文菜单310有四个用户可选的图标316a-316d,每个图标可以被选择来调用或访问一个或多个计算机功能。图标316a是落点图标,选择该图标使得计算机同时示出设计中所有有效的落点。图标316b是设置图标,选择该图标使得计算机100在屏幕上呈现与建议功能相关的各种系统设置的界面。图标316c是接受图标,选择该图标向计算机100指示用户想要接受屏幕上的任何有效的预测/建议。这样的选择使得计算机100将屏幕上的任何有效的预测/建议作为几何实体整合到设计中。图标316d是关闭图标,选择该图标使得计算机100关闭建议上下文菜单310,并从设计中删除用户尚未接受的任何预测/建议。
这些用户可选的图标316a-316d可以采取多种可能的可视化外观中的任一外观。在图示的实现方式中,第一个用户可选的图标316a以多边形出现,其四个角中的三个角处是较小的圆,其第四个角附近是较大的圆;第二个用户可选的图标316b以齿轮出现,这是通常被认为与计算机设置相关联的符号;第三个用户可选的图标316c以在矩形前面的复选标记出现;第四个用户可选的图标316d以字母x出现。
图3c的截图能够使用户在接受、拒绝或修改计算机的预测/建议312之前回顾和考虑计算机的预测/建议312。再次参考图2的流程图,如果用户(在212处)接受计算机100提供的预测/建议,那么计算机100(在214处)使接受的预测/建议变成设计中的实际几何图形(即几何实体)。如果发生这种情况,则被接受的预测/建议就不再是预测/建议,而是成为设计本身的一部分。
如果用户(在212处)不接受计算机100提供的预测/建议,但是用户(在216处)想要看到来自计算机100的其他预测/建议,那么计算机100能够使用户做出某些修改(在218处),这些修改可促使计算机100计算并提供新的预测/建议。一旦做出修改(在218处),计算机100就(在208处)计算新的预测/建议,并(在210处)向用户显示新的预测/建议。
计算机100可以有多种方式来使用户能够促使计算机100计算并提供新的预测/建议。这些方式包括能够使用户:a)在设置界面打开或关闭“相似性”选项,b)在设置界面打开或关闭“对称性”选项,c)通过直接点击预测/建议来打开或关闭正在显示的一个或多个预测/建议(当特定的一个预测/建议被关闭时,被关闭的建议可出现颜色变淡),d)选择另一个参考共顶点(例如,通过将球114拖动到另一个位置),和/或e)打开或关闭“跨组件传播建议”选项(打开这个选项通常指示计算机100不仅在当前基础实体中寻找相似的区域,而且在当前会话中可能已打开的所有其他实体中寻找相似的区域)。在各种实现方式中,计算机100可以为用户提供一种或多种其他方式,来促使计算机100计算并提供新的预测/建议。
图3d是示出了用户将球314从其识别预测/建议的原始参考共顶点的原始位置拖动到新位置的示意性表示。更具体地,图3d示出了用户的手指318触摸屏幕,并处于将球314从其原始位置-在原始参考共顶点处(在六边形302的顶边和六边形302的左上侧边之间的交点处)--拖动到新的位置的过程中。在图3d中,如果用户将球314落在对应于与原始参考共顶点不同的共顶点的位置(例如,“落点”或“下落目标”),从而指定不同的共顶点作为新的参考共顶点,则计算机将计算新的预测/建议(在208处)并显示这些新的预测/建议(在210处)。新的预测/建议使用新的参考共顶点进行计算。
在典型的实现方式中,一旦用户开始拖动球314,并在整个拖动过程中,系统就会在屏幕上标识设计中的所有共顶点。这可以通过任何数量的方式来完成。在一个实现方式中,这通过在建模对象的共顶点上应用标记--例如黑点来完成。例如,在图3d的实现方式中,通过黑点320来标识共顶点。
此外,在典型的实现方式中,一旦用户开始拖动球314,计算机100就会在屏幕上标识设计中可以是原始参考共顶点的可行替代的所有确定的共顶点。这些可行的替代共顶点是用户正在拖动的球314的潜在落点。在一些实现方式中,与通过原始参考共顶点提供的建议相比,只有当共顶点提供一个或多个新的(不同的)建议时,计算机才将该共顶点视为原始参考共顶点的可行替代。进一步地,如果某一组可行的共顶点所提供的建议完全相同(即使这样的建议可不同于原始参考共顶点所提供的建议),那么计算机可以只将该组中的共顶点之一视为可行的,通常是将距离种子几何图形最近的那个共顶点视为可行的。
通常,当拖动过程开始时,计算机100在屏幕上标识这些确定可行的替代共顶点。计算机100可以有多种方式来实现这一点。例如,根据图3d的实现方式,当拖动过程开始时,计算机100在自身的屏幕上用类似于空心圆圈312的标记(例如,可以是具有灰色轮廓的白色标记)标识可行的替代共顶点。
当拖动过程开始时,计算机100可以改变参考共顶点的外观。在一个示例性实现方式中,在拖动过程开始之前,参考共顶点可以用空心白色圆圈标记(参见图3c),但是在拖动开始之后,该标记可变成深色(例如棕色)圆圈(参见图3d)。棕色圆圈指示:尽管球314被拖动且参考共顶点可发生变化,但是屏幕上出现的建议(例如,图3c中的312a-312k)由计算机100使用棕色圆圈标记的共顶点作为参考共顶点来确定。
在一些实现方式中,当球314被拖动时,距离球的当前位置最近的可行的共顶点/落点会变暗,并示出由该共顶点提供的建议。所有其他可行的共顶点/落点示出为尺寸比被拖动的球314略小的空心圆圈。当用户释放球314时,球314就会被扣在释放球314时变暗的那个落点。在图3d中,六边形的左上角变暗,因为它是当时距离球314最近的落点。示出了由变暗的共顶点提供的建议。切口的左上角是一个空心圆圈,因为它是落点,但不是当时最近的落点。在图3e中,当用户进一步将球314向下拖动时,切口的左上角变暗,因为它是当时距离球最近的下落目标。现在示出了由新的变暗的共顶点提供的建议。六边形的左上角现在变成了空心圆圈,因为它不再是最近的落点。
因此,在典型的实现方式中,当球314被拖动时,如果球314进入潜在落点之一(例如,可行的替代共顶点之一)附近的空间(例如,在某个预定距离内),则计算机可以更新用户在屏幕上看到的内容,来示出基于潜在落点是新的参考共顶点的一组新的建议(参见例如,图3e中的312l-312n)。在该实例中,计算机100可以改变潜在落点331在屏幕上的外观,以指示潜在落点331作为新建议的潜在参考共顶点的新状态。在典型的实现方式中,计算机100还改变上一个参考共顶点(在六边形的左上角处)在屏幕上的外观,以指示上一个参考共顶点现在只是另一个可行的替代共顶点(而不再是正在显示的新建议的参考共顶点)。
图3e示出了这方面的示例,其中图3e示出了当用户的手指318已将球314拖动至距离新的潜在落点之一(例如,在切口左上方的落点)足够近,以便计算机对新的球314位置作出反应时,屏幕将如何显现。如图所示,截图已更新,以将先前示出的11个建议312a-312k(图3d)变成三个新的建议312l-312n(图3e)。这些新的建议312l-312n可由计算机100根据被认为是新的共顶点的新的潜在落点(即,在切口左上方的落点)来确定。此外,如图所示,潜在下落目标在屏幕上的外观已改变(从空心圆圈变成暗圆圈),以指示潜在下落目标作为新建议的参考共顶点的新状态。最后,上一个参考共顶点(在六边形的左上方)在屏幕上的外观已改变(从暗圆圈变成空心圆圈),以指示上一个参考共顶点现在只是另一个可行的替代共顶点(不再作为新建议的参考共顶点)。
如果球314从其在图3e中的位置(最接近切口左上方的共顶点)移动到足够接近其他可行的共顶点之一的不同位置,那么计算机将更新设计的外观,以使用当时最接近的可行共顶点作为参考共顶点来示出一组新的建议。
在典型的实现方式中,如图3e所示,当潜在落点变暗(例如,棕色),且球314被释放时,计算机100使球314扣在变暗的落点,且新的建议将显示在屏幕上直到用户接受、拒绝或采取其他步骤来改变建议。图3f示出了这方面的示例,其中,图示的设计包括用户创建的原始几何特征(即长圆形306)和计算机100使用切口左侧的内缘处的共顶点作为参考共顶点计算的三个建议312l-312n。在图示的截图中,参考共顶点(在切口左侧的内缘处)由一个圆圈标识,而原始参考共顶点由另一个圆圈标识。在典型的实现方式中,在屏幕上,这些圆圈可以用颜色编码,或者彼此可以以其他方式从视觉上区分开。
如果在任何时候,用户接受屏幕上的建议312l-312n(例如,在建议上下文菜单310中选择接受建议图标316c),那么计算机100将屏幕上的建议312l-312n整合到设计中。因此,如果用户在图3f的建议上下文菜单310中选择接受建议图标316c,则计算机100将屏幕上的三个建议312l-312n整合到设计中。然后,系统向用户呈现例如图3g所示的屏幕,该屏幕包括将先前的建议312l-312n整合到设计中作为实际几何实体324l-324n。
上面的示例说明了计算机100可如何使用户能够通过将球(标识预测/建议的参考共顶点)从其原始位置拖动并下落到另一个可行的替代共顶点来促使计算机100更改其预测/建议。然而,如上所述,在各种实现方式中,计算机100可以有其他方式来使用户能够促使计算机100(参见例如,图2中的218)计算和显示不同的预测/建议。例如,图4a至图4j包括一系列来自计算机100的显示器的截图,该一系列截图说明了示例性工作流程,该工作流程示出了可如何关闭或打开预测/建议(例如,通过用户使用鼠标点击或敲击按钮(例如,草图助手命令按钮)),以及计算机设置界面中的“相似性”选项可如何发挥作用。
在图4a中,用户创建基础几何图形400,在图示的示例中,该基础几何图形在其侧面大致为t形的几何图形。
在图4b中,用户在基础几何图形400的左上角创建圆圈402。计算机100使上下文菜单404出现在圆圈402旁边。上下文菜单404中具有用户可选的pm按钮408。在某些实例中,当用户单击圆圈时,计算机100会使上下文菜单出现。
用户选择用户可选的pm按钮408,该pm按钮促使计算机100使用圆圈作为种子几何图形来计算预测/建议,并在屏幕上的设计中显示任何这样的预测/建议。图4c示出了计算机100可响应于用户选择用户可选的pm按钮408而显示的截图的示例。在图示的截图中,仅显示了一个这样的预测/建议412a。建议412a是圆圈,就像种子几何图形的圆圈402。
图4c的截图还具有建议上下文菜单410,该建议上下文菜单代替包括用户可选的pm按钮408的先前的上下文菜单404。建议上下文菜单410有四个用户可选的图标,用户可选的图标包括设置图标416b,选择该设置图标使得计算机100在屏幕上呈现与建议功能相关的各种系统设置的界面。
图4c中的截图通过位于设计的左上角的球414来标识参考共顶点。
然后用户选择设置图标416b,这使得计算机100在屏幕上同样在设计附近呈现设置选项。这些设置选项的示例在图4d所示的示例性设置界面417中示出。图4d还示出了当鼠标光标悬停在设置图标416b上时,计算机100向用户显示的消息415。消息415包括关于可用设置的信息,读出来就是“设置将显示一组可以改变以完善建议的因素”。在图示的设置菜单中示出的选项包括“相似性”切换开关419、“对称性”切换开关421、以及“跨组件传播建议”打开/关闭开关423。在图4d的截图中,“相似性”切换开关和“对称性”切换开关处于打开(或激活)位置,而“跨组件传播建议”开关423处于关闭(或非激活)位置。
在图4e中,用户关闭“相似性”选项。结果,计算机100示出了另外四个选项作为额外的预测/建议412b-412e。虽然只有唯一的原始预测/建议412a能够满足由“相似性”和“对称性”选项施加的限制,但是唯一的原始预测/建议412a以及额外的预测/建议412b-412e能够满足仅由活跃的“对称性”选项施加的不那么严格的限制。
实际上,通过打开“对称性”,计算机100不仅寻找与参考共顶点相似或相同的共顶点,而且还寻找看起来与参考共顶点相似或为参考共顶点的镜像的共顶点。关于相似性,如果关闭“相似性”,则计算机100通常会从描述符中省略某些属性。实际上,通过关闭“相似性”,对共顶点的相似性的检查变得不那么严格,因为这样额外的(不那么相似的)共顶点也可以提供建议。
接下来,在图4f中,用户点击/选择落点图标416a。这使得计算机100同时示出设计中的所有有效的落点(例如,用于移动球414以定义新的参考共顶点的地方)。
在图4g中,用户开始将球414拖动到有效的落点之一。当球414在屏幕上移动时,最近的落点会变暗示出(例如,以棕色示出),并动态地显示由新落点产生的建议。例如,在图4g中,球414最接近与原始参考共顶点相邻但不同于原始参考共顶点的落点,因此计算机100示出所有先前呈现的预测/建议412a-412e,以及两个新的预测/建议412f和412g。
在图4h中,用户将球414落在新的落点(在设计的左上角的原始参考共顶点旁边)上。由作为新的参考共顶点的新落点产生的预测/建议412a-412g由计算机100显示。
在图4i中,用户点击任何不期望的预测/建议,即412b、412e、412f和412g,这使这些预测/建议412b、412e、412f和412g改变为颜色变淡的外观。其余的预测/建议412a、412c和412d保持其深颜色的外观。
在图4j中,用户(例如,通过点击带有绿色勾的接受图标416c)接受剩余的(深颜色的)预测/建议412a、412c和412d。这些预测/建议412a、412c和412d在设计中变成实际几何实体,而颜色变淡的预测/建议412b、412e、412f和412g从设计和屏幕中消失。因此图4j在屏幕上示出了具有由用户创建的圆圈402以及三个圆圈副本412a、412c和412d的基础几何图形400。
图5a至图5e包括一系列来自计算机100的显示器的截图,其说明了示例性工作流程,该工作流程示出了“对称性”选项(在设置界面中)可如何发挥作用。
在图5a中,用户创建基础几何图形500,在图示的示例中,该基础几何图形是复杂的形状。
在图5b中,用户在基础几何图形500的左上角绘制三角形502。在典型的实现方式中,响应于正在绘制三角形502,计算机100将使得用户可选的pm按钮(例如,上下文菜单404中的按钮)出现在三角形502旁边。
图5c示出了如果用户选择用户可选的pm按钮,然后在所产生的上下文菜单上选择设置选项,则计算机100将在其屏幕上呈现什么内容。图示的截图示出了基础几何图形500、最近创建的三角形502、参考共顶点(由球514标识)、多个预测/建议512a-512o(通过计算机100使用三角形502作为种子几何图形来计算)以及建议设置上下文菜单517。建议设置上下文菜单517指示“相似性”选项和“对称性”选项开启或活跃,但是“跨组件传播建议”选项关闭或不活跃。
在图5d中,用户关闭“对称性”选项(即,使该选项不活跃)。作为回应,计算机100删除预测/建议512a、512c、512e、512g、512i、512k、512m和512o,只完整保留预测/建议512b、512d、512f、512h、512j、512l和512n。这是因为尽管当“对称性”选项开启或活跃时,预测/建议512a、512c、512e、512g、512i、512k、512m和512o满足计算机100所要求的标准,但是当只有“相似性”开启或活跃,而“对称性”不开启或不活跃时,预测/建议512a、512c、512e、512g、512i、512k、512m和512o不满足计算机所要求的标准。
图5e示出了如果用户选择图5d中的“接受建议”图标516c(即,打勾),用户将看到的截图。图5e中的截图包括具有用户创建的三角形502以及来自图5d的所有其他三角形(即,基于预测/建议512b、512d、512f、512h、512j、512l和512n)的基础几何图形500。
以上内容说明了计算机的功能和能力在用户体验的背景下的各个方面。现在,转而考虑由计算机100执行(且在图6a至图6c中示意性表示)以计算预测/建议的过程的示例性实现方式,这当然有利于上述用户体验。本文提到的某些术语将稍后在本文中解释。因此,如果有帮助的话,请读者考虑这些解释。
下面阐述的算法假设用户在cad系统中打开了新的或预先存在的建模对象来进行编辑。打开的建模对象可以是空的,或者可包含一个或多个三维(3d)实体,或者可包含一个或多个二维(2d)草图等,或者可包含一个或多个3d实体和一个或多个2d草图的组合。假设2d和/或3d几何图形由边界表示(b-rep)来表示,这是大多数现代cad系统表示2d和3d几何图形的方式。
在接下来的描述中,在一些实现方式中,归属于计算机100的过程和功能可以由计算机100的处理器102单独地执行,或由计算机100的处理器102与计算机的其他组件结合来执行,或以其他方式执行。
根据图6a至图6c的流程图中所呈现的过程,计算机100(在602处)计算并在存储器106中存储针对建模对象中的每个共顶点的以下四个局部坐标系:
a.针对共顶点的局部坐标系so,
b.针对共顶点的镜像局部坐标系sm(如果“对称性”选项关闭,则不需要该镜像局部坐标系),
c.针对共顶点的反向局部坐标系sr;以及
d.针对共顶点的反向镜像局部坐标系srm(如果“对称性”选项关闭,则不需要该反向镜像局部坐标系)。
接下来,计算机100(在604处)计算并在存储器106中存储针对建模对象中的每个共顶点的以下四个描述符:
a.针对在局部坐标系so中表示的共顶点的描述符do;
b.针对在镜像局部坐标系sm中表示的共顶点的描述符dm(如果“对称性”选项关闭,则不需要该描述符);
c.针对在反向局部坐标系sr中表示的共顶点的描述符dr;以及
d.针对在反向镜像局部坐标系srm中表示的共顶点的描述符drm(如果“对称性”选项关闭,则不需要该描述符)。
接下来,计算机100(在606处)指定/考虑用户最近创建或选择的几何实体作为种子几何图形(即,考虑要在整个设计中复制的几何图形)。
接下来,计算机100(在608处)查找空间上最接近种子几何图形的共顶点。在典型的实现方式中,这通过确定其位置位于与种子几何图形相距最短的3d距离处的共顶点来实现。为了找到以b-rep形式表示的几何图形和位置之间的3d距离,存在有本领域技术人员所熟悉的众所周知的技术。
计算机(在610处)指定该共顶点(被识别为空间上最接近种子几何图形的共顶点)作为参考共顶点。
计算机100(在612处)能够使用户指定设计中的一些其他共顶点作为参考共顶点。如上所讨论的,计算机100能够使用户改变参考共顶点的指定的一种方式是能够使用户将屏幕上的球从参考共顶点拖动和下落到新的参考共顶点。如果用户(在614处)选择指定不同的共顶点作为参考共顶点,则计算机100(在616处)识别新指定的参考共顶点,并行进到步骤618;否则,计算机100简单地行进到步骤618。
在图示的过程中的步骤618,计算机100查找建模对象中与参考共顶点相匹配的所有共顶点。在一些实现方式中,为了查找特定共顶点是否与参考共顶点相匹配,计算机100确定针对特定共顶点的描述符do是否与参考共顶点的四个描述符dodm,drdrm中的任意描述符完全匹配(或者在预定的或用户定义的误差容许范围内,为了这些目的,在该误差容许范围内则被认为是相同的)。
计算机接下来做的事情(见图6b)取决于每个匹配共顶点如何匹配参考共顶点。对于每个匹配共顶点(620):
a.如果匹配共顶点的描述符do与参考共顶点的描述符do相同(622),则计算机100(在624处)将在参考共顶点的so中表示的种子几何图形的副本转换到匹配共顶点的so。
b.如果匹配共顶点的描述符do与参考共顶点的描述符dm相同(626),则计算机100(在628处)将在参考共顶点的sm中表示的种子几何图形的副本转换到匹配共顶点的so。
c.如果匹配共顶点的描述符do与参考共顶点的描述符dr相同(630),则计算机100(在632处)将在参考共顶点的sr中表示的种子几何图形的副本转换到匹配共顶点的so。
d.如果匹配共顶点的描述符do与参考共顶点的描述符drm相同(634),则计算机100(在636处)将在参考共顶点的局部坐标系srm中表示的种子几何图形的副本转换到匹配共顶点的so。
应注意的是,将任何几何图形从一个坐标系转换到另一个坐标系,可以通过标准技术(例如,使用转换矩阵)来实现,而这样的标准技术对于相关领域的技术人员来说是熟悉的。因此,对于每个匹配共顶点,计算机100将种子几何图形的副本从参考共顶点的局部坐标系转换到匹配共顶点的各自的局部坐标系。
接下来(见图6c),计算机100(在640处)在计算机屏幕上显示种子几何图形的转换副本,作为预测/建议(例如,从视觉上有别于设计的其他部分)。
如上所讨论的,然后计算机100(在642处)能够使用户接受、拒绝和/或修改建议。一旦用户接受任何预测/建议,计算机100(在644处)就将接受的预测/建议作为几何实体添加到建模对象(设计)中。
除非另有指明,否则本文中使用的任何术语应具有通常含义。尽管如此,以下的讨论可对某些术语在各种情况下的含义提供额外的见解。
例如,本文可以使用短语建模对象。3d设计软件应用程序,例如cad(计算机辅助设计)程序用于建立被设计的产品的实体几何图形。建模对象可以泛指cad程序中的实体几何图形的表示。建模对象可以不包含3d实体、可以包含一个或多个3d实体,可以不包含2d或3d草图、可以包含一个或多个2d或3d草图。本文可以使用短语3dcad特征。一般来说,cad用户可以通过创建3dcad特征,例如圆角、倒角、凸起、切割、孔、角度草图等,来修改3d建模对象。短语草图实体可以泛指二维或三维实体,例如线段、弧、圆、样条曲线、构造线等。草图可以由绘制在草图平面上的一个或多个草图实体组成。本文可以使用短语草图平面法线。在一些cad程序中,草图平面法线是每个草图平面的固有属性。一般来说,草图平面法线垂直于草图平面,并指向观察草图应该沿着的方向。
术语和相关概念
如上所指示的,边界表示(或b-rep)被大多数现代cad程序使用来表示建模对象。在这种表示中,建模对象由不同拓扑元素(即实体、壳、面、共边链、共边、边、共顶点和顶点)之间的层次关系来表示。图7是在建模对象的边界表示中不同拓扑元素之间的示例性层次关系的示意性表示。根据示出的实现方式,实体由其定界壳表示,壳由一组连接的面表示,面由其定界共边链表示,以及共边链由通过共顶点连接的共边的有序列表表示。当在有边界的几何图形的环境中使用时,共边链可以闭合,也就是说,共边链可以环回到自身。当在草图的环境中使用时,共边链可以是开放式的。共边链可以属于称为其父面的面。草图内的共边链可以没有父面而存在。此外,根据图示的实现方式,共边是在特定共边链的环境中的边的表示。共边的方向可以与边的方向不同。共边由两个共顶点即起始共顶点和结束共顶点定界。考虑选择哪个共顶点作为起始共顶点和选择哪个共顶点作为结束共顶点,可以由在共边的有序链中哪个共顶点先出现来确定。共边总是属于单个共边链,该共边链可以被称为它的父共边链。根据图示的实现方式,边由两个面相遇的曲线/直线来描述。指代每条边的共边的数量等于边参与的共边链的数量。在草图中,边可以有一个或多个共边。在流形实体中,每个边有两个共边。在片状模型中,边可以只有一个共边。在非流形实体中,边可以有两个以上的共边。此外,根据图示的实现方式,共顶点是在特定共边链的环境中的顶点的表示。共顶点作为其前一个共边的结束共顶点并作为其下一个共边的起始共顶点。共顶点总是属于单个共边链,该共边链称为它的父共边链。顶点可以由两个或更多个边相遇的点来描述。指代每个顶点的共顶点的数量通常等于顶点参与的共边链的数量。参考共顶点是指示在计算预测/建议时要考虑的周围区域的环境的共顶点。
指出关于共边链的方向的一些注释,是值得的。对于3d实体中的共边链:每个cad系统通常遵循一些关于3d实体中闭合的共边链的方向的惯例。流行的惯例是使用所谓的右手法则,根据右手法则,如果拇指与面法线方向或草图平面法线方向对齐,且食指与共边链的方向对齐,那么中指应该指向闭合的共边链所包围的区域。对于草图中的共边链:草图中的共边链可以不遵循任何一个方向惯例。因此,在草图中,两个几何上相同的共边链可具有相反的方向。
共边的起始方向通常是指从共边的起始点开始并朝向边的内部向内行进的方向。在本文中,将共边的起始方向称为从共边的结束点开始并朝向边的内部向内行进的方向。应注意,这与文献中通常认为是共边的结束方向的方向正好相反。选择这样称呼共边的起始方向,是因为这样使得起始和结束共边方向变得与定向或共边链无关,且便于进行与反向和镜像共顶点相关的计算。
在面的环境中,面法线方向通常是指在面上的给定点处垂直于给定面并从面所属的壳所包围的区域向外指向的方向。在草图的环境中,面法线方向与草图平面法线相同。在面的环境中,共顶点的面法线方向通常是指在共顶点的点处共顶点的父面的面法线方向。如果环境是草图,那么共顶点的面法线方向与草图平面法线方向相同。
几何实体可以是2d草图实体(例如线段、弧、圆、样条曲线等)或3dcad特征(例如凸起、切口、孔)中的任意一个。
共顶点的局部坐标系(s_o)通常是这样的坐标系:
·其原点与共顶点的位置重合;
·其z轴与共顶点处的面法线方向对齐;
·其x轴与共顶点的下一个共边的起始方向对齐;
·其y轴与z方向和x方向的向量积对齐
如果给定的共顶点是共边链上的最后一个共顶点,其意思是说,该共顶点没有下一个共边,那么原点和z轴将以与上面给出的方式相同的方式来定义,然而,在这种情况下:
·y轴与前一个共边的结束方向对齐;
·x轴与y方向和z方向的向量积对齐
这个坐标系是右手坐标系。
共顶点的镜像局部坐标系(sm)通常是这样的坐标系:
·其原点与原始共顶点的位置重合;
·其z轴与共顶点处的面法线方向的相反方向对齐;
·其x轴与共顶点的前一个共边的结束方向对齐;
·其y轴与z方向和x方向的向量积对齐
如果给定的共顶点是共边链上的第一个共顶点,其意思是说,该共顶点没有前一个共边,那么原点和z轴将以与上面给出的方式相同的方式来定义,然而,在这种情况下:
·y轴与下一个共边的起始方向的相反方向对齐;
·x轴与y方向和z方向的向量积对齐
共顶点的反向局部坐标系(sr)通常是这样的坐标系:
·其原点与共顶点的位置重合;
·其z轴与共顶点处的面法线方向对齐;
·其x轴与共顶点的前一个共边的结束方向对齐;
·其y轴与z方向和x方向的向量积对齐
如果给定的共顶点是共边链上的第一个共顶点,其意思是说,该共顶点没有前一个共边,那么原点和z轴将以与上面给出的方式相同的方式来定义,然而,在这种情况下:
·y轴与下一个共边的起始方向的相反方向对齐;
·x轴与y方向和z方向的向量积对齐
共顶点的反向镜像局部坐标系(srm)通常是这样的坐标系:
·其原点与原始共顶点的位置重合;
·其z轴与共顶点处的面法线方向的相反方向对齐;
·其x轴与共顶点的下一个共边的起始方向对齐;
·其y轴与z方向和x方向的向量积对齐
如果给定的共顶点是共边链上的最后一个共顶点,其意思是说,该共顶点没有下一个共边,那么原点和z轴将以与上面给出的方式相同的方式来定义,然而,在这种情况下:
·y轴与前一个共边的结束方向的相反方向对齐;
·x轴与y方向和z方向的向量积对齐
注:符号“:=”用于指示赋值。例如,
短语共顶点描述符通常是指共顶点以及在共边链中该共顶点周围的局部区域的特定数值属性的有序数组。描述符中的所有量用共顶点的四个可能的局部坐标系(so,sm,sr和srm)之一来表示。共顶点描述符可以包括α和β两部分。描述符可以通过将这两个部分连接起来而形成。连接的顺序可取决于描述符用哪种坐标系来表示。对于坐标系so和srm,β部分可以放在α部分之后。对于sm和sr坐标系,α部分可以放在β部分之后。
一般来说,描述符的α部分是指与共边链中的前一个共边(即,从共边链中的前一个共顶点开始并在给定的共顶点处结束的共边)相关的属性:
i.pprev(三个实数):前一个共顶点的局部x、y和z坐标(如果相似性选项关闭,则省略);
ii.
111.
iv.
一般来说,描述符的β部分是指与共边链中的下一个共边(即,从给定的共顶点开始并在共边链中的下一个共顶点处结束的共边)相关的属性:
i.pnext(三个实数):下一个共顶点的局部x、y和z坐标(如果相似性选项关闭,则省略);
ii.
iii.
iv.
此外,作为另一种可能的实现方式(如图中所展示的),从描述符中省略了这两个部分之一。这导致对相同描述符进行的检查不那么严格。如果需要更严格地进行对相同描述符的检查,那么可以在描述符中增加一些额外的属性,例如相应共边的中点的局部坐标、在共边的起始点和/或中间点和/或结束点处的共边的曲率半径。
通常,本文使用的短语“局部x、y和z坐标”和“局部x、y和z分量”意思是说x、y和z值在共顶点的给定坐标系中表示,给定坐标系可以是以下任意坐标系:
a.共顶点的局部坐标系;
b.共顶点的镜像局部坐标系;
c.共顶点的反向局部坐标系;
d.共顶点的反向镜像局部坐标系。
如果所讨论的共顶点是开放式共边链的最后一个共顶点,且该共顶点没有下一个共边,则计算机可以给描述符数组的β部分填入零,使得数组的长度保持不变。如果所讨论的共顶点是开放式共边链上的第一个共顶点,且该共顶点没有前一个共边,则计算机可以给描述符数组的α部分填入零,使得数组的长度保持不变。在示例性实现方式中,当“相似性”选项关闭时,计算机将从描述符中省略属性pprev、
每个共顶点保留四个描述符,使得算法能够独立于定向或共边链。还使得算法能够在恰好是种子共顶点的镜像的共顶点处提供建议。下面是怎么做的:
·如果给定的共顶点的do与种子共顶点的dm相匹配,那么其意思是说给定的共顶点与种子同顶点相同。
·如果给定的共顶点的do与种子共顶点的dm相匹配,那么其意思是说如果种子共顶点的共边链是其当前形态的镜像,则给定的共顶点与种子共顶点相同。
·如果给定的共顶点的do与种子共顶点的dr相匹配,那么其意思是说如果共边链的方向颠倒,则给定的共顶点与种子共顶点相同。
·如果给定的共顶点的do与种子共顶点的drm相匹配,那么其意思是说如果种子共顶点的共边链是其当前形态的镜像,且方向颠倒,则给定的共顶点与种子共顶点相同。
举个例子来说明,以带我们了解上面阐述的算法的示例性实现方式。考虑图8中的三角形共边链。如图所示,三角形的边的边长分别为8毫米(mm)、6mm和10mm。没有一个图是按比例绘制的。
在三个边中间绘制的箭头指示共边链的逆时针定向。这六个单位向量指示共边的起始方向和结束方向。
图9示出了以与之前所示的三角形相同的测量方式构造的五个共边链a、b、c、d、e。如前所述,在边的中间绘制的箭头指示共边的定向。请注意:
·a和b是相同的共边链;
·a和c的定向相同(逆时针),且它们的形状互为镜像;
·a和d的定向相反,但它们的形状相同;
·a和e的定向相反,且它们的形状互为镜像。
假设用户在共边链a内绘制半圆,如图10的三角形a内的半圆所示。图10中三角形b、c、d和e内的半圆表示算法的一个实现方式可计算出的建议。让我们看看算法如何得出这些建议。
图11示出了每个共边链(a、b、c、d和e)的直角处的共顶点的局部坐标系so。
[注:(α+β)中的符号+指示连接,而不是相加]
这些表格示出了在每个共边链a、b、c、d和e的直角处的共顶点的do描述符内的所有量的值。可以看到,与共边链a和b对应的α和β描述符相同。然而,所有其他描述符互不相同。因此,如果算法只使用do描述符,那么算法只能在共边链b内示出建议(例如,棕色半圆),而不能在共边链c、d和e内示出建议。
现在考虑针对在a的直角处的共顶点的另外三个坐标系sm,sr和srm,并计算与这三个坐标系对应的三个描述符dm,dr和drm。
[注:(α+β)和(β+α)中的符号+指示连接,而不是相加]
现在可以注意到:
·b的do与a的do相同;
·c的do与a的dm相同;
·d的do与a的dr相同;
·e的do与a的drm相同。
随着三个附加坐标系sm,sr和srm的引入,算法现在可在每个共边链b、c、d和e内示出建议(例如,作为棕色半圆示出)。
已经描述了本发明的若干实施例。然而,应当理解的是,可以在不脱离本发明的精神和范围的情况下进行各种修改。
例如,本文公开的系统和技术主要涉及产品设计领域。然而,这样的系统和技术适用于任何用于2d或3d设计的软件应用(例如,用户可能需要或想要在建模对象中的所有形状相似的区域再现几何图形)。例如,软件应用可包括用于产品设计、工业设计、草图和绘图的软件产品。这样的应用的一些示例是solidworks、catiapartdesign、ds3dbyme和3dsketchapp。这样的工具也可以在使得能够创建和编辑几何图形的其他软件应用(例如,mspowerpoint、adobeillustrator等)中发挥作用。
此外,虽然本说明书包含许多具体的实现细节,但是这些细节不应解释为对任何发明或可要求保护的内容的范围的限制,而是作为针对特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的环境中描述的某些特征也可以在单个实施例中组合地实现。反之,在单个实施例的环境中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合实现。此外,尽管特征可以如上描述为以某些组合起作用,甚至最初就是这样来要求保护,但是在某些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。
同样,虽然本文公开的操作以特定顺序发生,但是不应理解为要求这样的操作按照所示的特定顺序或按相继的顺序执行,或不应理解为要求执行所有呈现的操作,以达到期望的结果。
本文公开的技术方案的各个方面可以在数字电子电路中实现,或在基于计算机的软件、固件或硬件中实现,包括本说明书中公开的结构和/或其结构等效物,和/或其组合。在一些实施例中,本文公开的技术方案可以在一个或多个计算机程序中实现,一个或多个计算机程序即一个或多个计算机程序指令模块,编码在计算机存储介质上,以由一个或多个数据处理设备(例如处理器)执行或控制一个或多个数据处理设备(例如处理器)的操作。可选地,或此外,程序指令可以编码在人工生成的传播信号上,人工生成的传播信号例如机器生成的电信号、光信号或电磁信号,生成该信号来编码信息,以便信息传输到合适的接收设备,以由数据处理设备执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基质、随机或串行存取存储器阵列或设备、或其组合,或可以包含在计算机可读存储设备、计算机可读存储基质、随机或串行存取存储器阵列或设备、或其组合中。虽然计算机存储介质不应该被认为仅仅是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的来源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质例如多个cd、计算机磁盘和/或其他存储设备,或包括在一个或多个单独的物理组件或介质例如多个cd、计算机磁盘和/或其他存储设备中。
本说明书中描述的某些操作可作为数据处理设备(例如,处理器)对存储在一个或多个计算机可读存储设备上的数据或从其他来源接收的数据执行的操作来实现。术语“处理器”(或类似术语)包括用于处理数据的所有种类的装置、设备和机器,举例来说包括可编程处理器、计算机、片上系统、或多个处理器、或上述器件的组合。装置可以包括特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(特定用途集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台的运行时环境、虚拟机、或者它们中一个或者多个的组合的代码。
短语计算机可以指单个离散计算机、或多个离散计算机、或耦合在一起的计算机组件。短语处理器或计算机处理器可以指一个离散处理器或一个以上离散处理器。在包括一个以上离散处理器的一些实现方式中,处理器可以分布在多个离散设备和/或位置上。短语存储器或计算机存储器可以指一个离散存储器设备或一个以上离散存储器设备。在包括一个以上离散存储设备的一些实现方式中,存储设备可以分布在多个离散计算机或计算机组件和/或位置上。
其他实现方式都在权利要求的范围内。