0 前 言 pbPz$Y
df^0{gNHx
目前,许多CAD系统的曲面模型(Surface Modeling)都是基于NURBS数学方法的,在这类系统中,若以创建曲面的方法来分类,一般可将曲面为分四大类:一是系统直接创建的基本曲面,如锥面、柱面、球面和圆环面;二是动迹(Motion-Based)曲面,如旋转(Revolved)曲面、拉伸(Extruded)曲面和扫掠(Swept)曲面;三是蒙(Skin)面,如直纹曲面、UV放样(Lofted)曲面;四是导出曲面(Derived),如调和(Blended)曲面、倒圆(Fillet)曲面。许多工业产品的外形都具有以下特点:(1) 横截面呈封闭形状,具有一根或两根对称轴;(2)截面形状和大小沿物体轴线是变化的。具有上述特点的工业产品比比皆是,如讲究美观漂亮的化妆品包装瓶、讲求生动活泼的儿童玩具、要求气动特性和受力特性良好且装载空间大的飞机机身、要求美观和谐且风阻系数小的现代汽车外形等等。对于构造外形具有上述特点的工业产品,用基本曲面和动迹曲面已无法完成。用UV向放样的方法可以完成,但是,用UV放样法,首先要大量的数据来生成U、V放样曲线,最后才能产生放样曲面。在新产品造型时,要设计人员给出大量U、V放样曲线的数据相当困难,致使造型效率很低。可见,用UV放样法对具有上述特点的工业产品进行造型,是方法可行而效率不行。针对目前CAD系统存在的不足,我们以AutoCAD为支撑环境,开发了下面介绍的“三维变截面造型系统”。
m^'~&!ba rykj2/O 1 变截面造型基本思想及算法设计 }'v{dK JBvk)ogM 1.1 变截面造型基本思想
\FVNXUMU *^uGvJXF 对于如图1所示的三维物体,从微分的角度来看,可把它切分为一个个大小和形状不同的薄片,当这些薄片趋于无穷薄时就变成了本文所称的截面;从积分的角度来看,又可把三维物体视为由一个个大小和形状不同的薄片沿一轴线叠放而成,这就是三维变截面造型的基本思想。

1.2 算法设计
H<$pHyxU ~Po\ En 1.2.1 横截面算法
WejyYqr34- u2Y N[|V 按照变截面造型的基本思想,横截面是三维物体的构成元素,其大小由宽度、高度参数确定,形状由形状因子确定。这些参数都是沿三维物体轴线变化的(参见图1)。
CcBQo8!G $y8mK|3.3u 在“三维变截面造型系统”中,我们采用 “中国航空科技文献(HJB880658)《超椭圆及亚椭圆曲线的递推算法》”为横截面的算法,在具体实现中作了取舍和变换。超椭圆、亚椭圆及内摆线曲线族的数学表达式如下:
w<Zdq}{jO cD5w| rm?i f(x,y)=b
2n[(x-x
e)cosα+(y-y
e)sinα]
2n+a
2n[(y-y
e)cosα-(x-x
e)sinα]
2n-(ab)
2n=0 (1)
dr.**fGYde Rq"VB.ef&{ (1)式的参数表示如下:
d8rBu jT vz- 9<w;>a (x-x
e)cosα+(y-y
e)sinα=αcos
n1t (2)
*U:VM'a L^6"'# (y-y
e)cosα+(x-x
e)sinα=bsin
n1t
eR7qE) h ?Y%}(3y 由(1)式,令
%B[YtWqm`/
0K&_D) X
i=[(x
i-x
e)]cosα+(y
i-y
e)sinα]
n :sU!PF[< cLn; ,u4 Y
i=(a/b)
n[(y
i-y
e)cosα-(x
i-x
e)sinα]
n 9*BoYFw92* jMTRcj];( 可得到以下递推公式(推导过程详见参考资料[1])。

将(1)式中的指数进行变换,得 D% oueW
[SK2 x4
f(x,y)=[(x-xe)cosα+(y-ye)sinα]2n+[an/bm]2[(y-ye)cosα-(x-xe)sinα]2m-(a)2n=0 (4) m"5{D*|
~azF+}x90N
在上面的各表达式中,a、b为“椭圆”的半轴,xe、ye为椭圆的圆心,α为椭圆主轴与x轴的夹角,m和n为指数。 _2wAaJvA
^cB49s+{e
在三维变截面造型系统中,a、b为横截面的宽度参数和高度参数,将指数m、n变换处理后作为变截面造型系统中的M、N形状因子。形状因子是变截面造型系统的关键技术和特色技术,形状因子控制着横截面的形状, 其取值与形状的对应关系如下: 2j2mW>Z
C_6GOpl
·当M=N时 Cq-hPa}2
~&t!$
0<M=N<1时:形状在矩形到椭圆之间变化。M=N=1时:形状为标准椭圆。 ^!q 08`0
8w03{H
0
1<M=N<2时:形状在椭圆到菱形之间变化。M=N=2时:形状为菱形。 7ESN!
n>u.3wL
2<M=N<40时:形状在菱形到“+”字线之间变化。 G%xb0%oi]%
lq;
·当M≠N时 B0 6s6Q
C/SapX
可得到形状特异的横截面。M因子对临近X轴的形状影响大; N因子对临近Y轴的形状影响大。 &B?@@6
-L+\y\F
1.2.2 纵向控制线算法 E%-Pyg*
1,m\Q_
纵向控制线用于描述宽度参数、高度参数及形状因子沿物体轴线变化的规律。在“三维变截面造型系统”中,形状因子的纵向算法采用线性插值,宽度参数、高度参数的纵向算法采用三次样条函数插值。介绍三次样条函数的资料很多,在此不再赘述。 ?lu_}t]
CW.&Y?>Tv
2 系统实现 >L#];|
<]Ij(+J;
根据变截面造型的基本思想和纵横向算法,以AutoCAD R13为支撑系统,AutoLISP编程语言和DCL对话控制语言为开发工具,开发了“三维变截面造型系统”。整个造型系统分为横截面设计、纵向控制线设计、造型输出控制、纵向控制线样条拟合、读取造型数据等五个主要功能模块。图2是造型系统运行时的界面。 ?R dmKA
`Af{H/qiI
2.1 横截面设计 qXXYF>Z-
83mlZ1jQz
进行横截面设计的主要目的是寻找满足设计要求的横截面及这种横截面的形状因子值。
2.2 纵向控制线设计 *!._Ais,\
pw0Px
所谓纵向控制线就是用AutoCAD的Pline命令产生的二维多义线。运行纵向控制线设计模块可建立一个纵向控制线设计区域及创建一些基本的控制线。纵向控制线设计区域是一个单位区域,即对角点坐标为(0,0)和(1,1)的矩形区域。宽度和高度控制线完全处于1×1的区域内,形状因子控制线则处于1×40的区域内。 u)<Ysx8G
Ask' !
纵向控制线设计模块为设计者提供了两种创建控制线的方法,一种是交互方式,另一种是读数据文件方式。数据文件的格式为每行两个数据,数据间用逗号分隔,表示一个二维坐标点。数据可以是与实物一样大小的数据,程序会自动将其变换后绘制出“单位曲线”,即曲线左端的X坐标为0,右端的X坐标为1。 b7?U8/#'
<8}KEe4
2.3 造型输出控制 ~%olCxfO
ST[2]
造型输出控制模块控制的主要内容为:①控制输出的是曲面还是曲线;②控制曲面网格划分疏密或截面线间隔大小;③控制造型体的实际大小和颜色;④控制造型是封闭、完整的还是开口、部分的;⑤控制造型物体的轴线是直的还是曲的;⑥控制计算方法是线性插值还是三次样条函数插值。图3是造型输出控制模块运行时的界面。

图2
>+yqjXRzm
图3
造型时,首先,在造型输出控制对话框(见图3)中输入各种造型参数和选定各种选项。其次,根据造型参数和选项,提示设计者在控制线设计区域内选取造型控制线(二维多义线),程序从AutoCAD的内部数据库中读取这些被选取的二维多义线的顶点数据,作为各种插值计算的插值结点。最后,进行造型计算,产生造型结果。 CnxK+1n l
mle_*Gy8
2.4 控制线样条拟合 1~["{u
#JK;&Dg!
作为造型控制线的二维多义线实际上是直线段连成的折线。用折线顶点拟合出来的三次样条曲线与折线存在着差异,有时差异会很大。为保证用折线顶点拟合出来的三次样条曲线符合预期要求,在造型之前,可进行样条拟合试算。 (%``EIc<8
SQ1M4:hP
2.5 读取造型数据 Y}AmX
OpW eW
用数据读取模块,可读取曲面网格顶点或横截面曲线的数据,生成数据文件,便于在AutoCAD系统以外应用。 X=rc3~}f
y0/WA4,
3 应用实例及造型例子 AZh@t?)
=gxgS<bde
3.1 应用实例 ;cM8EU^.
t/l! KdY$
用本系统来设计飞机机身外形,当M、N形状因子在0.5~0.8之间取值时,可得到比圆或标准椭圆截面更美观、有效空间更大、抗弯抗扭能力更强的机身外形。而且机身截面曲线计算简便,纵向容易控制和修改,与传统的设计方式比较,具有简洁高效的优越性。 AyQS4A.s[
Qv9*p('~A
3.2 造型例子 v7s]
@rnp- +kq
图4右边的两个花瓶是用同一根宽度、高度控制线配以不同的形状因子控制线造型产生的,上面的花瓶用的是形状因子线1,下面的花瓶用的是形状因子线2。

4 结束语 Q'n(^tbL
[VY8?y
大家都知道,旋转曲面的轴向大小可变,但横截面形状却只能是圆形。拉伸曲面的横截面可以是圆以外的任何形状,但其形状在拉伸方向是不可变的。本文介绍的变截面造型系统,突破了这两种曲面的局限,拓展了AutoCAD系统的造型能力,特别适合构造外形具有本文前言所述特征的工业产品,而且造型效率很高。 W&fW5af9
>i^y;5
本系统的造型准备工作,在单位区域内进行,容易操作。造型输入数据是一些直观的、可视化的控制线,所以,形状容易控制和修改。控制线的点数(含端点)大于或等于2即可,因此,需输入的数据很少。