复旦托业CAD培训中心
CATIA曲线曲面设计基本理论
一、概述
曲面造型(Surface Modeling)是计算机辅助几何设计 (Computer Aided Geometric Design,CAGD)和计算机图形学的一项重要内容,主要研究在计算机图象系统的环境下对曲面的表示、设计、显示和分析。它起源于汽车、飞机、船舶、叶轮等的外形放样工艺,由Coons、Bezier等大师于二十世纪六十年代奠定其理论基础。经过三十多年的发展,曲面造型现在已形成了以有理B样条曲面(Rational
B-spline Surface)参数化特征设计和隐式代数曲面(Implicit Algebraic Surface)表示这两类方法为主体,以插值(Interpolation)、逼近(Approximation)这二种手段为骨架的几何理论体系。
1.发展历程
形状信息的核心问题是计算机表示,既要适合计算机处理,且有效地满足形状表示与设计要求,又便于信息传递和数据交换的数学方法。象飞机、汽车、轮船等具有复杂外形产品的表面是工程中必须解决的问题。曲面造型的目的就在如此。
1963年美国波音(Boeing)飞机公司的佛格森(Ferguson)最早引入参数三次曲线(三次Hermite插值曲线),将曲线曲面表示成参数矢量函数形式,构造了组合曲线和由四角点的位置矢量、两个方向的切矢定义的佛格森双三次曲面片,从此曲线曲面的参数化形式成为形状数学描述的标准形式。
1
复旦托业CAD培训中心
仅用端点的位置和切矢控制曲线形状是不够的,中间的形状不易控制,且切矢控制形状不直接。 1964年,美国麻省理工学院(MIT)的孔斯(Coons)用四条边界曲线围成的封闭曲线来定义一张曲面,Ferguson曲线曲面只是Coons曲线曲面的特例。而孔斯曲面的特点是插值,即构造出来的曲面满足给定的边界条件,例如经过给定边界,具有给定跨界导矢等等。但这种方法存在形状控制与连接问题。
1964年,舍恩伯格(Schoenberg)提出了参数样条曲线、曲面的形式。
1971年,法国雷诺(Renault)汽车公司的贝塞尔(Bezier)发表了一种用控制多边形定义曲线和曲面的方法。这种方法不仅简单易用,而且漂亮地解决了整体形状控制问题,把曲线曲面的设计向前推进了一大步,为曲面造型的进一步发展奠定了坚实的基础。
但当构造复杂曲面时,Bezier方法仍存在连接问题和局部修改问题。
同期,法国雪铁龙(Citroen)汽车公司的德卡斯特里奥(de Castelijau)也独立地研究出与Bezier类似的方法。
1972年,德布尔(de Boor)给出了B样条的标准计算方法。
1974年,美国通用汽车公司的戈登(Gorden)和里森费尔德(Riesenfeld)将B样条理论用于形状描述,提出了B样条曲线和曲面。这种方法继承了Bezier方法的一切优点,克服了Bezier方法存在的缺点,较成功地解决了局部控制问题,又轻而易举地在参数连续性基础上解决了连接问题,从而使自由型曲线曲面形状的描述问题得到较好解决。但随着生产的发展,B样条方法显示出明显不足,不能精确表示圆锥截线及初等解析曲面,这就造成了产品几何定义的不唯一,使曲线曲面没有统一的数学描述形式,容易造成生产管理混乱。
1975年,美国锡拉丘兹(Syracuse)大学的佛斯普里尔(Versprill)提出了有理B样条方法。 80年代后期皮格尔(Piegl)和蒂勒(Tiller)将有理B样条发展成非均匀有理B样条方法(即NURBS),并已成为当前自由曲线和曲面描述的最广为流行的技术。
NURBS方法的突出优点是:可以精确地表示二次规则曲线曲面,从而能用统一的数学形式表示规则曲面与自由曲面,而其它非有理方法无法做到这一点;具有可影响曲线曲面形状的权因子,使形状更宜于控制和实现;NURBS方法是非有理B样条方法在四维空间的直接推广,多数非有理B样条曲线曲面的性质及其相应算法也适用于NURBS曲线曲面,便于继承和发展。
由于NURBS方法的这些突出优点,国际标准化组织(ISO)于1991年颁布了关于工业产品数据交换的STEP国际标准,将NURBS方法作为定义工业产品几何形状的唯一数学描述方法,从而使NURBS方法成为曲面造型技术发展趋势中最重要的基础。
2
复旦托业CAD培训中心
2.基本概念
曲线、曲面的显式、隐式、参数表示
曲线、曲面可以用显式、隐式和参数表示。
显式:形如z = f(x,y)的表达式。对于一个平面曲线,显式表示一般形式是:y=f(x)。在此方程中,一个x值与一个y值对应,所以显式方程不能表示封闭或多值曲线,例如,不能用显式方程表示一个圆。
隐式:形如f(x,y,z)= 0的表达式。如一个平面曲线方程,表示成f(x,y)=0的隐式表示。隐式表示的优点是易于判断函数f(x,y)是否大于、小于或等于零,也就易于判断点是落在所表示曲线上或在曲线的哪一侧。
参数表示:形如x = f(t),y = f(t),z = f(t)的表达式,其中t为参数。即曲线上任一点的坐标均表示成给定参数的函数。
如平面曲线上任一点P可表示为: P(t) = [x(t), y(t)];
空间曲线上任一三维点P可表示为: P(t) = [x(t), y(t), z(t)];如图:
最简单的参数曲线是直线段,端点为P1、P2的直线段参数方程可表示为:
P(t) = P1 + ( P2 - P1 )t t∈[0, 1];
圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数显式表示为:
其参数形式可表示为:
参数表示的曲线、曲面具有几何不变性等优点,计算机图形学中通常用参数形式描述曲线、曲面。其优势主要表现在:
(1)可以满足几何不变性的要求,坐标变换后仍保持几何形状不变
(2)有更大的自由度来控制曲线、曲面的形状。如一条二维三次曲线的显式表示为:
只有四个系数控制曲线的形状。而二维三次曲线的参数表达式为:
有8个系数可用来控制此曲线的形状。
(3)对非参数方程表示的曲线、曲面进行变换,必须对其每个型值点进行几何变换,不能对其方程变换(因不满足几何变换不变性);而对参数表示的曲线、曲面可对其参数方程直接进行几何变换。
(4)便于处理斜率为无穷大的情形,不会因此而中断计算。
3
复旦托业CAD培训中心
(5)参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中曲线、曲面扩展到高维空间去。这种变量分离的特点使我们可以用数学公式处理几何分量。
(6)规格化的参数变量t∈[0, 1],使其相应的几何分量是有界的,而不必用另外的参数去定义边界。
(7)易于用矢量和矩阵表示几何分量,简化了计算。 位置矢量、切矢量、法矢量、曲率和挠率 (见高等数学)
插值、逼近、拟合
插值:给定一组有序的数据点Pi,i=0, 1, …, n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。常用插值方法有线性插值、抛物线插值等。
逼近:构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。
拟合:插值和逼近则统称为拟合(fitting)。 光顺、连续性
光顺:通俗含义指曲线的拐点不能太多,曲线拐来拐去,就会不顺眼,对平面曲线而言,相对光顺的条件是:a)具有二阶几何连续性(G2);b)不存在多余拐点和奇异点;c)曲率变化较小。
连续性:设计一条复杂曲线时,常常通过多段曲线组合而成,这需要解决曲线段之间如何实现光滑连接的问题,即为连续性问题。
曲线间连接的光滑度的度量有两种:一种是函数的可微性,把组合参数曲线构造成在连接处具有直到n阶连续导矢,即n阶连续可微,这类光滑度称之为C n或n阶参数连续性。另一种称为几何连续性,组合曲线在连接处满足不同于C n的某一组约束条件,称为具有n阶几何连续性,简记为G n。曲线光滑度的两种度量方法并不矛盾,C n连续包含在G n连续之中。
对于上图所示二条曲线P(t) 和Q(t),参数
,若要求在结合处达到G0连续或C0连续,即
两曲线在结合处位置连续:P(1) = Q (0) 。
若要求在结合处达到G1连续,就是说两条曲线在结合处在满足G0连续的条件下,并有公共的切矢:
当
…………(1-1)
时,G1连续就成为C1连续。
4
复旦托业CAD培训中心
若要求在结合处达到G2连续,就是说两条曲线在结合处在满足G1连续的条件下,并有公共的曲
率矢:
代入(1-1)得:
…………(1-2)
这个关系为:
…………(1-3)
即Q”(0)在P”(1)和P’(1)确定的平面内。
为任意常数。当
,
时,G2连续就成为C2
连续。在弧长作参数的情况下,C1连续保证G2连续,C1连续能保证G2连续,但反过来不行。也就是说C n连续的条件比G n连续的条件要苛刻。
3.简单代数曲面
简单代数曲面在造型系统中常见,但远远不能满足复杂曲面造型的要求。
5
最经典CATIA曲线曲面设计基本理论



