CN111383342A - 使用弱类型定义进行灵活建模 - Google Patents

使用弱类型定义进行灵活建模 Download PDF

Info

Publication number
CN111383342A
CN111383342A CN201911393839.5A CN201911393839A CN111383342A CN 111383342 A CN111383342 A CN 111383342A CN 201911393839 A CN201911393839 A CN 201911393839A CN 111383342 A CN111383342 A CN 111383342A
Authority
CN
China
Prior art keywords
data object
delegated
topology
delegated data
output
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
Application number
CN201911393839.5A
Other languages
English (en)
Inventor
F·莱策尔特
Y·萨杜迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN111383342A publication Critical patent/CN111383342A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本发明尤其涉及一种用于定义三维(3D)模型的数据结构。该数据结构包括一个委托数据对象。该委托数据对象包括特定于该委托数据对象的类型的输入参数、以及用于生成输出拓扑的特定于该委托数据对象的类型的至少一个运算符。该数据结构还包括由该运算符生成的输出拓扑。

Description

使用弱类型定义进行灵活建模
技术领域
概括地说,本发明涉及计算机程序和系统领域,具体地说,本发明涉及用于设计3D模型的数据结构、方法、系统和程序。
背景技术
市场上提供了许多用于对象的设计、工程化和制造的系统和程序。CAD 是计算机辅助设计的缩写,例如,它涉及用于设计对象的软件解决方案。 CAE是计算机辅助工程的缩写,例如,其涉及用于对未来产品的物理行为进行仿真的软件解决方案。CAM是计算机辅助制造的缩写,例如,其涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要作用。这些技术可以嵌入在产品生命周期管理(PLM)系统中。PLM指代在扩展企业的整个概念中,可以帮助企业共享产品数据、应用通用处理、以及利用企业知识从概念到使用寿命结束来开发产品的业务战略。DassaultSystèmes(达索系统)(商标为 CATIA、ENOVIA和DELMIA)提供的PLM解决方案提供了用于组织产品工程知识的工程中心、用于管理制造工程知识的制造中心、以及使企业集成和连接到工程和制造中心的业务战略。该系统共同提供了一个开放的对象模型,该模型将产品、过程、资源链接在一起,以实现基于知识的动态产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
CAD软件提出了使用一组可分为以下两类的工具来创建称为部件的三维(3D)模型的方法:基于历史的方法(也称为参数化建模)和无历史 (History-free)方法(也称为显式建模)。
基于历史的方法被设计为通过使用特征、约束等来存储创建过程的每个步骤,来捕获设计意图。它实际上就像一个部件配方;创建的每个步骤都公开了一组用户可以更改的参数。如果确实更改了一个参数,则将以完全相同的顺序重现整个‘配方’,以重新生成新的部件。通常使用树来表示该方法,该树允许用户快速了解操作的顺序。
无历史方法不依赖于每次修改时都会重现的操作序列。每次修改都是对当前3D模型进行的。也就是说,没有中间步骤,没有“配方”,当用户修改其设计时,该修改将被特征吸收,因此,不会保留导致该修改的参数。因为不保留进行的操作的顺序,因此这种方法使用户可以更快速、更自由地创建3D模型。用户可以专注于他正在创建的几何图形,而不必担心他创建特征的顺序。而且,用户不必担心修改产生的影响。
基于历史的方法的优点也是其缺点。尽管参数化方法几乎可以随时非常方便地更改参数,但它为设计过程带来了刚性。一旦创建了“配方”后,每个特征都是强类型的,你只能使用这些参数。任何其它更改都可能非常复杂,这是因为要获得用户想要的更改,他必须考虑重新生成部件时其将如何影响结果。在用户想要测试不同类型的形状并且想要快速迭代的情况下,这是一个主要缺点。基于历史的方法主要用于创建表示要制造的现实世界的对象的机械部件,而无历史方法主要专用于概念建模或A类阶段的产品的有机形状。
基于历史的方法中使用的对象是强类型的。为了更改对象的类型,需要创建一个全新的对象,并且用代表操作顺序的树中的新对象来替换原来的对象。与被替换对象没有任何链接的新对象,可能由于拓扑结构的变化而不适合当前的“配方”。如果某个操作由于其所依赖的对象已更改而无法再找到计算其修改所需的元素,则会发生这种情况。在这种情况下,用户将必须明确告诉系统该如何做。这是一个繁琐的任务,历史越复杂,就越繁琐且耗时。
使用无历史方法,用户可以快速迭代形状,因为他正在使用的特征根本没有类型。用户不需要关心当前修改对正在设计的对象历史的影响。此外,由于通用特征(正在设计的特征)中没有存储任何历史记录,因此用户可以处理对象的当前状态。因此,即使用户可以快速迭代其形状,他也只能修改其3D形状的当前状态。他无法访问其先前任何操作的任何参数。
基于历史的方法和无历史方法不是不兼容的,因为从无历史的上下文生成的对象可以集成在基于历史的上下文中。更准确地说,用户可以创建无历史的模型并且对其进行操作,从而从中生成新的3D模型。
但是,这两种方法各自的数据结构不可互操作。实际上,基于历史的方法和无历史方法生成的对象的数据结构有些不同;尤其是因为在基于历史的方法中对象的数据结构是强类型的,而无历史方法中对象的数据结构是无类型的(设计人员使用通用特征(也称为“基准”)进行工作,该通用特征没有任何类型)。基于历史的上下文中的3D模型的类型是指其特征,它是由一组参数和至少一个将一组参数作为输入并且返回对象拓扑作为输出的操作来定义的。例如,并且参照图1,3D球体是一种类型的3D模型,“球体”类型具有其参数集,即其中心、半径和张开角度。这带来将所有这些参数作为输入并且能够返回球体拓扑的操作。相反,在无历史的上下文中,创建的形状在定义上没有类型,因为对象没有任何参数。应用于对象的每个操作都将应用于该对象的当前定义。在图3的例子中,用户将仅访问球体的拓扑(即,由所有顶点、边线组成的线框),并且根据该信息可以制作面。
总之,基于历史的方法的数据结构包括特定于类型的输入参数、特定于类型的至少一个操作以及由先前操作生成的输出拓扑。无历史方法的数据结构包括由应用于对象的最后一个外部操作生成的当前拓扑。
由于这两种方法之间的这些根本区别,当前的无历史方法不允许获取用户在3D模型上(相当于在网格上)执行的修改的“配方”。尤其是,不可能自动获取和应用对新网格上的第一3D模型执行的相同或相似的设计操作。例如,已经修改了第一汽车模型的门的设计的设计者不能自动将相同的修改应用于第二汽车模型的门。这意味着几乎不可能以无历史的CAD 方法来重用设计意图;设计者必须直观地对第二汽车模型的网格进行修改,以期重现他/她的最初设计意图。
在这种情况下,仍然需要一种为无历史方法定义3D模型的改进数据结构。
发明内容
因此,提供了一种定义三维(3D)模型的数据结构。该数据结构包括一个委托数据对象。所述一个委托数据对象包括特定于该委托数据对象的类型的输入参数、以及特定于该委托数据对象的类型的至少一个运算符以生成输出拓扑。该数据结构还包括由所述运算符生成的输出拓扑。
该数据结构还可以包括用于添加或移除至少一个运算符的接口。
此外,还提供了一种用于设计三维(3D)模型的计算机实现方法。该方法包括:提供第一数据结构,所述第一数据结构定义包括第一委托数据对象和第一输出拓扑的第一3D模型;根据用户动作,修改所述第一委托数据对象;由于所述第一数据结构的所述修改而计算第二输出拓扑;通过所述第一输出拓扑和所述第二输出拓扑的比较,确定是否发生拓扑改变;如果确定所述第一输出拓扑和所述第二输出拓扑之间发生拓扑改变,则用第二委托数据对象来替换所述第一委托数据对象,或者如果确定未发生拓扑改变,则保持所述第一委托数据对象。
该方法还可以包括以下中的一项或多项:
-用所述第二委托数据对象来替换所述第一委托数据对象包括:-将所述第二输出拓扑与输出拓扑列表进行比较,所述列表中的每个输出拓扑与一个委托数据对象相关联;-作为所述比较的结果,自动地选择第三委托数据对象,所述第三委托数据对象是所述列表中具有与所述第二输出拓扑相同的关联输出拓扑的委托数据对象;
-如果作为所述比较的结果,未选择所述列表的委托数据对象,则:- 向所述用户提供所述列表中具有最接近所述第二输出拓扑的关联输出拓扑的一个或多个委托数据对象,其中所述一个或多个委托数据对象包括一个通用委托数据对象;-由所述用户选择所提供的委托数据对象中的一个委托数据对象;
-根据用户动作来修改所述第一委托数据对象包括:-修改所述第一委托数据对象的一个或多个输入参数;-作为所述比较的结果,确定没有发生拓扑改变;-用所修改的一个或多个输入参数来覆写所述第一委托数据的所述输入参数;
-在提供所述第一数据结构之后:呈现所述第一输出拓扑,从而形成网格;根据用户动作修改所述网格;
-修改所述网格包括:执行从缩放、移动中选择的至少一项操作;其中,保持所述第一委托数据对象还包括:通过所述第一委托数据对象的所述运算符来生成所述第一输出拓扑;
-所述第一委托数据对象和所述第一输出拓扑形成基础网格;
-用所述第二委托数据对象来替换所述第一委托数据对象还包括:将所述第二委托数据对象存储为新类型。
此外,还提供了一种计算机程序,其包括用于执行上述方法的指令。
此外,还提供了一种计算机可读存储介质,其上记录了所述计算机程序和/或所述数据结构。
此外,还提供了一种系统,其包括耦合到存储器的处理器,所述存储器在其上记录了所述计算机程序和/或所述数据结构。该系统还可以包括图形用户界面。
附图说明
现在将通过非限制性示例的方式,并参考附图来描述本发明的实施例,其中:
-图1示出了强类型对象的示例;
-图2至图4示出了本发明的数据结构的示例;
-图5至图6示出了构建阶段的示例;
-图7示出了用于使用所述数据结构来设计3D模型的方法;
-图8至图9示出了图7的示例;
-图10a、10b、11a、11b、12a、12b示出了数据结构输出的基础网格;以及
-图13示出了系统的示例;
-图14a至图14d示出了由数据结构定义的基础网格的示例。
具体实施方式
参照图4,提出了一种用于定义三维(3D)模型的数据结构。该数据结构包括一个委托数据对象和输出拓扑生成器。该委托数据对象包括特定于该委托数据对象的类型的输入参数、以及用于生成输出拓扑的特定于该委托数据对象的类型的至少一个运算符。
这种数据结构改进了无历史的计算机辅助设计系统中的3D模型的设计。
值得注意的是,该数据结构通过引入“弱类型”和“灵活建模”的概念,可以解除无历史方法的局限性。像无历史方法一样,定义3D模型的数据结构是通用的。通用对象不是将定义其类型的对象作为输入,而是将其类型委托给另一个对象。这种其它类型的对象也称为“弱类型”。由于这个委托的数据对象,才可以通过使用作为通用特征的数据结构来设计3D模型:通用特征具有类似于基于历史的方法中的类型。但是,该类型与特征不具有牢固的链接,这是因为该类型已委托给委托数据对象。这使特征可以在整个生命周期中根据上下文和操作来更改类型。因此,该数据结构具有足够的通用性,使得可以在设计操作期间保持,并且在必要时或者设计人员要求时对其进行更改。此外,该数据结构为设计人员在特征创建方面提供了新的可能性:事实上,委托数据对象不一定链接到公共特征(例如,平面、圆柱体、球体、圆环…)并且任何形状(例如,通过用户进行设计) 可以用于获得新的委托数据对象的类型。
参照图7,提出了一种用于通过使用所述数据结构来设计3D模型的方法。所提出的方法包括:提供根据本发明的第一数据结构。第一数据结构定义包括第一委托数据对象和第一输出拓扑的第一3D模型。随后,该方法包括:根据用户动作,修改第一数据结构的第一委托数据对象。该方法还包括:由于对第一数据结构的修改而计算第二输出拓扑。该方法还包括:通过第一输出拓扑和第二输出拓扑的比较,确定是否发生拓扑改变。该方法还包括:如果确定第一输出拓扑和第二输出拓扑之间发生拓扑改变,则用第二委托数据对象来替换第一委托数据对象,或者如果确定未发生拓扑改变,则保持第一委托数据对象。
这种方法改进了无历史的计算机辅助设计系统中3D模型的设计。值得注意的是,该方法使用所述数据结构,该数据结构通过引入“弱类型”和“灵活建模”的概念来允许解除无历史方法的局限性。因此,本方法允许根据在设计第一3D模型时是否发生拓扑的改变,而保留或替换委托数据对象。由于无历史方法,因此没有存储在3D模型上完成的连续操作,每个操作都在特征的最后状态下进行。这意味着某些操作可以更改数据结构或通用特征的委托数据对象。发生这种情况时,委托数据对象将替换为更合适的委托数据对象。但是,所有操作(例如,设计操作)的破坏性都不太大,在某些情况下,它们可以将委托对象保持不变,这是因为实际上,该操作正在修改委托对象参数之一。另外,本方法确保在特征树中可见的对象永远不会改变,仅底层的委托数据对象发生改变。因此,当委托数据对象发生改变时,系统仍然知道3D模型的先前类型和新类型。尽管用一个新的对象来替换了委托数据对象,但是可以保留有关被替换对象的知识。因此,提高了无历史方法的灵活性。
该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤) 由至少一台计算机或任何类似系统执行。因此,该方法的步骤可以由计算机执行,其可以是全自动执行,也可以是半自动执行。举例而言,可以通过用户计算机交互来执行对该方法的至少一些步骤的触发。所需的用户-计算机交互水平可以取决于预见的自动水平,并且与实现用户意愿的需求保持平衡。举例而言,该水平可以是用户定义的和/或预定义的。
例如,修改第一委托数据对象的步骤是根据例如在设计操作期间的用户动作来执行的。
方法的计算机实现的典型示例是使用适用于该目的的系统来执行该方法。该系统可以包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适合于这种存储的任何硬件,其可以包括几个物理上不同的部分(例如,一个用于程序、而可能的一个用于数据库)。
数据结构定义了3D模型,并且该方法通常操纵该数据结构并且因此操纵3D模型。3D模型也称为建模对象。建模对象是由存储在例如数据库中的数据定义的任何对象。通过扩展,“建模对象”的表达表示数据本身。根据系统的类型,可以通过不同种类的数据来定义建模对象。该系统确实可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在这些不同的系统中,通过相应的数据来定义建模对象。因此,可以提到CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD 数据、PLM数据、PDM数据、CAM数据、CAE数据。但是,这些系统并不是彼此排斥的,因为可以通过与这些系统的任何组合相对应的数据来定义建模对象。通过下面提供的这些系统的定义将显而易见的是,系统因此可以很好地是CAD和PLM系统。
在CAD系统中,它还意味着至少适合于基于建模对象的图形表示(如,CATIA)设计建模对象的任何系统。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。例如,CAD系统可以使用边或线(在某些情况下,利用面或表面)来提供CAD建模对象的表示。线、边或表面可以以各种方式来表示,例如使用非均匀有理B样条(NURBS)来表示。具体而言,CAD文件包含可以从中生成几何图形的规范,从而允许生成表示。建模对象的规范可以存储在单个CAD文件中,也可以存储在多个CAD文件中。表示CAD系统中的建模对象的文件的典型大小,在每个部件1M字节的范围内。建模对象通常可以是数千个部件的组合。
在CAD的上下文中,建模对象通常可以是3D建模对象,例如表示诸如部件或部件组合之类的产品,或者可以是产品组合。“3D建模对象”是指通过允许其3D表示的数据来建模的任何对象。3D表示允许从各个角度查看部件。例如,当表示3D时,可以处理3D建模对象,并且围绕其任何轴或者围绕显示其表示的屏幕中的任何轴来旋转它们。值得注意的是,这不包括未3D建模的2D图标。3D表示的显示有助于设计(即,提高设计人员在统计意义上完成他们的任务的速度)。由于产品的设计是制造过程的一部分,因此可以加快工业制造过程。
3D建模对象可以表示在使用例如CAD软件解决方案或CAD系统来完成产品(例如,(如,机械)零件或零件组合(或等效地是部件的组装,因为从方法的角度来看,部件的组装可以看作是部件本身,或者该方法可以独立地应用于组装中的每个部件),或更一般而言,可以是任何刚体部件 (例如,移动装置))的虚拟设计后,要在现实世界中制造的产品的几何形状。CAD软件解决方案允许在包括以下的各种无限的工业领域中设计产品:航空航天、建筑、构造、消费品、高科技设备、工业设备、运输、船舶和/ 或海上油气生产或运输。因此,通过该方法设计的3D建模对象可以表示工业产品,该工业产品可以是任何机械零件,例如陆地车辆(其包括汽车和轻型卡车设备、赛车、摩托车、卡车和汽车设备、卡车和公共汽车、火车) 的一部分、空中飞行器的一部分(例如,其包括机身设备、航空航天设备、推进设备、国防产品、航空设备、太空设备)、海军车辆(其包括海军设备、商业船舶、海上设备、游艇和工作船、船舶设备)的一部分、通用机械部件(例如,其包括工业制造机械、重型移动机械或设备、安装的设备、工业装备产品、金属制品、轮胎制造产品)、机电或电子部件(例如,其包括消费类电子产品、安全和/或控制和/或仪表产品、计算和通信设备、半导体、医疗设备或器械)、消费品(例如,其包括家具、家庭和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(例如,其包括食品和饮料和烟草、美容和个人护理、家用产品包装)。
PLM系统另外是指适合于管理表示物理制造产品(或者要制造的产品) 的建模对象的任何系统。因此,在PLM系统中,通过适合于制造物理对象的数据来定义建模对象。这些数据通常可以是尺度值和/或容差值。对于对象的正确制造而言,具有这样的值确实更好。
CAM解决方案还意味着适合于管理产品制造数据的任何解决方案、硬件软件。制造数据通常包括与要制造的产品、制造过程和所需资源有关的数据。使用CAM解决方案来计划和优化产品的整个制造过程。例如,它可以为CAM用户提供关于可行性、制造过程的持续时间或者在制造过程的特定步骤可以使用的资源(例如,特定机器人)数量的信息;因此可以允许对管理或所需的投资做出决定。CAM是CAD过程和潜在的CAE过程之后的后续过程。这种CAM解决方案由Dassault Systèmes(达索系统)以商标
Figure RE-GDA0002468880790000091
来提供。
CAE解决方案还意味着适合于分析建模对象的物理行为的任何解决方案、硬件软件。有限元方法(FEM)是一种众所周知且广泛使用的CAE技术,其通常涉及将建模对象分解为可以通过方程计算和对物理行为进行仿真的一些元素。这种CAE解决方案由DassaultSystèmes(达索系统)以商标
Figure RE-GDA0002468880790000092
来提供。另一种不断发展的CAE技术涉及对复杂系统进行建模和分析,这些复杂系统由来自不同物理领域的多个组件组成,但不具有 CAD几何数据。CAE解决方案允许进行仿真,从而允许优化、改进和验证要制造的产品。这种CAE解决方案由Dassault Systèmes(达索系统)以商标
Figure RE-GDA0002468880790000093
来提供。
PDM代表产品数据管理。PDM解决方案意味着适合于管理与特定产品有关的所有类型的数据的任何解决方案、硬件软件。产品生命周期中的所有参与者都可以使用PDM解决方案:主要是工程师,但也包括项目经理、财务人员、销售人员和采购人员。PDM解决方案通常基于面向产品的数据库。它允许参与者在他们的产品上共享一致的数据,从而防止参与者使用不同的数据。这种PDM解决方案由Dassault Systèmes(达索系统)以商标为
Figure RE-GDA0002468880790000101
来提供。
图13示出了系统的示例,其中该系统是客户端计算机系统(例如,用户的工作站)。
该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、也连接到总线的随机存取存储器(RAM)1070。该客户端计算机还提供有图形处理单元(GPU)1110,GPU 1110与连接到总线的视频随机存取存储器1100相关联。在本领域中也将视频RAM 1100称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,例如,其包括:半导体存储器设备,比如EPROM、EEPROM和闪存设备;磁盘,比如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM盘1040。上述的任何内容可以通过专门设计的ASIC(专用集成电路)进行补充,或者并入到该ASIC中。网络适配器 1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。此外,光标控制设备还允许用户选择各种命令并且输入控制信号。光标控制设备包括多个信号生成设备,以用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。替代地或另外地,该客户端计算机系统可以包括敏感垫和/或敏感屏幕。
该计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的单元。该程序可以记录在任何数据存储介质(其包括系统的内存)上。例如,可以以数字电子电路或计算机硬件、固件、软件或它们的组合来实现该程序。可以将该程序实现为装置,例如,有形地体现在机器可读存储设备中以由可编程处理器执行的产品。可以通过可编程处理器执行指令程序,以通过对输入数据进行操作并且生成输出来执行该方法的功能,来执行方法步骤。因此,处理器可以是可编程的和耦合的,以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。如果需要的话,可以以高级过程或面向对象的编程语言或汇编或机器语言来实现该应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,该程序在系统上的应用都会导致执行该方法的指令。
数据结构是用于控制并存储CAD系统(或类似物)的操作的功能数据。因此,数据结构用于控制在例如无历史CAD系统上设计3D模型的操作。尤其是,数据结构改进了设计操作,这是因为创建形状的类型和参数被传递给通用特征,而通用特征不是强类型的,相反是弱类型的。这里,数据结构是用于设计3D模型(例如,表示现实世界的对象)的技术特征的功能数据。
“设计3D建模对象”指定作为拟定3D建模对象的过程的至少一部分的任何动作或一系列动作。因此,该方法可以包括从头开始创建3D建模对象。替代地,该方法可以包括提供先前创建的3D建模对象,然后修改该 3D建模对象。该方法可以包括在制造过程中,在执行该方法之后,该制造过程可以包括:产生与建模对象相对应的物理产品。在任何情况下,通过该方法设计的建模对象都可以表示制造对象。因此,建模对象可以是建模实体(即,表示实体的建模对象)。制造对象可以是产品,例如部分或部件组合。因为该方法改进了建模对象的设计,因此该方法还改进了产品的制造,从而提高了制造过程的生产率。
图1示出了由已知的基于历史的CAD系统通常使用的强类型数据结构的例子。在该例子中,数据结构定义了特征3D球体,其中该3D球体是类型化3D模型。该特征3D球体定义了3D球体类型,该类型带有一组参数,这些参数是球体的中心、半径和张开角度。数据结构附带一个单一的操作,该单一操作是球形操作。该类型的特征的输出返回球体的拓扑,如图1的右侧所示。
现在,从无历史方法的角度来看,只有表示球体的网格对系统是可用的。无历史的范例在于该特征是通用的:这意味着CAD系统不知道网格(包括所有顶点、边线的线框,可以根据该信息来制作线框的面)代表一个球体,这是因为CAD系统仅访问网格。因此,即使设计人员可以快速迭代形状,他也只能修改网格的当前状态;因此,仅修改球体的参数是不可能的,例如设计人员不能修改具有3D球体的3D形状的网格的半径。
图2示出了本发明的数据结构的例子。该数据结构(或特征)是通用的,这意味着该数据结构是非类型化的,因此未链接到一种特定类型的对象(例如,球形图元)。特征是可以从中获得形状的构件。3D建模中通常使用特征来构建3D建模对象。举一个非限制性示例,“典型”特征可以具有以下类型:平行六面体(例如,长方体)、圆柱、球体、金字塔形、圆锥、二次曲面、直纹表面、环形等等。通常而言,一个特征可以表示任何形状,甚至非常复杂的形状,例如汽车或飞机,而该特征拥有足以使特定的运算符生成该形状的一组参数。一组特征可以允许描述一个工业产品(例如,无历史CAD系统中以网格表示的工业产品)。
该数据结构是通用的,其可以用于无历史CAD系统中。通用特征与特征的类型无关。但是,通用特征可以接收数据,执行数据并且获得与具有某种类型的特征所提供的结果相似的结果。该数据结构将定义特征类型的委托数据对象作为输入。委托数据对象有助于“弱类型”通用特征。这意味着该数据结构是通用的,其通用性受到委托数据对象的约束。由于数据结构是通用的,因此数据结构未链接到一个特定的操作。该操作与委托数据对象一起提供。因此,该(通用)数据结构继承某种类型和特定于该委托数据对象的类型的运算符。所述继承是通过向通用特征提供委托数据对象(其包括类型和特定运算符)作为输入来执行的。输出是通用特征根据输入所计算出的拓扑。因此,拓扑特定于输入中提供的类型。
这在图3中进行了说明,在图3中,(通用)数据结构将球体类型的委托数据对象接受为输入,并且由该数据结构产生的拓扑是球体。球体的产生由该类型的运算符控制,该运算符由该数据结构执行(或运行)。因此,数据结构获取委托数据对象的运算符,然后执行。
委托数据对象包括特定于委托数据对象的类型的输入参数。该委托还包括一个或多个特定于委托数据对象类型的运算符。
图4示出了特定于“球体”类型的委托数据对象的例子。当委托对象由通用特征执行时,也就是当系统要求“球体”特征自行构建时,通用特征将其委托给用于该特定类型的委托数据对象。在上面的例子中,委托数据对象知道应当使用‘中心’、‘半径’和‘张开角度’作为参数来构建球体。这样,委托对象将使用其输入参数来生成操作。然后,通用特征将使用该操作来生成其拓扑。因此,如果由于任何原因将委托对象替换为另一个对象,则从通用特征的角度来看,它将是透明的,因为其仍将获取并且运行委托对象给出的操作。
委托数据对象的参数允许实例化生成输出拓扑的运算符。例如,如本领域中已知的:
-特定于“球体”类型的输入参数是中心、半径和张开角度;
-特定于“圆柱”类型的输入参数是轴的方向、圆柱的高度、圆的中心和半径;
-特定于“圆锥”类型的输入参数是轴方向、圆锥的高度、圆锥底的中心和半径;
-特定于“环形”类型的输入参数是方向矢量、中心、大圆的半径和小圆的半径。
该数据结构还包括由运算符生成的输出拓扑。拓扑取决于委托数据对象的类型。
举例而言,可以通过特定于委托数据对象的类型的运算符来执行操作。在这种情况下,该操作也称为内部操作:其不修改输出拓扑的拓扑。内部操作通常是作为修改委托数据对象的输入参数(例如,输出拓扑的比例或移动)的结果而执行的操作。这些操作的列表可以与委托数据对象相关联,使得通用特征具有已经“加载”在该通用特征上的操作可以执行修改的知识。
举例而言,可以通过不是委托数据对象的特定运算符的运算符来执行操作。在这种情况下,该操作也称为外部操作:修改输出拓扑。外部操作通常是在修改输出的拓扑时,不能由委托数据对象的运算符执行的操作(例如,在由数据结构定义的3D模型的3D表示上执行切割)。为了执行该操作,数据结构可以包括适于添加或移除至少一个运算符的接口。可以将运算符“加载”在数据结构上并且进行执行。委托数据对象的运算符可以保持加载在通用特征上,也可以简单地删除。该数据结构始终包含至少一个运算符。
举例而言,可以呈现输出拓扑,使得可以访问由数据结构定义的3D模型的表示(例如,向用户显示)。如本领域中已知的,输出拓扑可以用网格来表示。网格可以是细分表面,该细分表面是一种通过指定较粗的分段线性多边形网格来表示光滑表面的方法。网格是定义3D模型的形状的顶点、边和面的集合。因此,网格定义了从中可以生成3D模型的输出拓扑的图形表示的几何形状。网格可以是细分表面,其通常用于对任意拓扑的自由形式表面进行建模。将细分表面定义为从控制点的多边形基础网格开始的细化过程的极限。基础网格的控制点将渐进的变化传递到细分表面。因此,作为细分过程的迭代的结果,对细分表面的网格进行细化,该细分过程由基础网格的控制点进行控制。因此,细分表面将对基础网格进行近似或插值。Catmull-Clark算法是这种细分方案的一个例子。基础网格广泛地用于 CAD中,一个简单的定义可以是:基础网格包括细分网格的定义和细分网格的控制点。应该理解,可以使用一些专用算法。
因此,设计操作可以是在用户对基础网格的控制点之一进行操作时对网格的修改。在图14a、14b、14c和14d上表示了对基础网格的设计操作的例子。图14a示出了作为立方基础网格的基础网格的例子。立方基础网格具有8个控制点,并且边具有相同的长度。没有任何顶点、边或面附连权重。在图14b中,用户已经替换(或移动)图14a的基础网格的控制点,该控制点例如使用Catmull-Clark算法控制原始立方体细分为球体。图14c 示出了从作为立方基础网格(8个控制点)的图14a的基础网格获得的细分表面,边具有相同的长度,两个相对面具有权重(100%锐化)。因此获得了圆柱体。图14d示出了从作为立方基础网格(8个控制点)的图14a的基础网格获得的细分表面,边具有相同的长度,每个边上具有权重(100%锐化)。获得了立方体。在这些例子中,控制点修改顶点或边或面的权重,从而修改细分过程。通过权重形成了网格的吸引力。
现在参考图5和图6,现在讨论由根据本发明的数据结构定义的3D模型的构建阶段。
图5表示本领域中已知的无历史系统中通用特征的构建阶段。当用户要求修改形状时,系统经历该形状的构建阶段。通常,在该阶段期间,将调用表示当前修改的运算符,该运算符的结果是与当前形状关联的新形状。构建阶段具有一个输出,即新形状。
图6表示本发明的数据结构的构建阶段。本发明的构建阶段是不同的,这是因为该构建阶段不仅根据当前修改来计算新形状,而且还确保委托数据对象仍然是一致的,如果不一致,则将新的委托数据对象提供给数据结构。
现在参考图7更精确地讨论构建阶段。图7是用于利用本发明的数据结构来设计3D模型的计算机实现方法的例子。
在S10处,提供根据本发明的第一数据结构。第一数据结构定义第一3D模型,并且包括第一委托数据对象和第一输出拓扑。第一输出拓扑定义当前几何形状,当前几何形状可以是3D模型的当前表示(例如,显示基础网格)。
在S20处,执行构建阶段。
构建阶段从第一委托数据对象的用户修改(S21)开始。对第一委托数据对象的修改可以包括直接修改第一委托数据对象的一个或多个输入参数。替代地,该修改可以包括修改3D模型(3D形状,即3D模型的表示),而不显式地修改委托数据对象的一个或多个参数。另一种可能性是用另一个委托数据对象来替换第一委托数据对象。
然后,确定(S22)是否由于用户修改而发生了第一输出拓扑的改变 (S21)。应当理解的是,可以利用任何已知技术来执行对发生拓扑改变的检测。
举一个例子,通过执行第一输出拓扑和第二输出拓扑之间的比较来执行该确定,其中第二输出拓扑是在用户修改之后获得的拓扑。
第一输出拓扑和第二输出拓扑之间的比较可以包括:执行第一基础网格和第二基础网格的比较,其中第一基础网格是对应于修改之前的几何形状的基础网格,第二基础网格是对应于修改的几何形状的基础网格。从网格计算拓扑改变更容易。
如果当前操作(S21)保留了所采用(delate)的数据对象(即,没有由于修改而改变类型3D形状),则执行S23。否则,执行S24和S25。
现在参照图8来讨论S23。由于确定没有发生拓扑改变,因此将保留第一委托数据对象。换句话说,3D模型的类型没有改变。在已经修改了第一委托数据对象的一个或多个参数的情况下,或者在未显式地改变弱类型参数的情况下修改3D形状不会影响第一拓扑输出的情况。
因此,当用户修改了第一委托数据对象的一个或多个输入参数时,使用修改后的一个或多个输入参数来覆写第一委托数据的输入参数。有趣的是,在这种情况下,可以不执行拓扑改变的验证。
并且,当在未显式地改变弱类型参数的情况下修改3D形状不会影响第一拓扑输出时,将保留第一委托数据,并根据对3D形状的修改来修改参数。根据对3D形状的修改来计算一个或多个参数的新值。如本领域中所已知的,执行一个或多个新值的计算。
用户可以通过直接对网格进行修改来完成对3D形状的修改。在这种情况下,如本领域所已知的,呈现第一输出拓扑从而形成基础网格。并且用户对基础网格进行修改,例如用户移动基础网格的顶点或边或控制点。
举例而言,对(基础)网格的修改包括执行从缩放、移动…中选择的至少一项操作。由于已知这些操作在拓扑上是中立的(也就是说,它们不会修改拓扑),因此第一输出拓扑将由第一委托数据对象的未改变的运算符生成。
现在参考图9来讨论S24和S25。在S24处,选择新的委托数据对象以替换(S25)不再有效的当前委托数据对象。
可以通过将第二输出拓扑(作为修改的结果获得的新拓扑)与输出拓扑列表的输出拓扑进行比较,来执行新委托数据对象的识别。列表的每个输出拓扑都与一个委托数据对象相关联,使得当识别出新的输出拓扑与列表的输出拓扑之间的对应关系时,将关联的委托数据对象保留为新的。否则,作为比较的结果选择第三委托数据对象,并且第三委托数据对象是列表中具有与第二输出拓扑相同的关联输出拓扑的委托数据对象。可以自动地执行(例如,用户不干预)第三委托数据对象的选择。
替代地,可以在3D形状之间执行比较;在这种情况下,所述列表包括与委托数据对象相关联的3D形状。
但是,可能存在无法在列表中选择新的委托数据对象的情况。一个典型的原因可能是列表中没有引用相同的拓扑。在这种情况下,向用户提供列表中具有最接近第二输出拓扑的关联输出拓扑的一个或多个委托数据对象。如本领域中所已知的,对两个拓扑之间的距离进行测量。例如,这可以通过计算表示输出拓扑的网格的混淆来执行。至少比较网格顶点的位置 (具有给定的公差),最后比较连接顶点的边。可以通过这些测量来进行排名,并且将该排名的第一拓扑提供给用户。
或者,可以在3D形状之间执行比较;在这种情况下,将在当前3D形状(根据用户操作修改的形状)和与委托数据对象相关联的3D形状列表之间执行相似的测量。将具有最类似于当前3D形状的3D形状的委托数据对象呈现给用户。
该列表还可以包括一个通用委托数据对象。如果用户对建议的拓扑不满意,则可以使用该通用委托数据对象。替代地,通用委托数据对象可以是向用户提出的唯一委托数据对象。
在选择了提供的委托数据对象之一之后,用所选定的委托数据对象来替换第一委托数据对象。
有趣的是,用户可以在该方法的任何阶段,特别是在执行S24和S25 时,创建一个新的类型。举一个例子,用第二委托数据对象来替换第一委托数据对象可以包括将第二委托数据对象存储为新类型。
返回参照图7,在S30处,在用户修改之后,数据结构包括相同或新的弱类型以及拓扑输出。
图10a示出了与球体类型相对应的数据结构。图10b示出了缩放后的相同数据结构。实际上,缩放是不修改图10a的委托数据对象的操作。
图11a示出了图10a的数据结构。图11b示出了挤压操作之后的相同数据结构。基础网格已被修改,因此产生了拓扑输出的拓扑改变。因此,获得细分,并且在委托数据对象列表中识别新的委托数据对象。该委托数据对象将替换当前委托数据对象。
图12a示出了通用对象。图12b示出了在通用对象之上执行填充操作之后的同一对象。该填充操作将生成球体。实际上,该系统能够提取相关信息以填充球体的参数值。通过将3D形状与委托数据对象的形状列表进行比较,可以实现此目的。如果系统识别出多个可能的委托数据对象,则将向用户提示一条消息,以供他在可能的选项之间进行选择。

Claims (13)

1.定义三维(3D)模型的数据结构,其包括:
-一个委托数据对象,其包括:
-特定于所述委托数据对象的类型的输入参数;以及
-用于生成输出拓扑的特定于所述委托数据对象的所述类型的至少一个运算符;
-由所述运算符生成的输出拓扑。
2.根据权利要求1所述的数据结构,还包括:
用于添加或移除至少一个运算符的接口。
3.一种用于设计三维(3D)模型的计算机实现的方法,包括:
-提供根据权利要求1或2中的一项所述的第一数据结构,所述第一数据结构定义包括第一委托数据对象和第一输出拓扑的第一3D模型;
-根据用户动作,修改所述第一委托数据对象;
-由于对所述第一数据结构的所述修改而计算第二输出拓扑;
-通过对所述第一输出拓扑和所述第二输出拓扑的比较,确定是否发生拓扑改变;
-如果确定所述第一输出拓扑和所述第二输出拓扑之间发生拓扑改变,则用第二委托数据对象来替换所述第一委托数据对象,或者如果确定未发生拓扑改变,则保持所述第一委托数据对象。
4.根据权利要求3所述的计算机实现的方法,其中,用所述第二委托数据对象来替换所述第一委托数据对象包括:
-将所述第二输出拓扑与输出拓扑列表进行比较,所述列表中的每个输出拓扑与一个委托数据对象相关联;
-作为所述比较的结果,自动地选择第三委托数据对象,所述第三委托数据对象是所述列表中具有与所述第二输出拓扑相同的关联输出拓扑的委托数据对象。
5.根据权利要求4所述的计算机实现的方法,还包括:
如果作为所述比较的结果,未选择所述列表的委托数据对象,则:
-向所述用户提供所述列表中具有最接近所述第二输出拓扑的关联输出拓扑的一个或多个委托数据对象,其中所述一个或多个委托数据对象包括一个通用委托数据对象;
-由所述用户选择所提供的委托数据对象中的一个委托数据对象。
6.根据权利要求3至5中的一项所述的计算机实现的方法,其中,根据用户动作来修改所述第一委托数据对象包括:
-修改所述第一委托数据对象的一个或多个输入参数;
-作为所述比较的结果,确定没有发生拓扑改变;以及
-用所修改的一个或多个输入参数来覆写所述第一委托数据的所述输入参数。
7.根据权利要求3至6中的一项所述的计算机实现的方法,还包括:在提供所述第一数据结构之后:
-呈现所述第一输出拓扑,从而形成网格;
-根据用户动作修改所述网格。
8.根据权利要求7所述的计算机实现的方法,其中,修改所述网格包括:
-执行从缩放、移动中选择的至少一项操作;以及
其中,保持所述第一委托数据对象还包括:通过所述第一委托数据对象的所述运算符来生成所述第一输出拓扑。
9.根据权利要求3至8中的一项所述的计算机实现的方法,其中,所述第一委托数据对象和所述第一输出拓扑形成基础网格。
10.根据权利要求3至9中的一项所述的计算机实现的方法,其中,用所述第二委托数据对象来替换所述第一委托数据对象还包括:将所述第二委托数据对象存储为新类型。
11.一种计算机程序,其包括用于执行根据权利要求3-10中的任一项所述的方法的指令。
12.一种计算机可读存储介质,其上记录了根据权利要求11所述的计算机程序和/或根据权利要求1至2中的一项所述的数据结构。
13.一种系统,其包括耦合到存储器的处理器,所述存储器在其上记录了根据权利要求11所述的计算机程序和/或根据权利要求1至2中的一项所述的数据结构。
CN201911393839.5A 2018-12-30 2019-12-30 使用弱类型定义进行灵活建模 Pending CN111383342A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18306890.7 2018-12-30
EP18306890.7A EP3674931A1 (en) 2018-12-30 2018-12-30 Flexible modeling using a weak type definition

Publications (1)

Publication Number Publication Date
CN111383342A true CN111383342A (zh) 2020-07-07

Family

ID=65200563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911393839.5A Pending CN111383342A (zh) 2018-12-30 2019-12-30 使用弱类型定义进行灵活建模

Country Status (4)

Country Link
US (1) US20200211296A1 (zh)
EP (1) EP3674931A1 (zh)
JP (1) JP2020115341A (zh)
CN (1) CN111383342A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7088400B1 (ja) 2021-12-22 2022-06-21 凸版印刷株式会社 コンテンツ管理システム、コンテンツ管理方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060079989A1 (en) * 2004-10-07 2006-04-13 Amada Corporation, Limited Representation of sheet metal part models
JP2006209233A (ja) * 2005-01-25 2006-08-10 Takami Fukaya 土木構造物作図支援プログラム
CN102332039A (zh) * 2011-04-29 2012-01-25 华南理工大学 网络协同设计的异源cad模型数据集成装置及集成方法
JPWO2016207991A1 (ja) * 2015-06-24 2018-03-29 株式会社日立製作所 三次元cadシステム装置、並びに三次元cadに用いられる知識管理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1501026A1 (en) * 2003-07-25 2005-01-26 Dassault Systèmes CAD system using a context-free grammar
US8941650B2 (en) * 2009-07-28 2015-01-27 Autodesk, Inc. Method for validating features in a direct modeling paradigm
US8694286B2 (en) * 2010-10-01 2014-04-08 Autodesk, Inc. Modifying a parametrically defined model with an explicit modeler
US9117308B1 (en) * 2011-12-29 2015-08-25 Dassault Systemes Solidworks Corporation Methods and systems for converting select features of a computer-aided design (CAD) model to direct-edit features

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060079989A1 (en) * 2004-10-07 2006-04-13 Amada Corporation, Limited Representation of sheet metal part models
JP2006209233A (ja) * 2005-01-25 2006-08-10 Takami Fukaya 土木構造物作図支援プログラム
CN102332039A (zh) * 2011-04-29 2012-01-25 华南理工大学 网络协同设计的异源cad模型数据集成装置及集成方法
JPWO2016207991A1 (ja) * 2015-06-24 2018-03-29 株式会社日立製作所 三次元cadシステム装置、並びに三次元cadに用いられる知識管理方法

Also Published As

Publication number Publication date
US20200211296A1 (en) 2020-07-02
JP2020115341A (ja) 2020-07-30
EP3674931A1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
CN108228987B (zh) 副本选择
US11733851B2 (en) Generation of a color of an object displayed on a GUI
JP7164295B2 (ja) 3dプリンティングのための現実の物体の向き付け
JP7049807B2 (ja) パラメトリックビュー関数に基づくデータベースの照会
JP7327943B2 (ja) フライス作業によって製造可能な部品の設計
CN105844711B (zh) 在细分曲面上雕刻2d图像
CN111383327A (zh) 使用弱类型定义进行建模
CN107092741B (zh) 使用面轨迹的b-rep设计
CN105389412B (zh) 顺序更新的执行
CN105389413B (zh) 按序更新的准则
JP7436143B2 (ja) 格子構造を含む3d部品の3d有限要素メッシュの設計
JP2016119077A (ja) 制御点のグリッドによって定義される3dモデリングされた物体
JP2019114260A (ja) 格子構造を含む3dパーツの3d有限要素メッシュの設計
JP2019153280A (ja) 製品の部品の組み立て方法
CN111382480A (zh) 设计机械零件
CN114611223A (zh) 深度学习生成模型
CN111383342A (zh) 使用弱类型定义进行灵活建模
JP2023056515A (ja) モデル化オブジェクトの設計
JP7505881B2 (ja) 弱型定義を用いるモデリング
EP4202622A1 (en) Setting typed parameter
CN110008495B (zh) 包含晶格结构的3d部件的3d有限元网格的设计

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