0 前 言 Y \j &84
BL]^+KnP
目前,许多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为支撑环境,开发了下面介绍的“三维变截面造型系统”。
IPJs$PtKok (s}9N 1 变截面造型基本思想及算法设计 u0i
@. :pNZQX 1.1 变截面造型基本思想
d*H-l3N NeNKOW#X 对于如图1所示的三维物体,从微分的角度来看,可把它切分为一个个大小和形状不同的薄片,当这些薄片趋于无穷薄时就变成了本文所称的截面;从积分的角度来看,又可把三维物体视为由一个个大小和形状不同的薄片沿一轴线叠放而成,这就是三维变截面造型的基本思想。

1.2 算法设计
8_KXli}7= b#$:XS 1.2.1 横截面算法
.&*Tj}p 2y,~i;;_ 按照变截面造型的基本思想,横截面是三维物体的构成元素,其大小由宽度、高度参数确定,形状由形状因子确定。这些参数都是沿三维物体轴线变化的(参见图1)。
gs9f2t J :, 在“三维变截面造型系统”中,我们采用 “中国航空科技文献(HJB880658)《超椭圆及亚椭圆曲线的递推算法》”为横截面的算法,在具体实现中作了取舍和变换。超椭圆、亚椭圆及内摆线曲线族的数学表达式如下:
[J:vSt 1P6~IZVN 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)
b5yb~;0 ,E/vHI8 (1)式的参数表示如下:
71wyZJ 4,)=r3;&! (x-x
e)cosα+(y-y
e)sinα=αcos
n1t (2)
`5x,N%9{ dLjT^ 9 (y-y
e)cosα+(x-x
e)sinα=bsin
n1t
I</Nmgf !3Pl]S~6! 由(1)式,令
}P^n / fV[xv4D. X
i=[(x
i-x
e)]cosα+(y
i-y
e)sinα]
n _&yQW&vH# M?]ObIM:5 Y
i=(a/b)
n[(y
i-y
e)cosα-(x
i-x
e)sinα]
n `7'(U)x,F O 89BN6p 可得到以下递推公式(推导过程详见参考资料[1])。

将(1)式中的指数进行变换,得 !hJ%{.
k
9s3@S
f(x,y)=[(x-xe)cosα+(y-ye)sinα]2n+[an/bm]2[(y-ye)cosα-(x-xe)sinα]2m-(a)2n=0 (4) 6W3}6p
aHb,4 wY
在上面的各表达式中,a、b为“椭圆”的半轴,xe、ye为椭圆的圆心,α为椭圆主轴与x轴的夹角,m和n为指数。 Ws(BouJ
}~\J7R'
在三维变截面造型系统中,a、b为横截面的宽度参数和高度参数,将指数m、n变换处理后作为变截面造型系统中的M、N形状因子。形状因子是变截面造型系统的关键技术和特色技术,形状因子控制着横截面的形状, 其取值与形状的对应关系如下: 0E+ +
i++ F&r[
·当M=N时 aIkxN&
#
VR}6Jv
0<M=N<1时:形状在矩形到椭圆之间变化。M=N=1时:形状为标准椭圆。 ^QXUiXzl
cbS8~Xmj
1<M=N<2时:形状在椭圆到菱形之间变化。M=N=2时:形状为菱形。 D b(a;o
F2+lwyc Y
2<M=N<40时:形状在菱形到“+”字线之间变化。 :%s9<g;-h_
c?wFEADn
·当M≠N时 .llAiv
bp5hS/A^1w
可得到形状特异的横截面。M因子对临近X轴的形状影响大; N因子对临近Y轴的形状影响大。 .i`+} @iA
|n]^gTJt
1.2.2 纵向控制线算法 ' Bdvqq
JlGyGr^MD
纵向控制线用于描述宽度参数、高度参数及形状因子沿物体轴线变化的规律。在“三维变截面造型系统”中,形状因子的纵向算法采用线性插值,宽度参数、高度参数的纵向算法采用三次样条函数插值。介绍三次样条函数的资料很多,在此不再赘述。 ;9 b?[G
x~KS;hA
2 系统实现 +>/Q+nh
GVFD_;j'
根据变截面造型的基本思想和纵横向算法,以AutoCAD R13为支撑系统,AutoLISP编程语言和DCL对话控制语言为开发工具,开发了“三维变截面造型系统”。整个造型系统分为横截面设计、纵向控制线设计、造型输出控制、纵向控制线样条拟合、读取造型数据等五个主要功能模块。图2是造型系统运行时的界面。 A7ck-9dT/L
E6BW&Xp
2.1 横截面设计 !$Mv)c/_u
qOkw6jfluh
进行横截面设计的主要目的是寻找满足设计要求的横截面及这种横截面的形状因子值。
2.2 纵向控制线设计 6`%}s3Xq
~>)cY{wE_
所谓纵向控制线就是用AutoCAD的Pline命令产生的二维多义线。运行纵向控制线设计模块可建立一个纵向控制线设计区域及创建一些基本的控制线。纵向控制线设计区域是一个单位区域,即对角点坐标为(0,0)和(1,1)的矩形区域。宽度和高度控制线完全处于1×1的区域内,形状因子控制线则处于1×40的区域内。 ? p\'S
w:
4yjAi@ /2
纵向控制线设计模块为设计者提供了两种创建控制线的方法,一种是交互方式,另一种是读数据文件方式。数据文件的格式为每行两个数据,数据间用逗号分隔,表示一个二维坐标点。数据可以是与实物一样大小的数据,程序会自动将其变换后绘制出“单位曲线”,即曲线左端的X坐标为0,右端的X坐标为1。 C$rZn%dp(
hZ$* sf
2.3 造型输出控制 Qg1LT8
mnG\UK,k
造型输出控制模块控制的主要内容为:①控制输出的是曲面还是曲线;②控制曲面网格划分疏密或截面线间隔大小;③控制造型体的实际大小和颜色;④控制造型是封闭、完整的还是开口、部分的;⑤控制造型物体的轴线是直的还是曲的;⑥控制计算方法是线性插值还是三次样条函数插值。图3是造型输出控制模块运行时的界面。

图2
`/Z8mFs Y
图3
造型时,首先,在造型输出控制对话框(见图3)中输入各种造型参数和选定各种选项。其次,根据造型参数和选项,提示设计者在控制线设计区域内选取造型控制线(二维多义线),程序从AutoCAD的内部数据库中读取这些被选取的二维多义线的顶点数据,作为各种插值计算的插值结点。最后,进行造型计算,产生造型结果。 hLO nX<%a
u;y1leG
2.4 控制线样条拟合 TS@EE&W