CN105718626B - 由控制点的栅格定义的3d建模对象 - Google Patents

由控制点的栅格定义的3d建模对象 Download PDF

Info

Publication number
CN105718626B
CN105718626B CN201510970277.1A CN201510970277A CN105718626B CN 105718626 B CN105718626 B CN 105718626B CN 201510970277 A CN201510970277 A CN 201510970277A CN 105718626 B CN105718626 B CN 105718626B
Authority
CN
China
Prior art keywords
points
grid
nurbs
point
control point
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.)
Active
Application number
CN201510970277.1A
Other languages
English (en)
Other versions
CN105718626A (zh
Inventor
M-H·瓦勒
N·蒙塔纳
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 CN105718626A publication Critical patent/CN105718626A/zh
Application granted granted Critical
Publication of CN105718626B publication Critical patent/CN105718626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • 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/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Architecture (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

提供了用于设计3D建模对象的计算机实现的方法,包括向计算机系统提供(S10)NURBS表面,该NURBS表面表示3D建模对象并且由控制点的栅格进行定义;通过计算机系统确定(S20)属于NURBS表面的表面点的栅格,表面点的栅格根据预定的可逆函数与控制点的栅格相对应;通过计算机系统显示(S30)NURBS表面,并且在NURBS表面上显示表面点的栅格;通过图形化用户交互来选择(S40)表面点的子集;通过图形化用户交互来修改(S52)表面点的被选择的子集的位置,并且相应地,通过计算机系统实时地对表面进行更新(S54),更新是根据预定的可逆函数执行的。这样的方法改进了3D建模对象的设计。

Description

由控制点的栅格定义的3D建模对象
技术领域
本发明特别涉及计算机辅助设计(CAD)领域,并且更具体地,涉及通过图形化用户交互设计3D建模对象的方法、程序和系统。
背景技术
市场上提供了大量的用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如,其与用于设计对象的软件解决方案有关。CAE是计算机辅助工程的首字母缩略词,例如,其与用于对未来产品的物理行为进行仿真的软件解决方案有关。CAM是计算机辅助制造的首字母缩略词,例如,其与用于定义制造过程和操作的软件解决方案有关。在这样的计算机辅助设计系统中,图形化用户界面在如技术效率的方面起重要作用。这些技术可以嵌入在产品生命周期管理(PLM)系统内。PLM指的是商业策略,其帮助公司在扩展公司的概念上共享共享产品数据、应用通用过程、以及针对产品从概念到寿命终点的开发而施加公司知识。
由DASSAULT SYSTEMES(商标CATIA、ENOVIA、和DELMIA下)提供的PLM解决方案提供了对产品工程知识进行组织的工程中心、对制造工程知识进行管理的制造中心、以及使得企业能够整合并且连接到工程中心和制造中心二者的企业中心。该系统作为整体交付了开放对象模型,所述开放对象模型链接产品、过程、资源,以使得能够进行动态的、基于知识的产品创造以及驱动优化的产品定义、制造准备、生产和服务的决策支持。
CAD通常涉及用于表示3D建模对象的表面。表面建模特别用于造型设计中,造型设计包括A级设计,在A级设计中,动机包括被制造的产品的美学方面。通常的表面由Bezier、B-Spline的数学处理提供,并且更一般地由NURBS(非均匀有理B样条)曲线和表面模型来提供。所有这些模型提供了“控制点”的非常流行的概念。表面由点的栅格定义,并且适当地移动这些点会改变表面的形状。典型的参考文件是:
·The NURBS book,L.Piegl,W,Springer Science,1997;以及
·Curves and surfaces for computer aided geometric design:a practicalguide,G.Farin,Hardcore,1996。
现有系统的目的在于允许由用户进行容易的交互操纵,以用于对表面的修改。按照定义,容易的操纵是直观的和可预测的,这意味着初学者快速地了解怎样改变表面的形状,并且熟练用户能够预期操纵所产生的表面。
用于塑造NURBS表面的一些方法涉及几何约束或物理行为。几何约束方法计算新的控制点,以使得变形的表面满足用户定义的几何结构(点、点的集合、曲线)。物理行为用于用户在表现得像弹性材料的表面上施加力。参考文件包括:
·Dynamic NURBS with Geometric Constraints for Interactive Sculping,D.Terzopoulos,H.Qin,ACM Transactions on Graphics,13(2),April,1994,103-136;以及
·Modifying the shape of NURBS surfaces with geometric constraints,S.M.Hu,Y.F.Li,T.Ju,X.Zhu,Computer Aided Design,33(2001)903-912。
在此上下文中,仍然存在对设计3D建模对象的改进方案的需求。
发明内容
因此,提供了用于设计3D建模对象的计算机实现的方法。该方法包括向计算机系统提供NURBS表面的步骤,该NURBS表面表示3D建模对象并且由控制点的栅格来进行定义。方法还包括通过计算机系统确定属于NURBS表面的表面点的栅格。表面点的栅格根据预定的可逆函数与控制点的栅格相对应。方法还包括通过计算机系统显示NURBS表面并且在NURBS表面上显示表面点的栅格。方法还包括通过图形化用户交互来选择表面点的子集。方法还包括通过图形化用户交互来修改表面点的被选择的子集的位置,并且相应地,通过计算机系统实时地对表面地进行更新,所述更新是根据预定的可逆函数执行的。
方法可以包括以下中的一个或多个:
-表面点的栅格是Gréville点的栅格;
–对控制点的栅格进行更新是通过在表面点的被选择的子集的位置如所修改的约束下,对惩罚NURBS表面的几何变形的程序进行优化来执行的;
-程序通过针对每个相应的控制点,对更新前的相应的控制点与更新后的相应的控制点之间的距离进行惩罚,从而惩罚NURBS表面的几何变形;
-针对每个相应的控制点,程序利用权重来对更新前的相应的控制点与更新后的相应的控制点之间的距离进行惩罚,所述权重是与相应的控制点相对应的表面点与表面点的被选择的子集之间的距离的增函数;
-方法还包括通过图形化用户交互来对该增函数进行参数化;
-该增函数是如下的指示函数,对于与表面点的被选择的子集中的表面点相对应的每个相应的控制点,其等于1;对于与属于被选择的非转角表面点为中心的表面点的栅格中的最大方形的表面点或者属于包含所选择的转角表面点的编码点的栅格的四分之一的表面的相对应的每一个其它相应的控制点,所述指示函数等于严格大于1的第一预定的数;并且,对于每一个其它相应的控制点,所述指示函数等于大于第一预定的数10倍的第二预定的数。
-方法包括通过图形化用户交互来设置第一预定数字;
-程序是取决于相应地在更新后和更新前的控制点的凸能量(convex energy);
-程序属于类型
Figure BDA0000886211380000031
其中,Pij和Qij分别是更新后和更新前的控制点;
-利用拉格朗日求解来求解程序;
-拉格朗日求解包括确定附加函数的参数,该附加函数将表面点的被选择的子集的位置作为输入,并且输出更新后的控制点,以及将附加函数应用到如所修改的表面点的被选择的子集的位置上;和/或
-利用相同的表面点的被选择的子集,修改表面点的被选择的子集的位置和更新控制点的栅格的步骤是迭代进行的,在初始迭代时,计算并且存储附加函数的参数,并且在全部随后的迭代中取回附加函数的参数;
还提供了一种计算机程序,包括用于执行方法的指令。
还提供了一种计算机可读数据存储介质,具有记录在其上的计算机程序。
还提供了一种CAD系统,包括耦合到存储器的处理器以及图形化用户界面,所述存储器具有记录在其上的计算机程序。
还提供了一种用于制造工业产品的方法,包括根据上述的设计方法设计表示工业产品的三维对象,以及随后基于所设计的三维对象来制造工业产品的步骤。
附图说明
现在将通过非限制性的示例并且参照附图,对本发明的实施例进行描述,在附图中:
-图1示出了方法示例的流程图;
-图2示出了系统的图形化用户界面的示例;
-图3示出了系统的示例;以及
-图4-图17示出了方法。
具体实施方式
参照图1的流程图,提出了用于设计3D建模对象的计算机实现的方法。该方法包括步骤S10,向计算机系统提供NURBS表面(例如,Bézier表面)。该NURBS表面表示3D建模对象(例如,几何地表示工业产品的外部边界/包封的至少一部分(诸如,机械零件)的3D建模对象,例如,照相机),并且如本身已知地,NURBS表面由控制点的栅格进行定义。该方法还包括步骤S20,通过计算机系统确定属于NURBS表面的表面点的栅格。在S20处确定的表面点的栅格根据预定的可逆函数(例如,给定的一对参数处的NURBS表面的估计)与控制点的栅格相对应。计算机系统可以保持所述预定的可逆函数,或者保持从中可以获得所述预定的可逆函数的规则,以使得其可以在任何时间执行S20。这可以从CAD的领域中获知,其中开发者在被提供了这些时知道如何实现数学方案(可应用到当前情况的数学方案的示例在下文提供)。该方法还包括步骤S30,通过计算机系统显示(例如,在例如屏幕上显示给用户)NURBS表面,以及在该NURBS表面上显示表面点的栅格。方法随后包括步骤S40,通过图形化用户交互来选择表面点的子集(例如,任何子集)。在框S50中,方法随后执行步骤S52,通过图形化用户交互来修改表面点的被选择的子集的位置。方法相应地执行步骤S54,通过计算机系统(例如,自动地)实时地对表面进行更新。更新是根据S52处执行的修改(实时地、以及例如对所述修改自动地和/或立即地进行反应)以及根据预定的可逆函数来执行的。如在图1上所示,更新S54可以被反映在NURBS表面的定义上,并且因此在循环中重复进行S10、S20、S30。这时,S40和/或S50当然可以被再次迭代。这样的循环对于熟练的计算机科学家而言是显而易见的。
这样的方法改进了3D建模对象的设计。特别是,该方法允许通过图形化用户交互来进行对NURBS表面的修改,NURBS表面是在CAD和工业设计领域中广泛使用的表面类型。图形化用户交互是容易的,因为其由选择点(在S40处)和随后修改这些点的位置(在S52处)组成。因为在S40处被选择并且在S52处被修改的点是表面点,所以该方法允许非常直观的图形化用户交互,这时,用户可以直接地与表面交互并且利用局部操纵(与其中用户必须操纵NURBS的控制点的解决方案相反,所述控制点不位于表面上-与该方法的被操纵的点不同)来修改几何结构。该方法由此呈现出“所见即所得”的行为。此外,由于修改是经由预定的可逆函数(例如,该可逆函数考虑输入修改的局部性和幅度)在与NURBS表面的初始控制点相关的点上执行的,因此该方法能够依赖这样的预定的可逆函数来反映表面上的修改(在S54处),从而保持表面的初始拓扑和用户意图(特别是在表面是由用户之前设计的情况下)。实际上,该方法既不删除控制点,也不添加控制点。该方法仅修改控制点,并且可以不触及定义表面的任何其他数据。从用户视点,表面没有被替换而是仅被修改。这保持了给定的NURBS表面的细节密度和固有的数学定义。用户由此更好地理解修改和所产生的表面。
此外,在示例中,系统可以例如在任何配置下提供在S40处对任何数量的点的选择,以使得方法允许快速并且灵活的修改操作。特别地,可以对例如不在栅格的相同行/列上的、例如不必在表面点的栅格上拓扑地邻近(即,在栅格上不必相邻)的多个表面点进行选择和修改。修改可以在被选择的表面点上以任何方式执行,例如,不必以均匀的方式执行。在示例中,该方法,特别是S54,按线性时间执行,因此其是高度响应的并且由此是用户友好的。在示例中,方法限制了由修改所引起的震荡的引入,从而提供更直观的结果。
方法是计算机实现的。方法的步骤实际上可以通过计算机系统单独地或者通过图形化用户交互(即,与计算机系统的GUI交互的用户)在计算机系统上执行。由此,具体通过计算机系统执行的步骤可以完全自动地执行。在示例中,对方法的至少一些步骤的触发可以通过用户-计算机交互来执行。特别地,提供S10可以由用户执行或触发。所需的用户-计算机交互水平可以取决于所预见的自动化的水平,并且与实现用户的愿望的需求相平衡。在示例中,该水平可以是用户定义的和/或预定义的。
方法的计算机实现的典型示例是利用适于此目的的系统来执行该方法。该系统可以包括耦合到存储器的处理器和图形化用户界面(GUI),存储器具有记录在其上的包括用于执行方法的指令的计算机程序。存储器还可以存储数据库。存储器是适于这样的存储的任何硬件,可能包括多个物理不同的部分(例如,一个用于程序,并且可能一个用于数据库)。
方法一般对建模对象进行操纵。建模对象是由存储在数据库中的数据定义的任何对象。扩展而言,表达“建模对象”指定数据本身。“设计3D建模对象”指定至少作为制作3D建模对象的过程的一部分的任何动作或一系列动作。由此,方法可以包括从草图(scratch)创建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对象轴心的任何一个,或者围绕其上显示该表示的屏幕中的任何轴心来处理或转动该3D对象。这特别排除了不是3D建模的2D图标。3D表示的显示使设计便利(即,提高了设计者统计地完成其任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造或建模过程的一部分。
3D建模对象可以表示产品的几何结构,其在利用例如CAD软件解决方案或CAD系统等来完成虚拟设计之后,要在现实世界中进行制造,该产品例如是(例如,机械的)零件或零件的组件,或者更一般地,任何刚体组件(例如,移动机构)。CAD软件解决方案允许各种以及无限制的工业领域中的产品设计,所述领域包括:航天、建筑、建造、消费用品、高科技设备、工业装备、运输、航海、和/或离岸或运输。由该方法设计的3D建模对象由此表示工业产品,该工业产品可以是地面车辆(例如,包括汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)的零件、飞行器(例如,包括机身装备、航天装备、推进装备、防御产品、航空装备、空间装备)的零件、船只(例如,包括海军装备、商用轮船、离岸装备、游艇和作业船、航海装备)的零件、机械零件(例如,包括工业制造机器、重型移动机器或装备、安装装备、工业装备产品、制造的金属产品、轮胎制造产品)、机电或电子零件(例如,包括消费电子、安全和/或控制和/或仪器产品、计算和通信装备、半导体、医用设备和装备)、消费用品(包括例如家具、家庭和园林产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品的包装)。方法特别用于3D建模对象的美学方面具有高度重要性的情况。当3D建模对象表示诸如可见零件等的车辆或飞机机械零件、或消费商品(例如,诸如照相机等的电子商品)时,这是真实的。
就PLM系统而言,其表示适于对表示物理制造产品的建模对象进行管理的任何系统。在PLM系统中,建模对象由此由适用于物理对象的制造的数据所定义。这些数据通常可以是尺寸值和/或容限值。对于对象的正确制造,实际上最好具有这样的值。
CAM代表计算机辅助制造。就CAM解决方案而言,其表示适于管理产品的制造数据的任何解决方案,硬件或软件。制造数据一般包括与要制造的产品、制造过程和所需资源有关的数据。CAM解决方案用于对产品的整个制造过程进行计划和优化。例如,其可以为CAM用户提供可行性、制造过程的持续时间或资源数量方面的信息,所述资源例如可以是可以在制造过程的特定步骤上使用的特定机器人;并且由此允许管理或所需投资方面的决策。CAM是CAD过程和潜在的CAE过程之后的后续过程。这样的CAM解决方案由商标
Figure BDA0000886211380000081
下的Dassault Systèmes提供。
CAE代表计算机辅助工程。就CAE解决方案而言,其表示适合用于建模对象的物理行为的分析的任何解决方案,硬件或软件。公知的并且广泛使用的CAE技术是有限元方法(FEM),其通常涉及将建模对象划分成其物理行为可以通过方程来计算和仿真的元素。这样的CAE解决方案由商标
Figure BDA0000886211380000082
下的Dassault Systèmes提供。另一种正在发展的CAE技术涉及对由来自不具有CAD几何数据的不同物理领域的多个部件组成的复杂系统的建模和分析。CAE解决方案允许对产品的仿真,并且由此允许对产品的优化、改进和验证以进行制造。这样的CAE解决方案由商标
Figure BDA0000886211380000083
下的Dassault Systèmes提供。
PDM代表产品数据管理。就PDM解决方案而言,其表示适合用于管理与特定产品有关的所有类型数据的任何解决方案,硬件或软件。PDM解决方案可以由产品寿命周期中涉及到的所有参与者使用:主要是工程师但是也有项目管理者、财务人员、销售人员和购买者。PDM解决方案一般基于面向产品的数据库。它允许用户共享他们的产品的一致数据并且由此阻止参与者使用不同的数据。这样的PDM解决方案由商标
Figure BDA0000886211380000091
下的DassaultSystèmes提供。
图2示出了系统的GUI的示例,其中,该系统是CAD系统。
GUI 2100可以是典型的类CAD界面,其具有标准菜单栏2110、2120、以及底部和侧边工具栏2140、2150。这样的菜单栏和工具栏包含用户可选择的图标的集合,每个图标与一个或多个操作或功能相关联,如本领域已知的。这些图标中的一些与适合用于在GUI 2100中显示的3D建模对象2000上进行编辑和/或工作的软件工具相关联,显示的3D建模对象2000例如是执行方法的结果。软件工具可以被分组为工作台。每个工作台包括软件工具的子集。特别地,工作台中的一个是编辑工作台,其适合于编辑建模产品2000的几何特征。在操作中,设计者例如可以预先选择对象2000的一部分,并且然后通过选择适当的图标来启动操作(例如,改变尺寸、颜色等)或编辑几何约束。例如,典型的CAD操作是对显示在屏幕上的3D建模对象的冲切或折叠进行建模。
GUI例如可以显示与所显示的产品2000有关的数据2500。在图2的示例中,数据2500被显示为“特征树”,并且其3D表示2000属于包括制动钳和盘的制动组件。GUI可以进一步示出例如用于有助于对象的3D定位的、用于触发所编辑的产品的操作的仿真等的各种类型的图形工具2130、2070、2080,或者GUI可以呈现所显示的产品2000的各种属性。光标2060可以由触觉设备控制,以允许用户与图形工具进行交互。
图3示出了系统的示例,其中,该系统是客户端计算机系统,例如,用户的工作站。
示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、同样连接到该总线的随机存取存储器(RAM)1070。客户端计算机进一步被提供有图形处理单元(GPU)1110,所述图形处理单元1110与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中还被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如,硬盘驱动器1030)的访问。适合于有形地实现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,举例而言,包括诸如EPROM、EEPROM、以及闪速存储器设备等的半导体存储器设备;诸如内部硬盘和可移动盘等的磁盘;磁光盘;以及CD-ROM盘1040。前述中的任何设备都可以由专门设计的ASIC(专用集成电路)来进行补充或合并到所述ASIC中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘或其类似物。光标控制设备用于客户端计算机中,以允许用户选择性地将光标定位在显示器1080上任何希望的位置处。此外,光标控制设备允许用户选择各种命令,以及输入控制信号。光标控制设备包括用于向系统输入控制信号的多个信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按键用于生成信号。可替换地或除此之外,客户端计算机系统可以包括感应/触摸板、和/或感应/触摸屏。
计算机程序可以包括可由计算机执行的指令,所述指令包括用于使上述系统执行方法的模块。程序可以是在包括系统的存储器的任何数据存储介质上可记录的。程序可以例如在数字电子电路中、或在计算机硬件、固件、软件或其组合中实现。程序可以被实现为装置,例如有形地实现在用于由可编程处理器执行的机器可读存储设备中的产品。方法步骤可以由可编程处理器执行,所述可编程处理器通过对输入数据进行操作并且生成输出来执行指令的程序,以实施方法的功能。处理器可以由此是可编程的,并且被耦合以从数据存储系统、至少一个输入设备、以及至少一个输出设备接收数据和指令,以及发送数据和指令到所述数据存储系统、至少一个输入设备以及至少一个输出设备。应用程序可以以高级过程或面向对象的编程语言来实现,或者在需要时以汇编或机器语言来实现。在任何情况下,语言可以是编译的或解释的语言。程序可以是完全安装程序或更新程序。在任何情况下,该程序在系统上的应用产生用于执行方法的指令。
现在讨论其中表面点的栅格是所谓的“Gréville”(或“Greville”)点的栅格的方法示例。该Gréville点是由对Gréville横坐标处的NURBS表面的估计所给出的3D点。此外,Gréville横坐标是NURBS表面的控制点的参数。在NURBS表面已经由专业设计者在S10之前设计的通常场景中,Gréville点形成均匀的多面体,栅格上的连续的Gréville点之间的线段具有相同量级的长度(例如,对于例如至少80%的线段来说,相对于平均长度加上或减去20%)。Gréville点由此传达在S10处提供的表面的初始设计者的用户意图,以使得特别是对这些点的操作使得方法特别地用户友好。Gréville点的栅格反映控制点的栅格以及初始设计者想要添加到模型上的细节的局部密度。实际中,在设计者想要添加细节的情况下,与设计者不想要添加这样的细节的情况相比,Gréville点具有更高的局部密度。该方法可以由此证明在全局过程中特别有用,在所述全局过程中,在S10处提供的表面在由人类设计者设计的S10之前,具有在多个规模上呈现局部形状的局部区。Gréville点的密度可以被视为由区的表面积划分的区中的Gréville点的数量,并且在该情况下Gréville点的密度将比呈现高层细节的局部区域的情况下(统计上)更高。由于Gréville点的栅格是在NURBS表面的各向同性横坐标(iso-abscissae)上定义的,因此,边界效应受到限制。
方法允许对表示3D建模对象(例如,其边界)的NURBS表面的修改。如本身已知的,NURBS表面由所谓的“控制点”的(2D)栅格定义,具有“栅格”的通常的拓扑定义,例如,具有多个(至少两个)行和多个(至少两个)列。在整个方法中,计算机系统确定S20属于NRUBS表面并且根据预定的可逆函数与控制点的栅格相对应的表面点的栅格。表面点是几何上位于表面上/属于表面的点。在NURBS的情况中,表面的直接的栅格是示例的Gréville点的栅格。允许NURBS的表面Gréville点与控制点(通常在表面本身的外部)之间的一对一的相对应关系的预定可逆函数是从描述NURBS几何结构的广泛公知数学中预先确定并提供的。然而,出于完整性的原因,在下文中详述这些数学。注意到,确定步骤S20可以以任何方式被执行,例如,被执行为在每次表面及其控制点被修改时,实时地重新计算Gréville点的后台进程。
NURBS表面是这样的表面,其在CAD中广泛使用,利用3D空间中的值被定义在2D空间中:S(u,v)→(x,y,z)。NURBS表面利用两个节点向量和控制点的2维阵列来进行表示,并且可能利用其他数据,这取决于所使用的CAD软件。通常,节点向量是浮点值的1D阵列。控制点的阵列可以被索引。每个控制点是具有坐标x、y、z的3D点。利用两个索引i和j来定义阵列中的位置;0≤i<M并且0≤j<N。可以根据节点向量来计算被称为Gréville参数的一组参数,以使得索引i和j的每个值可以与Gréville参数(ui,vj)相关联。传统地,Gréville参数是节点向量的固定数量的连续值的一对平均值。该固定数量称为“度”,其对于节点向量的每个维度(u或v)可以是不同的。一般地,一对度属于表示NURBS表面的数据。对于更多的细节,Gerald Farin的文章“Curves and surfaces for Computer Aided Geometric Design”,ed.Morgan Kaufmann,(2001)提供了NURBS表面的基础。
传统地,NURBS表面由以下输入定义。
1.(n+1)(m+1)个控制点
Figure BDA0000886211380000121
的栅格,i∈{0,…,n}并且j∈{0,…,m}。
2.出于下文中解释的一些原因,称为“度”的两个正整数p、q。
3.称为“u节点向量”的实数的第一有序列表
u0≤…≤ui≤ui+1≤…≤up+n+1,以使得前面p+1个值ui是相等的,并且使得后面的p+1个值ui是相等的。
4.称为“v节点向量”的实数的第二有序列表
v0≤…≤vj≤vj+1≤…≤vq+m+1,以使得前面q+1个值vj是相等的,并且使得后面的q+1个值vj是相等的。
5.(n+1)(m+1)个权重值ωij>0的栅格,i∈{0,…,n}并且j∈{0,…,m}。
这些输入定义了两个B-样条基,分别记为
Figure BDA0000886211380000122
Figure BDA0000886211380000123
Figure BDA0000886211380000124
基B-样条函数是具有相应的度p和q的分段多项式。其详细的定义对被本发明来说是没有用的。NURBS表面
Figure BDA0000886211380000125
由以下有理参数化定义:
Figure BDA0000886211380000126
类似地,NURBS曲线
Figure BDA0000886211380000127
由以下公式中涉及的度p、n+1个控制点Pi和权重ωi的列表定义:
Figure BDA0000886211380000131
事实上,从数学视点来看,NURBS表面是两个NURBS曲线的张量积。为清楚起见,(在下面的附图上)主要利用NURBS曲线而不是NURBS表面来示出方法。
现在讨论Gréville点。
Gréville横坐标是记为
Figure BDA0000886211380000132
的(u,v)参数的特殊值,k∈{0,…,n}并且l∈{0,…,m},其由以下公式唯一地定义:
Figure BDA0000886211380000133
换言之,Gréville横坐标是节点向量的p(或q)个连续值的平均值。表面上的最受控制点Pkl影响的点是所谓的Gréville点
Figure BDA0000886211380000134
某种程度上,Gréville点揭示了控制点对表面的影响。注意到
Figure BDA0000886211380000135
这个Gréville点,并且根据NURBS表面的定义,Gréville点和控制点之间的关系由以下线性公式(并且,这是“预定的可逆函数”的可能公式)定义。
Figure BDA0000886211380000136
其中,
Figure BDA0000886211380000137
通过将G记为所有Gréville点的所有坐标的行向量,获得更方便的公式:
Figure BDA0000886211380000138
以及将P记为所有控制点的所有坐标的行向量:
Figure BDA0000886211380000139
随后,之前的公式定义了线性变换
Figure BDA00008862113800001310
以使得:
G=AP
以及
P=A-1G
线性变换A是(3(n+1)(m+1))×(3(n+1)(m+1))的正方形矩阵,并且,根据现有技术,其是可逆的(如果每个Gréville点被选择一次—如果矩阵中没有给定的行出现两次)。
图4示出了NURBS曲线连同其n+1=6个控制点Pi以及Gréville点Gi
现在,方法允许经由用户交互的来修改表面。为此,计算机系统显示S30 NURBS表面,并且在该NURBS表面上显示表面点的栅格。这里显示S30可以再次被执行为后台进程,例如在整个方法中(例如,在(例如)用于执行修改的方法的全部迭代中)。显示S30可以以在CAD中显示表面的任何传统方式执行,例如,通过对表面的边界进行高亮以及对表面进行阴影化。在计算机系统的显示设备(例如,屏幕)上,点的栅格通常被显示为-例如,高亮(例如加粗)的-点或块,并且其被显示为位于表面的图形化表示上。可以使用任何其他的图形化表示,只要用户被提供具有表面和表面上的表面点(示例中的Gréville点)的栅格的视觉表示即可。
用户可以随后在S40处通过图形化用户交互来选择表面点的子集。图形化用户交互可以以任何方式执行。通常,用户启动选择功能并且随后与显示的Gréville点的表示进行交互,例如,利用光标、触摸笔、或他/她的手指。可替换地,用户可以直接与显示的Gréville点的图形化表示进行交互(不需启动功能)。如上文提到的,计算机系统可以基本上同时地为S40处的选择提供表面点的任何子集,包括不在栅格上的相同行或列上的多个表面点。事实上,用户可能想要将多个点从参照几何结构移动相同距离,并且方法可以由此在一个单次操作中提供这个动作的实现。用户可以例如逐个地选取表面点。
用户可以随后在S52处通过图形化用户交互来修改表面点的被选择的子集的位置。这可以以任何方式执行,例如,通过拖拽-释放操作。拖拽-释放操作可以连续地跟随选择S40。例如,用户可以点击、触碰或双击或双触被显示的表面点。随后,用户可以执行全部选择的点击/触碰的拖拽-释放。系统将这样的操作解释为对表面点的位置的修改,解释可以以任何传统方式执行。
相应于与计算机系统进行的该全部的图形化用户交互,方法实时地(例如,通过计算机系统自动地)更新S54表面。更新S54根据预定的可逆函数来执行,即保持Gréville点的位置与NURBS的定义(即控制点的位置)之间的数学链接。可以不触及定义NURBS的所有其他的上文提到的数据,由此保存用户意图(如上文讨论的)。更新S54的实现遵从上文提供的数学解释。更新S54因此修改了表面(通过修改控制点的位置)并且由此修改了显示S30,同时保持了NURBS表面的初始结构(因为节点向量根本没有被修改)并且由此保持了用户意图。操作可以如用户想要的迭代多次,注意到,如何处理迭代,以及如何使修改生效和/或取消修改的问题是实现细节。
传统模型的缺陷是控制点不位于表面上。这些控制点定义了远离表面的栅格,这使得对表面进行编辑是间接的过程:移动控制点,检查表面的变化,如果需要,则再次移动控制点,等等。基于物理的方法涉及施力并且经受相同的缺陷,这是因为用户需要调整力的大小和位置,这事实上是间接的操纵。应该注意到,通过施加力来使表面变形有时被称为“直接操纵”,但这是不合适的,因为用户没有真正处理表面上的点。此外,基于物理的方法涉及非线性微分方程的求解以及超定的冲突约束,这可能是消耗计算时间的。控制点在CAD工业中广泛使用,但是通过直接编辑过程,通过移动位于表面上的点来改变表面的形状的能力是有利的。
示例的方法允许通过使用Gréville点进行的NURBS表面的直接变形,Gréville点本质上位于表面上。此外,通过平滑过程并且通过涉及相邻的几何结构,下文讨论的另一示例中的方法避免了Gréville点的编辑中的不想要的影响。与现有技术相反,方法允许通过选取表面上的点来进行直接的变形,而不是通过选取某些外部的几何结构。这样的直接变形进行得平滑并且流畅,使得非常流行的控制点的直观行为得以保留。数学求解是基于线性方程的,这使得几何更新非常快速并且可靠,如在下文提供的示例中。这提高了造型设计生产力。
直接的解决方案是让用户将Gréville点的位置G改变成G′,并且通过使用P′=A- 1G′来计算新的控制点P′。由发明人执行的实验表明,这种解决方案在表面上产生不希望的震荡,如图5上示出的。左边部分是由六个控制点(未示出)定义的水平NURBS曲线。圆点是曲线的Gréville点。Gréville点G4被移动到G′4。右边部分示出了展示出不期望的震荡的所得到的NURBS曲线。虚线的折线是NURBS曲线的控制多边形。这种副作用就是传统上不使用Gréville点来操纵NURBS表面的原因。该问题来自于以下误解。在现实生活中,用户不同时改变所有的Gréville点,但公式P′=A-1G′对请求进行了转换:考虑用户选择的Gréville点并且保持所有其他的Gréville点不变。将未选择的Gréville点保持不变使得解决方案难以处理。
方法可以通过执行所谓的“松弛”来缓解这个问题。其思想是释放未被用户选择的Gréville点。由于这样的自由度,未被选择的控制点被移位,得到了用户期望的平滑行为。具体地,控制点的栅格的更新S54可以在表面点的被选择的子集的位置如所修改(即,如用户在S52所请求的)的(例如,唯一的)约束下,通过对惩罚NURBS表面的变形的程序进行优化来执行。换言之,更新S54确保了仅由用户选择和移动的Gréville点最终与用户对其进行的移动一样,同时使NURBS几何结构的整体变形最小化-通过在必要时移动未选择的Gréville点-(一般而言,利用足够的惩罚项来对用于该目的的程序进行优化,如从应用数学领域可以得知的)。由此,在执行S54时,未选择的Gréville点被自由化、或“松弛”。
被保留用于惩罚NURBS表面的变形的标准是满足这样的功能的任何预定的数学标准。在示例中,程序针对每个相应的控制点,对更新前相应的控制点与更新后相应的控制点之间的距离进行惩罚。可以使用任何距离,例如,Euclidian距离(或者产生确保解的唯一性的凸状能量的任何这样的距离)。换言之,程序在更新S54之后尽可能多地将控制点向其初始位置“按压”(当然,同时遵从由用户施加的约束)。这允许快速的计算。
令Qij为初始表面的控制点,该初始表面是用户开始进行变形之前的表面。令
Figure BDA0000886211380000161
为由用户选择的Gréville点,其中
Figure BDA0000886211380000162
注意到,不是所有的Gréville点都必须同时被选择(虽然这也是可能的,在P=A-1G的情况下),这表示V≠{0,…,n}×{0,…,m}。示例中的平滑原则是计算尽可能接近于初始控制点Qij的新控制点Pij
从数学的视点来看,在示例中可以将初始控制点与新控制点之间的距离的平方和进行最小化如下:
Figure BDA0000886211380000171
在新控制点Pij与改变的Gréville点兼容的(线性)约束下,其为:
Figure BDA0000886211380000172
首先注意到,该和可以被视为下文提到的加权和,其中,所有加权值都等于1。
还应注意到,先前的线性方程组展示出3(n+1)(m+1)个标量未知量(控制点Pij的坐标)以及3|V|个标量方程,其中|V|指示集合V的元素数量。由于没有选择所有的Gréville点,所以|V|<(n+1)(m+1)。因此,先前的线性系统展示出比方程多的未知量。其可以被写为
Figure BDA0000886211380000173
其中,
Figure BDA0000886211380000174
是线性变换
Figure BDA0000886211380000175
该数学问题现在成为线性约束下的二次目标函数的最小化。又,令Q为所有初始控制点的所有坐标的行向量:
Figure BDA0000886211380000176
标准数学公式如下,其中,P是未知量,Q和
Figure BDA0000886211380000177
是输入向量,并且
Figure BDA0000886211380000178
是输入矩阵。
Figure BDA0000886211380000179
图6示出了由以下顺序产生的NURBS曲线:(1)用户选择Gréville点G4和G5,(2)用户将点G4移动到G′4。从系统视点,将被选择的Gréville点G5设为固定的而移动未选择的Gréville点G1、G2和G3,以便于确保拟合G′4和G5的无震荡的曲线。虚线的折线是NURBS曲线的控制多边形。
可以利用拉格朗日求解来有效地求解程序。这允许线性时间的求解。实际中,如本身已知的,拉格朗日求解可以包括确定附加函数的参数,所述附加函数将S40处选择的表面点的子集的位置作为输入,并且所述附加函数输出更新后的控制点。方法可以随后将该附加函数应用到如所修改的表面点的被选择的子集的位置,由此以线性时间输出结果。
拉格朗日求解特别允许子步骤中的求解的分解,某些子步骤的结果可以被重新使用以获得效率,由此提高响应性。实际中,修改S52表面点的被选择的子集的位置的和更新S54控制点的栅格的步骤可以利用相同的表面点的被选择的子集来进行迭代。换言之,用户在S40处选择一组Gréville点,并且随后在迭代的逐步的操作(例如,以试错的方式)中对其进行移动。在这样的情况下,附加函数的参数可以在初始迭代中被计算和存储,并且随后在整个后续的迭代中被取回。在下文中详述对这种由拉格朗日求解允许的,优化图形化响应的已经计算的矩阵的智能重用。
符号解析是拉格朗日乘子的典型应用。重复计算以获得一致性。仅出于求解的目的,引入未知的拉格朗日乘子向量
Figure BDA0000886211380000181
以使得该问题的拉格朗日函数为
Figure BDA0000886211380000182
问题的方程为:
Figure BDA0000886211380000183
Figure BDA0000886211380000184
注意·T矩阵的转置,L的偏导数为:
Figure BDA0000886211380000185
Figure BDA0000886211380000186
因此,展示出未知量P和λ的线性方程组为:
Figure BDA0000886211380000187
Figure BDA0000886211380000188
等价的矩阵-向量公式:
Figure BDA0000886211380000189
注意到,该表达式的最左侧的矩阵是可逆的,这是因为每个Gréville点的唯一性。
方程组被如下求解。将第一方程乘以
Figure BDA00008862113800001810
得到
Figure BDA0000886211380000191
Figure BDA0000886211380000192
随后,通过使用第二方程
Figure BDA0000886211380000193
由于使矩阵A可逆的相同的原因,根据现有技术,矩阵
Figure BDA0000886211380000194
是可逆的。因此,λ被计算为:
Figure BDA0000886211380000195
最后,由于
Figure BDA0000886211380000196
Figure BDA0000886211380000197
通过将输入数据Q和
Figure BDA0000886211380000198
的角色分离,这可以被布置为:
Figure BDA0000886211380000199
这样,当显示对交互性应用程序的实时反馈时,第一项保持恒定并且仅有第二项需要被更新。一旦NURBS表面和Gréville点被选择,第一步计算矩阵
Figure BDA00008862113800001910
以及向量
Figure BDA00008862113800001911
矩阵M和向量V在Gréville点操纵期间保持不变。随后,当用户移动被选择的Gréville点
Figure BDA00008862113800001912
时,算法通过计算
Figure BDA00008862113800001913
来更新控制点P。图7示出了该示例的数据流。注意到正方矩阵
Figure BDA00008862113800001914
的大小与用户选择的Gréville点的数量成比例,该数量一般很小。
在另一个示例中,程序针对每个相应的控制点,利用一般可以与1不同的(例如,正的)权重(例如,不像上文讨论的示例中的)来对更新前的相应的控制点与更新后的相应控制点之间的距离进行惩罚。该权重可以由与相应的控制点相对应的表面点与表面点的被选择的子集之间的距离的增函数的值来提供。换言之,所述距离越高(例如,严格地),权重(例如,严格地)越低。如上文,未选择的表面点可以自由移动(相对于用户的请求,对于未选择的Gréville点,用户请求是其初始位置),但是现在具有随Gréville点远离在S40处执行的选择而“减小”的自由度。点和点的集合之间的距离在数学中被定义并且是清楚的。这里,保留的距离例如可以是基于表面点的栅格的Manhattan距离。这样的解产生更直观的结果。方法可以更进一步包括通过图像化用户交互来对所述增函数进行参数化。由此,用户可以与更新S54后的数学图形化地交互。这可以经由系统的GUI提供的特定窗口部件来执行,窗口部件例如是滑块。这都允许“用户控制的微调”。
为了向用户提供这样的控制,在示例中,方法可以使用所谓的“影响区域”、所谓的“影响率”以及所谓的“调节参数”的定义。在方法的该示例中,增函数是如下的指示函数,对于与被选择的Gréville点相对应的每个相应的控制点,其等于1;对于与影响区域内部的Gréville点相对应的其他控制点,其等于高于1的第一预定数字(实际上为实数),(所述第一预定数字为1/α,在下文示例中详述);并且对于(所有)其他控制点(与影响区域外部的Gréville点相对应的),其等于第二预定数字(事实上为实数),该第二数字至少高于第一预定数字的十倍,但优选地实际上是无限的(即,具有防止在优化程序中对由这样的第二数字加权的控制点进行任何移动的功能的值)。例如,该影响区域可以具体包括(被选择的Gréville点和)到表面点的被选择的子集的Manhattan距离(相对于(例如基于)表面点的栅格)在预定的阈值下的所有未被选择的Gréville点。然而,下文将详述更加改善和用户友好的另一个示例。通过图形化的用户交互进行的参数化可以在第一预定数字上执行(通过上述的滑块)。计算机系统可以以预定的方式(例如,第一预定数字(例如)与定义影响区域的所述阈值参数有关)来处理所有其他参数(即预定的阈值和第二数字)以使用户负担相对低。
必须注意到,微调可以通过其他方法(通常,通过使用高斯函数的卷积)来实现。权重可以被定义为高斯函数的笛卡尔积(这是图像处理中广泛使用的技术)。在这样的情况下,将有两个参数(高斯的标准差和幅度),而不是上文提到的唯一的阈值参数。权重将与对应于相应控制点的Gréville横坐标处的2D高斯的值有关。但是上文提到的并且在下文详述的技术给出了从用户视点来看的好的结果。
在下文中,N是很大数字的常数,通常N=1012并且
Figure BDA0000886211380000201
从用户视点,ε起到零的作用。对于增强的解决方案,在示例中,除了Gréville点的选择,方法还提供用户定义的影响率,以调整变形的程度。可以仅针对影响率提供滑块,影响率可以双射地定义上述的阈值。可以以预定的方式来计算影响区域。示例的方法可以由此根据图8的流程图来执行。
影响区域
如上文所述,在改善的示例中,影响范围可以由属于以被选择的非转角表面点为中心的表面点的栅格中的最大的方形、或者属于包括被选择的转角表面点的表面点的栅格的四分之一部分的表面点的所有表面点组成,这在下文中详述。
令T={(i,j)∈{0,…,n}×{0,…,m}}为Gréville点索引的栅格,并且令(i0,j0)∈{0,…,n}×{0,…,m}为任意索引。大体而言,(i0,j0)的影响区/区域,记为Z(i0,j0),可以是被任意地定义为以可以被包括在T中的(i0,j0)为中心的最大方形。
更精确地,令
Figure BDA0000886211380000213
如果x≠0,其由δ(0)=1和δ(x)=0定义。令
kmin(i,j)=min{min{i0,n-i0},min{j0,m-j0}}
以及
kmax(i,j)=max{min{i0,n-i0},min{j0,m-j0}}
现在,令
k1(i,j)=kmin(i,j)+δ(kmin(i,j))kmax(i,j)
如果k1(i0,j0)>0,则表示(i0,j0)不是T的角索引(corner index),影响区域为:
Z(i0,j0)={(i0+i,j0+j);i,j∈{-k1(i0,j0),…,k1(i0,j0)}∩T}
如果k1(i0,j0)=0,则表示(i0,j0)是T的角索引,影响区域是包括(i0,j0)的栅格的四分之一部分:
Figure BDA0000886211380000211
按照定义,索引(k,l)∈V的子集的影响区域是所有影响区域的并集:
Figure BDA0000886211380000212
图9示出了栅格(左侧栅格)内部的被选择的Gréville点的影响区域(的索引)以及在栅格(中间和右侧栅格)的边界上的被选择的Gréville点的影响区域(的索引)。被选择的Gréville点被标记为“o”,影响区域包括“x”和“o”点。图10示出了两个被选择的Gréville点(左侧栅格)的影响区域(的索引)以及被选择的Gréville点(右侧栅格)的行的影响区域(的索引)。最后,用户选择的Gréville点(Gkl)(k,l)∈V的给定索引V、栅格T的索引被布置到三个类别中。影响区域的外部T-Z(V)、用户选择的索引V以及非用户选择的影响索引Z(V)-V。
影响率
影响率是用户定义的数字α∈[ε,1]。其唯一地定义第一预定数字,第一预定数字因此是经由用户设置可参数化的。影响率还可以被用于间接地定义影响区域。利用α=ε获得最小的变形率。利用α=1获得最大的变形率。从用户界面的视点,显示的是零值而不是ε。这样,用户操纵[0,1]区间中的参数,这更加简单。
调节参数
引入多维调节参数μ。在示例中,其是对用户隐藏的内部建模参数。
Figure BDA0000886211380000221
调节参数的作用是调整如何将未知控制点Pij保持接近初始控制点Qij。上文定义的最小化程序被改写如下:
Figure BDA0000886211380000222
通过使用预定的影响区域Z(V)以及用户定义的影响率α来定义调节参数μ的数值。
·如果(i,j)在影响区域外,即(i,j)∈T-Z(V),则μij=N
·如果(i,j)是用户选择的Gréville点的索引,即(i,j)∈V,则μij=1。
·如果(i,j)在影响区域内部,但不是用户选择的Gréville点的索引,即(i,j)∈Z(V)-V,则
Figure BDA0000886211380000223
因此,最小化条件可以写为:
Figure BDA0000886211380000224
显然地,如果用户设置α=ε,则对所有的(i,j)∈T-V,μij=N,并且最小化标准等价于:
Figure BDA0000886211380000231
由此,与影响区域外部的Gréville点相关联的所有初始控制点Qij具有很强的影响。因此,表面变形被缩小到用户选择的Gréville点的附近。
另一方面,如果用户设置α=1,则对于所有的(i,j)∈Z(V),μij=1,并且对于所有的(i,j)∈T-Z(V),μij=N,并且最小化标准等价于:
Figure BDA0000886211380000232
图11-图13示出了影响率在示例NURBS曲线上的塑造作用。初始的NURBS曲线是水平的曲线,并且用户的动作是垂直地移动中间的Gréville点,如在左侧附图中所示的。右侧的附图是产生的NURBS曲线连同其控制多边形(虚线)。在图11中,影响率为α=1。在图12中,影响率为α=0.5。在图13中,影响率为α=ε。注意,仅是与被选择的Gréville点相关联的控制点被移位。其他控制点是初始的水平NURBS曲线的那些控制点。
图14-16示出了影响率在示例NURBS表面变形上的效果。初始NURBS表面是平坦的片,并且用户的动作是向上移动被选择的Gréville点(加粗的圆点)。为清楚起见,没有示出控制点。在图14中,影响率为α=1。在图15中,影响率为α=0.5。在图16中,影响率为α=ε。在所产生的NURBS表面的平面化的转角处,塑造效果更加明显。
如上文详述的,示例的程序属于以下类型:
Figure BDA0000886211380000233
其中,Pij和Qij分别是更新后和更新前的控制点。这样的二次目标函数易于求解,因为其可以以线性时间被求解并且由此提供高的响应性。
现在对该二次公式进行讨论。
最小化标准的更合适的公式涉及矩阵
Figure BDA0000886211380000234
其系数为调节参数μij。必须注意到,矩阵W通过调节函数μij取决于影响率α,如之前解释的。这样,公式
Figure BDA0000886211380000241
等价于
(P-Q)TW(P-Q)
根据之前的定义,明显地,W是对角矩阵。
例如,注意到
Figure BDA0000886211380000242
并且选择n=m=1,原始公式为:
Figure BDA0000886211380000243
并且展示出矩阵
Figure BDA0000886211380000244
的等价简单公式为:
Figure BDA0000886211380000245
因为矩阵W是对角矩阵,因此,W=WT。进一步地,矩阵W是可逆的,这是因为调节参数没有消失。
现在讨论该示例的拉格朗日求解,因为上文解释了针对无权重示例(即,权重μij都等于1)的拉格朗日求解。
这里,同样的,符号解析是拉格朗日乘子的传统应用。计算被重复以实现一致性。仅出于求解的目的,引入未知的拉格朗日乘子向量
Figure BDA0000886211380000247
以使得问题的拉格朗日函数为:
Figure BDA0000886211380000246
问题的方程为:
Figure BDA0000886211380000251
Figure BDA0000886211380000252
L的偏导数为:
Figure BDA0000886211380000253
Figure BDA0000886211380000254
第一行可以被写为
Figure BDA0000886211380000255
这使得
Figure BDA0000886211380000256
Figure BDA0000886211380000257
等 价于
Figure BDA0000886211380000258
因此,展示出未知量P和λ的线性方程组为:
Figure BDA0000886211380000259
Figure BDA00008862113800002510
等价的矩阵-向量公式:
Figure BDA00008862113800002511
该方程组被求解如下。将第一方程乘以
Figure BDA00008862113800002512
得到:
Figure BDA00008862113800002513
Figure BDA00008862113800002514
随后,通过使用第二方程:
Figure BDA00008862113800002515
矩阵
Figure BDA00008862113800002516
是可逆的,这是因为矩阵
Figure BDA00008862113800002517
是可逆的,因此,λ被计算为:
Figure BDA00008862113800002518
最后,由于
Figure BDA00008862113800002519
Figure BDA00008862113800002520
这可以通过分离输入数据Q和G的角色来进行布置:
Figure BDA00008862113800002521
这样,当显示实时反馈时,第一项在Gréville点被移动时保持恒定。相反,当影响率α被改变时,两项都被更新,这是因为调节参数μij取决于α,以及由此矩阵W,取决于α。
一旦NURBS表面和一些Gréville点被选择,并且针对影响率α的默认值被设置,则第一步骤计算矩阵
Figure BDA0000886211380000261
以及向量
Figure BDA0000886211380000262
矩阵M和向量V在Gréville点操纵期间保持不变。随后,当用户移动被选择的Gréville点
Figure BDA0000886211380000263
时,算法通过计算
Figure BDA0000886211380000264
来对控制点P进行更新。当用户改变影响率α时,所有的项都需要更新,这是因为矩阵M取决于α。图17示出了数据流。

Claims (13)

1.一种用于设计3D建模对象的计算机实现的方法,其中,所述方法包括如下步骤:
·向计算机系统提供(S10)NURBS表面,所述NURBS表面表示所述3D建模对象并且由控制点的栅格进行定义;
·通过所述计算机系统确定(S20)属于所述NURBS表面的表面点的栅格,所述表面点的栅格根据预定的可逆函数与所述控制点的栅格相对应;
·通过所述计算机系统显示(S30)所述NURBS表面,并且在所述NURBS表面上显示所述表面点的栅格;
·通过图形化用户交互来选择(S40)所述表面点的子集;
·通过图形化用户交互来修改(S52)所述表面点的被选择的子集的位置,并且相应地,通过所述计算机系统实时地对所述表面进行更新(S54),所述更新是根据所述预定的可逆函数来执行的,
其中,对所述控制点的栅格的更新(S54)是通过实现这样的程序来执行的:所述程序在所述表面点的被选择的子集的位置如所修改的约束下,惩罚所述NURBS表面的几何变形,
其中,所述程序通过针对每个相应的控制点对所述更新前的所述相应的控制点与所述更新后的所述相应的控制点之间的距离进行惩罚来惩罚所述NURBS表面的几何变形。
2.根据权利要求1所述的方法,其中,所述表面点的栅格是Gréville点的栅格。
3.根据权利要求1所述的方法,其中,所述程序针对每个相应的控制点,利用权重来对所述更新前的所述相应的控制点与所述更新后的所述相应的控制点之间的距离进行惩罚,所述权重是与所述相应的控制点相对应的表面点与所述表面点的被选择的子集之间的距离的增函数。
4.根据权利要求3所述的方法,其中,所述方法还包括通过图形化用户交互来对所述增函数进行参数化。
5.根据权利要求3或4所述的方法,其中,所述增函数是指示函数,对于与所述表面点的被选择的子集中的表面点相对应的每个相应的控制点,其等于1;对于与属于所述表面点的栅格中的以被选择的非转角表面点为中心的最大方形的表面点相对应的、或与属于所述表面点的栅格的包括被选择的转角表面点的四分之一部分的表面点相对应的每个其他相应的控制点,其等于严格地高于1的第一预定数字;对于每个其他相应的控制点,其等于高于所述第一预定数字的十倍的第二预定数字。
6.根据权利要求5所述的方法,其中,所述方法包括通过图形化用户交互来设置所述第一预定数字。
7.根据权利要求1所述的方法,其中,所述程序是取决于分别在所述更新后和所述更新前的控制点的凸能量。
8.根据权利要求7所述的方法,其中,所述程序属于类型:
Figure FDA0003068681530000021
其中,Pij和Qij分别是所述更新后的控制点和所述更新前的控制点,μ是多维调节参数,并且i和j表示与控制点相关联的索引。
9.根据权利要求7或8所述的方法,其中,所述程序是利用拉格朗日求解来进行求解的。
10.根据权利要求9所述的方法,其中,所述拉格朗日求解包括确定附加函数的参数,所述附加函数将所述表面点的被选择的子集的位置作为输入,并且输出更新后的控制点;并且随后将所述附加函数应用到如所修改的所述表面点的被选择的子集的位置上。
11.根据权利要求10所述的方法,其中,利用相同的表面点的被选择的子集,来对修改(S52)所述表面点的被选择的子集的位置的步骤和更新(S54)所述控制点的栅格的步骤进行迭代,所述附加函数的参数在初始迭代时被计算并且存储,并且在全部随后的迭代中被取回。
12.一种计算机可读数据存储介质,其具有存储于其上的计算机程序,所述计算机程序包括用于执行权利要求1-11中任一项所述的方法的指令。
13.一种CAD系统,包括耦合到存储器的处理器和图形化用户界面,所述存储器具有记录在其上的计算机程序,所述计算机程序包括用于执行权利要求1-11中任一项所述的方法的指令。
CN201510970277.1A 2014-12-23 2015-12-22 由控制点的栅格定义的3d建模对象 Active CN105718626B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14307166.0A EP3038060B1 (en) 2014-12-23 2014-12-23 3D modeled object defined by a grid of control points
EP14307166.0 2014-12-23

Publications (2)

Publication Number Publication Date
CN105718626A CN105718626A (zh) 2016-06-29
CN105718626B true CN105718626B (zh) 2021-09-07

Family

ID=52358569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510970277.1A Active CN105718626B (zh) 2014-12-23 2015-12-22 由控制点的栅格定义的3d建模对象

Country Status (6)

Country Link
US (1) US10255381B2 (zh)
EP (1) EP3038060B1 (zh)
JP (1) JP6734044B2 (zh)
KR (1) KR20160076983A (zh)
CN (1) CN105718626B (zh)
CA (1) CA2914390A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311399B2 (en) * 2016-02-12 2019-06-04 Computational Systems, Inc. Apparatus and method for maintaining multi-referenced stored data
CN106384384B (zh) * 2016-09-18 2020-05-05 上海理工大学 一种三维产品模型的形状优化方法
EP3545438A1 (en) * 2016-09-28 2019-10-02 Siemens Product Lifecycle Management Software Inc. Variational modeling method and system for editing of geometric objects
US10930086B2 (en) 2016-11-01 2021-02-23 Dg Holdings, Inc. Comparative virtual asset adjustment systems and methods
US10453253B2 (en) * 2016-11-01 2019-10-22 Dg Holdings, Inc. Virtual asset map and index generation systems and methods
US10915678B1 (en) * 2016-12-22 2021-02-09 Msc.Software Corporation Surface mapping apparatuses and methods
CN107292942B (zh) * 2017-05-04 2019-10-18 华南理工大学 一种权值c2连续的线性混合形状编辑方法
CN107798732B (zh) * 2017-10-27 2021-03-12 中国工程物理研究院应用电子学研究所 一种自由曲面形态控制方法
US11928391B2 (en) * 2019-04-02 2024-03-12 Autodesk, Inc. Hybrid surface modelling with subdivision surfaces and NURBS surfaces
CN110262250B (zh) * 2019-07-08 2020-04-21 济南大学 一种基于粒子群算法的b样条曲线拟合方法及系统
KR102303566B1 (ko) * 2020-08-25 2021-09-17 윤기식 가상의 그리드망을 통한 2차원 이미지의 3차원 모델링 생성 방법

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428718A (en) * 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
US5510995A (en) * 1993-08-13 1996-04-23 Iowa State University Research Foundation, Inc. Sculptured surface synthesis based on functional design constraints
EP1237125A2 (en) * 2001-02-16 2002-09-04 Dassault Systèmes Method and system for generating and handling a harmonized network of points
JP2002269586A (ja) * 2001-03-09 2002-09-20 Japan Science & Technology Corp 3次元モデル変形システム
CN1391683A (zh) * 1999-07-23 2003-01-15 鲍尔塔克奥夫公司 使用控制几何的几何设计和建模系统
CN1916967A (zh) * 2005-08-04 2007-02-21 达索系统公司 产生具有所要求的几何连续度的参数化曲面的方法
CN101887470A (zh) * 2009-05-15 2010-11-17 鸿富锦精密工业(深圳)有限公司 常规曲面转换到自由曲面的计算机系统及方法
CN102779358A (zh) * 2011-05-11 2012-11-14 达索系统公司 用于设计几何三维建模对象的方法
CN103424070A (zh) * 2012-05-23 2013-12-04 鸿富锦精密工业(深圳)有限公司 曲面坐标系建立系统及方法
CN103500236A (zh) * 2012-05-02 2014-01-08 达索系统公司 设计3d模型对象

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104855B2 (ja) 1985-03-28 1995-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 数値シミュレーション装置
US6639592B1 (en) 1996-08-02 2003-10-28 Silicon Graphics, Inc. Curve network modeling
US6037949A (en) 1997-08-04 2000-03-14 Pixar Animation Studios Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation
US6389154B1 (en) 1998-07-15 2002-05-14 Silicon Graphics, Inc. Exact evaluation of subdivision surfaces generalizing box splines at arbitrary parameter values
US6981695B1 (en) 2003-10-14 2006-01-03 Polaris Industries Inc. All terrain vehicle with multiple winches
US7196702B1 (en) 1998-07-23 2007-03-27 Freedesign, Inc. Geometric design and modeling system using control geometry
US6271856B1 (en) 1998-11-19 2001-08-07 Paraform, Inc. Creating and modifying parameterizations of surfaces
US6256038B1 (en) 1998-12-10 2001-07-03 The Board Of Trustees Of The Leland Stanford Junior University Parameterized surface fitting technique having independent control of fitting and parameterization
US6553337B1 (en) 1998-12-23 2003-04-22 Silicon Graphics, Inc. Parameterization of subdivision surfaces
US6636853B1 (en) 1999-08-30 2003-10-21 Morphism, Llc Method and apparatus for representing and navigating search results
JP2001067491A (ja) 1999-08-30 2001-03-16 Sega Corp 再分割多角形を用いる画像表示方法及び装置
US7023435B1 (en) 2000-04-12 2006-04-04 California Institute Of Technology Object surface representation and related methods and systems
US6603473B1 (en) 2000-04-12 2003-08-05 California Institute Of Technology Detail data pertaining to the shape of an object surface and related methods and systems
US6587105B1 (en) 2000-09-29 2003-07-01 Silicon Graphics, Inc. Method and computer program product for subdivision generalizing uniform B-spline surfaces of arbitrary degree
US6961731B2 (en) 2000-11-15 2005-11-01 Kooltorch, L.L.C. Apparatus and method for organizing and/or presenting data
US6738062B1 (en) 2001-01-10 2004-05-18 Nvidia Corporation Displaced subdivision surface representation
US6760022B1 (en) 2001-01-11 2004-07-06 Autodesk, Inc. Simple soft creases for subdivision surfaces
US7277094B2 (en) 2001-02-01 2007-10-02 Mental Images Gmbh Computer graphics system and computer-implemented method for generating smooth feature lines for subdivision surfaces
JP4330285B2 (ja) 2001-04-16 2009-09-16 沖電気工業株式会社 機械翻訳用辞書登録装置、機械翻訳用辞書登録方法、機械翻訳装置、機械翻訳方法及び記録媒体
US6806874B2 (en) 2001-07-24 2004-10-19 International Business Machines Corporation Method and apparatus for providing sharp features on multiresolution subdivision surfaces
US7080059B1 (en) 2002-05-13 2006-07-18 Quasm Corporation Search and presentation engine
US7227545B2 (en) 2002-05-24 2007-06-05 Autodesk, Inc. Unified subdivision scheme for polygonal modeling
US7200532B1 (en) 2002-06-14 2007-04-03 University Of Kentucky Research Foundation Subdivision surface-based geometric modeling system
US6950099B2 (en) 2002-07-01 2005-09-27 Alias Systems Corp. Approximation of Catmull-Clark subdivision surfaces by Bezier patches
JP2006523891A (ja) 2003-03-26 2006-10-19 ブリガム・ヤング・ユニバーシティ 局所洗練を用いてt−スプライン及びt−nurcc表面を定義するためのシステム及び方法
US7251777B1 (en) 2003-04-16 2007-07-31 Hypervision, Ltd. Method and system for automated structuring of textual documents
US8471852B1 (en) 2003-05-30 2013-06-25 Nvidia Corporation Method and system for tessellation of subdivision surfaces
US7369972B2 (en) 2003-11-25 2008-05-06 International Business Machines Corporation System, method, and program product for re-parameterizing three dimensional models represented as Catmull-Clark subdivision surfaces
US7936352B2 (en) 2004-07-21 2011-05-03 Dassault Systemes Solidworks Corporation Deformation of a computer-generated model
WO2006111976A2 (en) 2005-04-18 2006-10-26 Technion Research & Development Foundation Ltd. Automatic remeshing by mapping a 2d grid on 3d genus-g meshes based on topological analysis
US7595799B2 (en) 2005-08-04 2009-09-29 Dassault Systemes Process for creating from a mesh an isotopologic set of parameterized surfaces
US7443393B2 (en) 2006-01-19 2008-10-28 International Business Machines Corporation Method, system, and program product for re-meshing of a three-dimensional input model using progressive implicit approximating levels
KR100707841B1 (ko) * 2006-04-04 2007-04-17 중앙대학교 산학협력단 3차원 목표곡선을 이용한 곡면 변형 장치 및 그 방법
US7821513B2 (en) 2006-05-09 2010-10-26 Inus Technology, Inc. System and method for analyzing modeling accuracy while performing reverse engineering with 3D scan data
EP1881458B1 (en) 2006-07-21 2011-06-08 Dassault Systèmes Computer-implemented process for creating a parametric surface
EP1881457B1 (en) 2006-07-21 2017-09-13 Dassault Systèmes Method for creating a parametric surface symmetric with respect to a given symmetry operation
US20080024499A1 (en) 2006-07-27 2008-01-31 Christopher Bateman Method and apparatus of manipulating parameterized surfaces
EP1883020B1 (en) 2006-07-28 2013-05-22 Dassault Systèmes Method and system for navigating in a database of a computer system
US20090027396A1 (en) 2007-07-26 2009-01-29 Tufts University Method for fitting a parametric representation to a set of objects
US8525838B2 (en) 2008-02-08 2013-09-03 Autodesk, Inc. Associative fillet
US8269770B1 (en) 2008-02-29 2012-09-18 Adobe Systems Incorporated Tessellation of trimmed parametric surfaces by walking the surface
US8610720B2 (en) 2009-04-24 2013-12-17 Adobe Systems Incorporated Decomposing an n-sided patch into multiple patches
US8731876B2 (en) 2009-08-21 2014-05-20 Adobe Systems Incorporated Creating editable feature curves for a multi-dimensional model
US8810571B2 (en) 2011-02-14 2014-08-19 IntegrityWare, Inc. Methods and systems for generating continuous surfaces from polygonal data
US9013480B2 (en) * 2011-10-21 2015-04-21 IntegrityWare, Inc. Methods and systems for generating and editing surfaces
US20130271459A1 (en) 2012-04-13 2013-10-17 IntegrityWare, Inc. Systems and methods of editing graphical data
US9305391B2 (en) 2013-03-15 2016-04-05 3D Systems, Inc. Apparatus and methods for detailing subdivision surfaces

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428718A (en) * 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
US5510995A (en) * 1993-08-13 1996-04-23 Iowa State University Research Foundation, Inc. Sculptured surface synthesis based on functional design constraints
CN1391683A (zh) * 1999-07-23 2003-01-15 鲍尔塔克奥夫公司 使用控制几何的几何设计和建模系统
EP1237125A2 (en) * 2001-02-16 2002-09-04 Dassault Systèmes Method and system for generating and handling a harmonized network of points
JP2002269586A (ja) * 2001-03-09 2002-09-20 Japan Science & Technology Corp 3次元モデル変形システム
CN1916967A (zh) * 2005-08-04 2007-02-21 达索系统公司 产生具有所要求的几何连续度的参数化曲面的方法
CN101887470A (zh) * 2009-05-15 2010-11-17 鸿富锦精密工业(深圳)有限公司 常规曲面转换到自由曲面的计算机系统及方法
CN102779358A (zh) * 2011-05-11 2012-11-14 达索系统公司 用于设计几何三维建模对象的方法
CN103500236A (zh) * 2012-05-02 2014-01-08 达索系统公司 设计3d模型对象
CN103424070A (zh) * 2012-05-23 2013-12-04 鸿富锦精密工业(深圳)有限公司 曲面坐标系建立系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"CAD/CAM系统中NURBS曲线修改的研究";熊小安 等;《广东工业大学学报》;20020630;第19卷(第2期);14-17 *
"Constraint-based curve manipulation";B.Fowler et al;《IEEE Computer Graphics and Applications》;19930930;第13卷(第5期);43-49 *
"Measurement-based modification of NURBS surfaces";Djordje Brujic et al;《Computer-Aided Design》;20020331;第34卷(第3期);摘要,第2节,附图1-5 *
"The Direct Manipulation of Pasted Surfaces";Marryat Ma;《ResearchGate》;20100531;全文 *

Also Published As

Publication number Publication date
US20160179987A1 (en) 2016-06-23
EP3038060A1 (en) 2016-06-29
JP2016119077A (ja) 2016-06-30
KR20160076983A (ko) 2016-07-01
CN105718626A (zh) 2016-06-29
CA2914390A1 (en) 2016-06-23
JP6734044B2 (ja) 2020-08-05
EP3038060B1 (en) 2021-09-15
US10255381B2 (en) 2019-04-09

Similar Documents

Publication Publication Date Title
CN105718626B (zh) 由控制点的栅格定义的3d建模对象
JP7164295B2 (ja) 3dプリンティングのための現実の物体の向き付け
US11144679B2 (en) Engraving a 2D image on a subdivision surface
JP7473335B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP7473336B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
KR100707841B1 (ko) 3차원 목표곡선을 이용한 곡면 변형 장치 및 그 방법
JP2019106177A (ja) 3d部品の付加製造
JP7431028B2 (ja) ユーザインタラクションを介した3dモデルオブジェクトのデサイニング
JP2018109948A (ja) パラメトリックビュー関数に基づくデータベースの照会
JP2022036024A (ja) パラメータ化された3dモデルを出力するニューラルネットワーク
CN104866645B (zh) 设计由方程式约束的物理系统
CN111383327A (zh) 使用弱类型定义进行建模
JP2022036023A (ja) 3dモデルを出力する変分オートエンコーダ
CN113378448A (zh) 确定3d建模对象变形
US20220207212A1 (en) Topology optimization with reaction-diffusion equations
CN115952705A (zh) 设计建模对象
CN111383342A (zh) 使用弱类型定义进行灵活建模
Perles et al. Interactive virtual tools for manipulating NURBS surfaces in a virtual environment
US11941773B2 (en) Method for designing a three-dimensional mesh in a 3D scene
JP2023092523A (ja) タイプされたパラメータの設定
Lu et al. A New Method of Interactive Marker-Driven Free form Mesh Deformation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant