基于NURBS技术的自由造型曲面修改方法

(整期优先)网络出版时间:2009-09-19
/ 2

基于NURBS技术的自由造型曲面修改方法

李毅

李毅(浙江财经学院)

摘要:在整个CAD模型的建构过程当中,自由曲面造型所占的比例越来越重,同时,因应各种原因,要求自由曲面的造型必需能够局部的自由加以变更,使其符合各式设计需求,本文基於NURBS的数学模型来作分析,将其在曲面变更时所涉及的参数和由此总结的方法做了分析和论述,并对其在ImageWare中的应用给出了具体实例。

关键词:NURBS产品设计

中图法分类号:TP309文献标识码:A

0引言

曲面修改方法,针对已经存在的NURBS曲面资料,通过变更各项参数以达到曲面变化的目的,所以在发展之初,都是提出对于不同控制点数以及多目标点同时变更的算法,产生了许多以不同观点导出的方程式型态,在更进一步的研究当中,为了因应各种不同修改的需求,往往需要加入许多额外的限制条件,例如边界拘束、移动方向控制、连续性拘束等。这些限制条件的加入更提高了曲面修改的多样性,在这多种参数特性以及限制条件组合下,却也形成了曲面修改技术的复杂性。

本文探讨各种NURBS参数对于曲面修改的影响,并在此基础上提出一套流程,使之能够包含大部分的曲面修改技术,以满足弹性化的曲面修改需求。

1NURBS相关参数分析

基本的NURBS曲面模型定义如下:

其中n为U向之控制点数,m为V方向之控制点数,Pij为控制点群,U方向的Order为(P+1),V方向的Order为(q+1)。式中有四个参数值的改变可以当作曲面修改的工具:①改变控制点。②改变权重值。③改变Knot分布。④曲线的升阶或降阶。

以上的第①②项是最多参考文献所着重的,而第三项由于在实际应用上不容易掌控,因此仅有少数论文在讨论。而第四项由于数学式的特性,所以不会应用在曲面修改技术上。因此在此篇论文当中,也是将控制点与权重值作为主要曲面修改参数。以下针对于此两项参数作特性上的說明。

1.1改变控制点基本上改变控制点对于曲面的移动是比较直觉式的。这是由于控制点的观念可以直接利用图形显式的方式表达出来,且其对于曲面的影响也是有其规则性。当对于其中一个控制点做移动时,曲线上所影响到的曲线,将会与控制点移动的方向向量相同。以此类推,如果是多个控制点,则是以多个控制点的向量合成,做为最后曲线上各点移动方向的依据。

1.2改变权重值权重值的变更也是有类似的效果,当其中一个控制点为0时,曲线将会忽略此控制点的影响,而对某段曲线产生类似直线的效果。而如果改变了其权重值,则所受到影响的曲线上的点,将会朝向改变权重值的控制点移动,同时随着权重值越大也就越接近控制点。同样的如果有多个控制点的权重值同时变更,则会将多个控制点的三维坐标,透过线性向量合成的分配得到一个坐标值,则曲线上的指定点将会往此坐标值移动。但是使用权重值会有个限制,此限制为NURBS的Convexhull特性所产生的,由于曲线的位置会在Convexhull的范围内,因此如果只单纯改变权重值,造型修改将会被受限于特定范围内。基本上,权重值在对于曲面造型的变化会受到较大的限制,另外如果从齐次方程的观点来探讨此限制将会较容易。

在NURBS的曲面修改上,由于其局部变化特性(Localmodificationscheme),单一目标点所影响到的控制点最多有(P+1)×(q+1)个。所以在Piegl之后的参考文献中,都是提出对于不同控制点数以及多目标点同时变更的算法。

2曲面修改步骤

根据上述对NURBS参数的分析,曲面修改的步骤可按以下思路展开。首先要进行参数的选定,接着必须要将修改的目标点与曲面之间做关系的对应。其对应的关系即为曲面上的UV值,以及目标点与曲面上点的向量。在做计算的时候除了改变各项指定参数外,曲面上需要移动UV值的分布,也同时关系着哪些控制点必须去求解。另外,基于NURBS数学模型的特性,不同的参数变更,对于曲面是否能够达到其要求的变化,各自有不同的先天限制。因此在算法开始计算前,必须先判断目标点或曲线在曲面上所对应的UV值是否符合NURBS数学模型。在达到限制要求后,将开始算法的计算以及限制条件的加入。在最后将会把所有的方程式转换成矩阵的形式去求解,以达到目标点的要求。

首先,曲面修改的第一步是必须对于要移动的NURBS曲面取得UV值,以作为后续算法的计算以及限制条件的判断。在此部份是根据Powell方法来求点资料到曲面上的最近点。Powell方法是一种多维度求极值之数值分析方法。由于以NURBS曲面模型描述三维空间并求点资料到某一曲面之最近点,乃是利用了两个参数来描述,所以在此部份中必须使用多维度的数值分析求极值的方法才能够取得曲面上的UV值。而Powell方法的基本概念就是在N维空间上利用一维度的求极值方法,逐渐的在各个维度上的参数ui(Basisvectors)找出极值。

当得到各曲面上的UV值后,此时就必须考虑NURBS曲面是否能够同时满足各UV值的移动。由于曲面修改在求解方程式时,整个方程组必须是线性的型态,因此,曲面上UV值的个数,必须等于或小于最大可移动控制点数。基于NURBS曲面数学模型的特性,NURBS曲面基本上是由控制点数形成一个曲面缀片(Patch),每个曲面缀片是在一段节点向量之间。因此在复数UV值的狀况下,必须考虑在NURBS曲面上同一个曲面缀片里面,有多少指定UV数。这里仅讨论曲线在移动控制点时,控制点数与指定UV值的相互限制关系。如果当输入点数太多,超过曲面所能负担的自由度时,在此情况下,整个方程式会形成超越拘束(Overconstrained)的狀态,因此造成运算上的不正确,此种不正确在曲面上所反应的现象为,会造成大幅度扭曲以及不能够达到目标点位置。因此在将方程式表示成矩阵型态做运算之前,必须对于以上的拘束条件做判断,以达到完全拘束(Fullconstrained)或未完全拘束的狀态。

为了改善此问题,在这里有两个方法可以变更其限制条件里面的参数,分别为节点插入与曲面升阶。此两种方法都将改变判断限制条件的参数,同时,也对于曲面修改的结果会有不同的影响。因此在曲面修改的流程当中,将可以因应各种需求来分别使用以上两种方法,也可以使用混合搭配的方式,以得到最符合需求的结果。通常可以第一个方法为主先将曲面缀面数增加,如果在曲面修改后会造成不自然的曲面变化,将可以第二个方法为辅,来做曲面变化形狀的改善。

3在ImageWare中的应用实例

基本上曲面造型的修改,在现有的软件当中都包含单纯的控制点位置变更,因为如此是对于曲面最直接的操作。不过,由于此方式对于造型的变更,往往需要反复的移动各个控制点,才能达到变更的要求,所以将会浪费曲面的建构时间。另外由于控制点的变化所影响到的曲面造型,对于整体曲面造型变化并非是直觉式的,因此更让单纯移动控制点的功能在使用上有其限制。

有鉴于此类的曲面修改操作的应用性限制,在更进一步的曲面造型变更上,各软件都各自发展出,直接针对曲面上特定点的位置来做变更的功能。而相对于在曲面控制点的位置上,则根据特定的算法配合限制条件来加以求得最佳解。Imageware在自由曲面造型修改上提供了两种方法:

3.1直接移动控制点:在Imageware中,此功能与其它软件是相同的。

3.2移动曲面上指定UV值的点:首先指定曲面上指定UV值,也就是在曲面上产生需要变动的点,其功能与UG的类似,但是在指定曲面上点的时候,Imageware所提供的弹性较大,不过,相对的Imageware只能针对一点来做变更。在计算结果前可以加入边界连续性的考量,以保证在曲面变更后,不会影响与其它曲面之前的连续性。图(a)和图(b)为变更前与后的曲面。

作者简介:姓名李毅(1979.9)、性别男、民族汉,籍贯浙江省安吉县、现供职单位全称及职称:浙江财经学院工程师、学位;硕士、研究方向:计算机应用与ERP研究。

本论文得到浙江省教育厅课题(项目编号:20060095)的支持