用于建模环境中实心物体的拓扑冲突的校正的制作方法

文档序号:6350081阅读:170来源:国知局

专利名称::用于建模环境中实心物体的拓扑冲突的校正的制作方法
技术领域
:本发明总的涉及建模环境中的拓扑冲突(topologyinterference)校正,更具体地涉及计算机辅助绘图(“CAD”)环境。
背景技术
:在诸如CAD环境的建模环境中,用户可以通过指定多个规则来构建模型,该多个规则定义模型的几何形状。构成模型的几何形状由通过“边缘”相互连接的一组“表面”组成。在每个边缘具有至少两个连接到它的表面时形成实体(solidbody)。例如,立方体是实体,因为每个边缘包括至少两个相邻的表面。非实体的实例是一张纸,其中四个边缘中每一个连接到单个表面。几何形状可以表示模型的组件,其可以采用多种形状和尺寸。例如,计算机鼠标的模型可以包括具有多个表面的圆柱形几何形状(其表示鼠标轮)、平矩形(表示鼠标按键)以及球形几何形状(表示轨迹球)。在许多建模环境中,几何形状及其相应的表面可以在三维空间中彼此相对地移动。这可以允许用户例如在鼠标上创建一组表示按键的表面,然后以不同的放置按键的方式进行实验,以实现符合人体工程学的有益设计。在几何形状、表面、或表面组可以移动而非被限制在其被定义的位置时,其为“灵活建模”的实例。但是,当表面的移动使得实体的一个表面与该实体的其他表面冲突时,灵活的建模环境中会出现问题。在上述实例中,鼠标按键的移动可能意味着鼠标按键的一部分将占据已经被与鼠标轮相对应的几何形状占据了的空间。因此,如果移动表面会使该表面与另一表面冲突,则建模环境可限制用户将特定表面移动到新位置的能力。这种限制防止两个不同的表面组或几何形状同时占据同一空间。这种限制并不总是所期望的。例如,用户可能创建其随后想要与其它几何形状合并的几何形状。这可能要求用户除去单个几何形状并且重新构建表示第一和第二几何形状合并的新的、第三几何形状。这一过程是费时且复杂的。此外,建模环境通常用于在制造物体之前开发物体或对物体进行原型设计(prototype)。由建模环境产生的设计可以用作制造者的设计图,或者模型本身可以用作快速成型机的输入。为了有效地充当制造物体的基准,建模环境中的模型应满足某些考虑或达到某些要求。一个示例性的要求是模型必须表示实体。这一规则是对于在执行灵活建模操作(FlexibleModelingoperation)之后适当地重构实心几何形状(solidgeometry)的关键要求。另一个示例性要求是特定模型的表面应尽可能地同延(coextensive)。在制造或原型设计工艺时,期望所制造的物体的某些部件的面尽可能地同延。这会降低制造复杂度和成本同时提高所制造的物体的结构完整性。例如,在CAD环境中用户可以移动第一表面组使其靠近第二表面组,以使两个表面接触(例如,一起移动两个立方体以形成长方体)。但是,在两个表面之间可能存在建模环境中难以看到的间隙,导致表面不同延。因此,需要这样一种建模环境其能够解决建模环境中的几何形状和表面之间的冲突,允许模型形成单一实体。此外,需要建模环境能够确保模型中的表面在需要时尽可能地同延。
发明内容本发明提供一种方法、系统和存储在计算机可读存储介质上的指令,其适当地解决建模环境(诸如CAD环境)中表面组之间的冲突。此外,本发明的示例性实施例可以修改模型的表面以确保模型的各部分构成实体。根据本发明的一个实施例,在建模环境中提供一种模型。该模型包括一个或多个可以在建模环境中操作的几何形状。该一个或多个几何形状可定义表面组。该操作可包括例如移动表面或调整表面的大小。当以下列的方式操作几何形状时,修改模型的拓扑以解决冲突该操作使得该几何形状与另一几何形状、几何形状的外观(aspectofgeometry)或表面冲突。拓扑的修改可包括多种变化。例如可能需要创建新的边缘或顶点,或者需要移除旧的边缘或顶点(或两者都有)。可解决自相交从而相交的表面形成单个实体。此外,修改所涉及的表面的边界可以被延伸或缩小以形成实体。在修改拓扑时,可能会出现不定性,从而对于新拓扑存在多于一个选择。在有不定性的情况下,该环境可向用户提供多个可能的解决方案,并允许用户从这些解决方案中进行选择。将参考下列所附附图描述本发明的示例性实施例。在整个附图中,相同的标记表示相同的元件。图1描绘了适于与本发明的示例性实施例一起使用的示例性电子装置100。图2描绘了适于与本发明的示例性实施例一起使用的示例性模型200。图3描绘了在以引起冲突的方式操作模型几何形状之后的模型200。图如描绘了模型200的示例性操作,由此环境使表面的边界延伸以创建实体。图4b以不同的透视图描绘了图如的模型。图5为描绘在实施本发明的示例性实施例时所执行的步骤的流程图。具体实施例方式本发明提供一种方法、系统和存储在计算机可读存储介质上的指令,其适当地解决了建模环境(诸如CAD环境)中形状之间的冲突。此外,本发明的示例性实施例可以修改模型的表面以确保模型的各部件构成实体。如此处所使用的,“表面”是由模型中的具体几何形状限定的面。几何形状可具有一个或多个表面或表面组。表面可以是平的、弯曲的或有角度的。例如,立方体具有六个平表面。圆柱体具有平的圆形上表面和下表面以及单个弯曲的侧表面。圆锥具有平的圆形下表面和归于圆锥顶点的圆的、锥形的、呈角度的侧表面。如此处所使用的,“边缘”表示表面的外边界。例如,立方体的前表面具有四个边缘,其大小相等且彼此成直角。如此处所使用的,“顶点”是两个或多个边缘交汇的点。在立方体上,顶点位于三个边缘交汇的每个角。如此处所使用的,“拓扑”表示实体的表面区域。拓扑由相互连接的表面、边缘和顶点构成。在某些情况下,准确地表示模型的拓扑是非常有用的,例如允许对模型进行快速地原型设计。图1描绘了适于与在此描述的示例性实施例一起使用的电子装置100,例如计算机。电子装置100可包括存储器150,用于存储将由处理器120执行的计算机可执行指令152,处理器120例如是微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或控制器。指令152可以以一个或多个计算机可读介质实现,并且可以实现在此描述的示例性实施例的功能。介质可以是但不限于硬盘、密致盘、数字通用盘、闪存卡、可编程只读存储器(PR0M)、随机存取存储器(RAM)、只读存储器(ROM)、磁阻随机存取存储器(MRAM)、磁存储介质或光存储介质。指令152可以使处理器120执行下面详细描述的一系列步骤。指令152可以是描述如何执行这些步骤的任一形式。例如,指令可以是任一适当编程语言的未编译代码、编译代码、汇编语言指令或任一其它类型的指令。存储器150可以存储示例性实施例提供的任一模块、输出、显示、文件、信息、用户界面等。存储器150可以存储由电子装置100或另一电子装置使用的应用160。应用160可以包括允许电子装置100执行任务的程序、模块或软件组件。应用160的实例包括文字处理软件、命令解释程序(shell)、因特网浏览器、生产性软件组(productivitysuite)以及编程软件。在一个实施例中,电子装置100可包括用于构建模型的建模环境162。建模环境162可以是例如软件组件或计算机程序。建模环境162可以是CAD环境。建模环境162可以包括用于构建、编辑、保存和加载模型、仿真模型的性能以及将该模型作为输入提供给快速原型设计或制造单元提供的装置。建模环境162还包括几何形状内核164,其计算并表示模型中的形状的几何形状。例如,几何形状内核164可以负责计算模型的拓扑。存储器150还可以存储用于操作电子装置100的操作系统156。存储器150可以存储提供额外功能的其他应用160以及由电子装置100或另一装置使用的数据158。数据158可包括文件、变量、参数、图像、文本、以及其它形式的数据。存储器150还可以存储库154,例如由建模环境162所使用的用于存储模型的库。库IM可以用于例如存储默认或定制的模型或模型组件。电子装置100可具有用于与通信网络110通信的通信装置112。通信装置112可以是例如调制解调器、以太网连接、光纤连接、无线天线、或用于与网络通信的任一适当装置。通信网络的实例包括但不限于因特网、以太网、光纤网络、WiFi网络、UMTS地面无线接入网络(UTRAN)或通用移动电信系统(UMTS)网络、码分多址(CDMA)网络、WiMax网络以及超移动宽带(UMB)网络等等。可选地,电子装置100可具有显示装置130,用于显示示例性实施例提供的输出、显示、文件、信息、用户界面等。显示装置130可以显示图形用户界面(GUI)。显示装置1305可以是例如计算机监控器、电视机、触摸屏、平板电脑或平板触摸电脑(tabletorslatecomputer)、或能够显示信息的任一其它装置。应该理解,本发明可以在分布式环境或网络环境中实现。例如,可以在中央服务器处提供和操作模型,同时用户通过用户终端与模型交互。根据本发明的示例性实施例并且如图2所示,在建模环境中提供模型200。模型可以包括可在建模环境中操作的一或多个表面组210、220。例如,模型200包括旋钮220,旋钮220由圆柱体2和三个翼(诸如翼222)构成。模型200中的主体210包括凹槽230。主体210还包括第一脊212、第二脊216和第三脊218。第一脊212包括多个表面,例如侧表面214和上表面213。可以操作模型的几何形状。这些操作可改变被模型的不同部件占据的空间量或在模型部件空间中的位置或地点。例如,可以调整表面或表面组的大小,或者移动、旋转表面或表面组等等。下面将结合图5更详细地描述操作。在一些情况下,操作几何形状会引起两个或多个表面组之间的冲突。例如,图3描绘了模型200,除了旋钮220的操作之外,其与图2中描绘的模型200相同。在图3中,移动旋钮220以使其与主体210的中脊216冲突。在此情况下,整个模型200仍被看作单个实体。因此,应该重建用于冲突的几何形状(主体210和旋钮220)的拓扑,以使所得到的模型表示一个实体。当操作使得两个或多个表面组或者一部分表面之间冲突时,根据本发明的示例性实施例修改形状的拓扑以解决该冲突。拓扑的修改可包括多个变化。例如,可以创建新的边缘、顶点或表面。此外,可以移除旧的边缘、顶点、或表面。将参考图5更详细地说明拓扑的修改。虽然在此以两个表面组对冲突进行了描述,但应理解由于操作会导致任意数目的表面或表面组同时相互冲突。同样地,本发明绝不限于在此提供的特定实例。当模型的两个或多个形状相交时,在模型中产生自相交。可以解决自相交以使相交形状形成单个实体。例如,在图3中描绘的模型200中,翼222的一个表面与第二脊216的侧表面相交。在每个新的交点,例如翼222的上表面和侧表面与第二脊216的侧表面交汇的点223,可以为该拓扑创建新的顶点。还可以在新的顶点之间创建新的边缘,例如边缘225。对模型拓扑的修改不必然改变基础的表面组,例如主体210(其包括第二脊216)和旋钮220。因此,虽然模型200被看作具有统一拓扑的实体,但是可以保存与基础的冲突表面相关的信息。结果,用户能够以表面不再相交的方式操作相交表面。在这种操作之后,表面回到其原始拓扑。例如,用户可以将图3的模型200中的旋钮形状220移动回到图2的模型形状200中的旋钮220的位置,并且表面组210、220将回到其原始形状和拓扑。修改所涉及的表面的边界也可以延伸或收缩以形成实体,如图如和图4b所示。在图如中,旋钮220已经被移动以使翼222位于凹槽230的顶部。这可能会在凹槽230和翼222的底部之间形成空间。该空的空间可能提出模型200的结构完整性的问题,并且可能增加基于模型200制造物体的复杂性和成本。根据本发明的示例性实施例,环境可以检测在操作表面时产生的空的空间并通过延伸一个或多个表面来填充该空的空间。在一些实施例中,可以收缩一个或多个表面。例如,在图如中,翼222的侧面被延伸以使翼222的底部变为与凹槽230的顶部同延。其通过以延伸区域410填充翼222和凹槽230之间的空间来消除该空的空间。在本实例中,延伸区域410是翼222的延伸。图4b中更详细地示出了延伸区域410。在修改拓扑时,可能会出现不定性(ambiguity),由此对于新的拓扑会有多于一个选择。在有不定性的情况下,环境可向用户提供多个可能的解决方案,并允许用户从这些解决方案中进行选择。例如,在图如和图4b描绘的模型200中,除了降低翼222的底部外,也可以升高槽230的顶部。可以将这一选择作为对图如和图4b中描绘的模型200的替代,呈现给用户。图5为描绘在实施本发明的示例性实施例时所执行的步骤的流程图。在步骤510,在建模环境、例如图1中描绘的建模环境162中提供模型(例如模型200),该模型可以包括可在建模环境中操作的一个或多个表面。在步骤520,以这样的方式操作一个或多个表面该操作造成与实体的一个或多个其它表面的冲突。“冲突”指的是所操作的表面的一部分或多个部分或者全部占据了同时被实体的一部分或多个部分或全部所占据的空间。“操作”指的是改变位置、形状、尺寸、体积、表面区域、地点或被形状占据的位置或空间的任一个。几何形状的部分可以凸起、被压缩、被附加、被减少以改变几何形状的形状。如图1中描绘的建模环境162可以识别冲突。例如,可以为几何形状内核166分配在每次操作几何形状期间或之后识别可能冲突的任务。建模环境162可以通过例如比较由表面组的内部体积占据的空间来确定定义这些表面的几何形状是否占据了至少一些同样的空间,从而识别冲突。根据本发明的另一示例性实施例,建模环境162通过将与冲突涉及的第一表面相关的每个边缘与冲突涉及的其它表面进行比较来识别冲突。在另一示例性实施例中,将冲突的几何形状的体积和拓扑(包括顶点、表面和边缘)都进行比较。这可能有助于解决这样的冲突体积的比较提供一个答案(例如“无冲突”),而拓扑的比较给出了一个不同的答案(例如“发现冲突”)。例如,如果在一个大的球体中整体移动小的球体,拓扑的比较可能不会指出小球体和大球体的拓扑之间的交叉,这是因为内部球体的表面区域不与外部球体的表面区域冲突。但是体积的比较指出对应于小球体的几何形状占据了与对应于大球体的几何形状至少一些同样的空间,因此产生了物体冲突。对于冲突涉及的每组表面可以重复上述步骤。例如,如果三个表面彼此冲突,则可以将第一表面的体积、边缘和表面区域与第二和第三表面的体积、边缘和表面区域进行比较。然后可以将第二表面与第一和第三表面进行比较,以及将第三表面与第一和第二表面进行比较。由于将第一几何形状与第二几何形状进行比较与将第二几何形状与第一几何形状进行比较可能产生不同的结果,因此可能必须对一组表面中的每一表面重复这些步骤。例如,在步骤520,可以将与第一表面相关的边缘与第二表面的表面区域进行比较以确定表面是否相交。因此,在图3中,可以将主体210的第二脊216的边缘与翼222表面的表面区域进行比较。在此阶段,未识别出相交,因为第二脊216的边缘不与翼222的任一表面相交。相反,当将翼222的边缘与第二脊216的表面进行比较时,几何形状内核166确定翼222与第二脊216相交。至少翼222的两个上边缘和翼222的两个下边缘与第二脊216的侧表面相交。在上述实例中,假定第二脊216的边缘不与翼222的任何表面相交。但是,由于翼222的底面落入与第二脊216的下边缘相同的平面内,因此翼222的底面可能与脊216的下边缘相交。不管上述情况是否看作相交,都可以通过例如几何形状内核166定义相交,并且可以根据实施和应用而改变。在步骤530-550,修改形状的拓扑以解决冲突。在步骤530,创建或延伸新的边缘、顶点和/或表面,或者移除或收缩旧的边缘、顶点和/或表面,或者既创建或延伸新的边缘、顶点和/或表面又移除或收缩旧的边缘、顶点和/或表面。在一个示例性实施例中,几何形状内核166(图1)可以分析冲突涉及的表面或表面组以确定如何改变拓扑。例如,几何形状内核可以通过检查边缘与表面的相交点来确定将新的顶点放置在何处。在图3中,可以在点223创建新的顶点,因为翼222的一个边缘与第二脊216的表面在点223相交。一旦识别出每个新的顶点,几何形状内核166就可以移除对新拓扑不起作用的顶点。例如,翼222与圆柱体224(未示出在图3中)相交的点构成如图2中描绘的模型200的顶点。但是,该点位于与图3中描绘的模型200中的第二脊216相对应的几何形状的体积内。由于该点不对新的实体(即从旋钮220与第二脊216的冲突得到的实体)的拓扑起作用,因此可以将该顶点从图3描绘的模型200的拓扑中移除。出于一定考虑而移除某些表面、顶点和边缘可以简化该步骤。例如平行的表面永不相交。相交的确定可包括例如比较两表面的尺寸、位置或者比较尺寸和位置两者或者比较表面之间的夹角。在已经建立起新的顶点之后,可以创建考虑当前顶点组的新边缘,并且一旦旧的顶点被移除就移除旧的边缘。可以沿先前已有的边缘创建新的边缘(例如沿已有边缘创建连接图3中的顶点223和翼222的外顶点的边缘)。还可以在先前没有边缘的位置创建新边缘,例如图3中的边缘225。在先前没有边缘的情况下,可以通过将顶点与形状之间相交的表面或交点进行比较来识别新边缘。例如,基于翼222的顶部与第二脊216的侧表面相交来识别对于边缘225的需求。此外,可以移除旧的边缘,例如翼222的上边缘。可以基于顶点的移除或者基于与第二表面(或者与第二表面相关的边缘)冲突的第一表面相关的边缘的存在,来识别旧的边缘的移除。一旦创建了新的边缘并且移除了旧的边缘,就可以创建新的表面并且移除旧的表面。可以创建新的表面来连接添加的边缘,并且可以基于旧的边缘的移除来移除旧的表面。可以以与添加或移除顶点和边缘类似的方式来识别对于添加或移除表面的需求。例如,对应于第一几何形状的表面如果与对应于第二几何形状的表面冲突,则将其移除。在步骤M0,消除自相交从而相交表面形成单个实体。在步骤530识别出相交顶点、边缘或表面之后,创建新的顶点、边缘或表面。冲突表面的拓扑被合并从而将冲突表面看作单个表面组,在此被称为“合并的表面”。合并的表面可以对应于新的拓扑。通过几何形状内核166可以计算对应于“合并的表面”的几何形状的新体积。对于模型来说,合并的表面现在可以被看作实体,虽然构成合并的表面的每个表面或表面组(例如旋钮220和第二脊216)可以保持其自己的身份(identity)并且继续被可独立地操作。如果随后以消除相交或产生新的或不同的相交的方式来操作构成合并的表面的各表面,则可以以与步骤530-550描述的相同的方式来重新计算新的合并的表面或表面组的拓扑和体积。在步骤550,涉及修改的表面的边界可以被延伸或收缩以形成实体。建模环境162可以保持一组规则,用于管理如何形成模型中的实体。例如,模型的特定部件可能被识别为模型的基座,例如模型200中的基座210。如果将模型的部件识别为基座,用于维持实体的示例性规则可能要求放置在基座210上的每个表面组应与基座尽可能地同延。可替换地,示例性规则可以用于消除基座210的侧面与放置在基座210上的几何形状的侧表面之间的空间。另ー个示例性规则可以是消除模型的每个不同部件之间的空的空间。除了用户定义的规则,建模环境162还可包括默认规则。如果在步骤530-550可以有多于ー个选项,则关于应该选择哪个选项存在不定性。当以多于ー种方式解决冲突吋,可能存在不定性。例如,当在步骤550,有多于ー个表面可以被延伸以形成实体吋,可能存在关于哪个表面要被延伸的不定性(第一表面、第二表面或两者)。例如,在图4a,延伸区域410可以是翼222的表面的延伸或者是凹槽230的延伸,或者是翼222和凹槽230两者表面的延伸。当存在不定性吋,建模环境162可以依赖默认规则来解决不定性。默认规则的ー个实例是修改其操作引起冲突的几何形状的拓扑、体积或两者。例如,由于在图如中旋钮220被移动到凹槽230的顶部,因此操作旋钮220引起冲突。因此,延伸区域410被添加到旋钮220而非凹槽230。默认规则的另一实例是保存基座210的形状并且要求延伸区域被添加到放置在基座形状顶部的几何形状上。本领域技术人员将理解,可以用用户定义的规则覆盖默认规则的选择,并且默认规则可以根据应用或情况的不同而不同。可选地,在步骤560,通过将每个可能的选项呈现给用户可以解决不定性,用户可以选择ー个选项来实施。可以在图形用户界面中为用户呈现多个选项,该图形用户界面显示在显示装置上,例如图1中的显示装置130。然后可以在模型中执行所选择的选项。虽然已经參考特定实施例对本发明进行了描述,但是本领域技术人员将理解本发明不限于在此描述的实施例。在不脱离本发明范围的情况下,本发明可以有多种改型。本发明_在覆盖所有这种改型。权利要求1.一种在电子装置中执行的方法,该方法包括在建模环境中提供模型,该模型包括多个表面;操作该模型的几何形状,使得两个或多个表面冲突;解决冲突以使该模型包括实体;以及在存储器中存储所得的模型。2.如权利要求1所述的方法,解决冲突包括作为合并两个或多个表面的结果创建实体的拓扑。3.如权利要求2所述的方法,其中解决冲突包括添加由新顶点、新表面和新边缘构成的组中的至少一个以创建实体。4.如权利要求1所述的方法,其中对于解决冲突存在多个选项,该多个选项通过显示器上的图形用户界面呈现给用户,该图形用户界面允许用户选择多个选项中的一个,所选择的选项在模型中实施。5.如权利要求1所述的方法,其中解决冲突包括将对应于第一表面或表面组的几何形状的体积与对应于第二表面或表面组的几何形状进行比较。6.如权利要求1所述的方法,其中解决冲突包括将由第一表面的顶点和边缘构成的组中的至少一个与由第二表面的顶点和边缘构成的组中的至少一个进行比较,以确定该第一表面和该第二表面是否相交。7.如权利要求6所述的方法,其中解决冲突还包括将由该第二表面的顶点和边缘构成的组中的至少一个与由该第一表面的顶点和边缘构成的组中的至少一个进行比较,以确定该第一表面和该第二表面是否相交。8.如权利要求1所述的方法,还包括延伸一个或多个表面以形成实体。9.如权利要求1所述的方法,其中操作第一形状包括由移动该第一形状、调整该第一形状的大小或旋转该第一形状构成的组中的至少一个。10.如权利要求1所述的方法,其中解决冲突至少部分地由电子装置提供的几何形状内核执行。11.一种存储电子装置可读指令的电子装置可读介质,该指令在由处理器执行时使处理器在建模环境中提供模型,该模型包括多个表面;操作第一表面,使得第一表面与第二表面冲突;解决冲突以使模型包括实体;以及在存储器中存储所得的模型。12.—种系统,包括存储器,用于存储模型,该模型包括多个表面;以及处理器,用于提供允许操作该模型的一个或多个表面的建模环境;解决该模型中的第一表面和该模型中的第二表面之间的冲突,以使模型形成实体;以及在该存储器中存储所得的模型。全文摘要本发明提供一种方法、系统和存储在计算机可读存储介质上的指令,其解决建模环境(诸如CAD环境)中表面之间的冲突。此外,本发明的示例性实施例可以修改模型的表面以确保模型的各部分构成实体。在示例性实施例中,当操作第一表面或第一表面组与第二表面或第二表面组冲突时,修改表面的拓扑以解决冲突。冲突涉及的各表面可被看作具有单个拓扑、表面区域和体积的合并的表面或表面组。如出现不定性从而存在多于一个选择用于解决冲突或提供实体,则建模环境可向用户提供多个可能的解决方案,并且允许用户从这些解决方案中进行选择。文档编号G06F17/50GK102598000SQ201080035071公开日2012年7月18日申请日期2010年6月8日优先权日2009年6月8日发明者A·崔普金,A·干姆巴罗夫,B·克鲁克,D·鲍格夫斯基,H·朋亚高,I·史密士亚伊夫,S·别尔季切夫斯基,S·格瑞士切金,V·利伯曼申请人:参数技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1