利用前面所讲的各种曲线设计方法,我们就可以建立起产品外形的线框模型。众所周知,设计人员在构思一个产品的形状时,通常用线条勾画出一个用轮廓线表示的立体图,以帮助构思和相互讨论。若用计算机来实现这一构图过程,就是建立产品的线框模型。
线框模型(Wireframe)是由有限个空间点以及成对点之间相连的边(直边或曲边)构成的三维几何模型,计算机不仅可用来构造线框模型,而且还能快速而准确地生成所需要的各种正投影图、轴侧图和任意视线方向的透视投影图。线框模型具有很多优点。首先,它的定义过程最简单,符合长期以来工程技术人员的打样习惯。人们在设计构思时,总是先用线条勾画出形体的基本轮廓,然后逐步细化;其次,它的数据存储量最小、操作灵活、响应速度快。事实上,灵活方便的线框功能有时是进一步构造表面模型和实体模型的工具,是交互式CAD系统中改善用户界面的有力手段,是从三维模型产生各种二维视图和工程图的最简捷途径。因此,线框模型是基本的普遍采用的一种三维几何模型。
但是,由于线框模型过于简单,不包含面的信息,因而有时不能惟一定义物体的形状,甚至定义出实际不可能存在的形体;不能自动消除隐藏线;无法计算物体的体积;无法进行产品的力学性能分析、生成加工指令等等。那么,为了用计算机进行复杂产品的外形的表示和设计就必须引入曲面方法来描述它们。
三维几何形体的曲面模型是在线框模型的基础上增加面的信息,相当于在灯笼骨架外蒙上一张皮。曲面不一定封闭,正如灯笼的上下两端可以留出开口一样。曲面模型是比线框模型更完全、二义性更小的数学表示方法,它为形体提供了更多的几何信息。利用曲面模型,可以生成数控加工刀具轨迹、进行物性计算;可以在程序中实现隐藏线的自动消除、生成产品的真实感图形;也可以在有限元分析中生成表面的有限元网格。曲面模型通过提供连接物体边界的曲面间的拓扑信息而超越了线框模型。
在曲面模型中,主要研究具有一定光滑性的曲面外形的数学描述,其历史由来已久。早在计算机问世以前,人们在船舶外形设计中就使用放样方法(lofting)进行曲面外形设计。然而,CAD/CAM中曲面表示方法的研究和发展则始于S. Coos、P. Bézier和de Casteljau的开创性工作,他们分别对立地提出了现在称之为Coos曲面和Bézier曲面的曲面设计方法。曲面表示方法是CAD/CAM中最为关键的恶疾书之一,这是因为三维物体的外形都是曲面构成的,它是物体和周围环境之间的界面,物体对光照的反射、物体的光色效应取决于物体外形的形状、颜色和纹理材料的性质等等。三维形体的几何表示处处需要曲面,从大到飞机、船舶、汽车,小到家用电器、轻工产品的工业造型设计,服装、皮鞋的三维打样、款式设计,山脉、水浪、云彩等自然景观的模拟等等无不需要强有力的曲面造型工具。有关曲面造型的方法很多,目前仍是CAD/CAM领域中最活跃的方向之一。没有解决所有问题的统一方法,例如在工业产品外形设计中,广泛采用的是矩形拓扑结构上的曲面方法,象Bézier曲面、B样条曲面、NURBS曲面等。而在实验数据处理、地形图、有限元的前置处理等方面,则采用的是任意拓扑结构上的曲面方法,如三角Bézier曲面、Shepard曲面等。
总之,在CAD/CAM领域中,常用的曲面表示方法有以下几类:
一般来说,构造曲面要求两方面的信息:①定量数据,如点、切矢等;②定性数据,象光滑性、视觉美观性等。定量数据和定性数据亦分别称为构造曲面的"硬"数据和"软"数据,曲面的表示形式必须能够给设计者提供一个简单、易于交互处理的形式,以便能灵活地使用这两类数据。与曲线的表示类似,曲面方法也应该具有能够插值或逼近给定"硬"数据的品质。至于定性数据,则不免带有浓厚的主观色彩,不同的设计者具有不同的审美观,但最终产生的形体都异曲同工、差别不大。这表明定性数据还具有客观性的一面,把这一方面抽象出来,用数学的方法加以量化描述,便得到构造曲面所遵循的定性准则──光顺准则。
除了表示和设计产品的几何外形之外,通常也要求曲面方法能够用于处理实验数据、列表数据、测量数据以及微分方程的离散解等等,在这种情况下就引出了高维曲面,也就是给定三维空间的位置点和每点处的某种变量之值,如何构造表示这种变量分布的曲面。例如飞机机翼上的压力分布曲面、机械零件上的应力分布曲面、地矿中采矿采凿面上的位移分布曲面等。这类四维曲面的构造通常分两步完成:①求变量分布的等值线;②以彩色编码的形式显示。高维曲面是可视化计算的主要工具。
最直接、最简单的描述曲面的方法是列出曲面上的所有点。这种方法最为笨拙,用它不可能导出任何曲面性质。因此,通常仅用曲面上很有限的点列,借助于插值或逼近技术来生成曲面的表示形式,当然,最完美的方法是知道曲面的解析方程。当解析方程不合适时,则将曲面看成是由一系列小曲面依照一定光滑性条件缝合而成。
曲面造型方法分为两大类:一是以曲线为基础,即由曲线构造曲面。例如给定两条边界曲线,可构造一张直纹面;给定一母线和旋转轴可构造一旋转面等。二是以离散点集为基础,即由点直接构造曲面,象插值、逼近、拟合等。
最简单且一目了然的一种构造方法是:
⑴采用矩形定义域和矩形网格线的分割,即采用两个一维分割的张量积,具体如下:
这里,二阶偏导数连续的要求用以保证二元样条函数所张成的曲面具有连续的Gauss曲率和平均曲率,相当于一元场合下对曲线的曲率连续的要求。
1. 双三次样条函数的表示
2. 边界条件
3. 存在唯一性定理
根据基样条的性质及插值条件,有:
4. 三次插值样条函数的求解
其中:
①给定插值条件、边界条件;
定义在矩形域上带有矩形网格分割的双三次样条函数,我们解决的漂亮而又彻底,其关键之处在于:这里的二维分割是两个一维分割的直积,而且双三次样条函数又是两个一元三次样条函数的直积。这样,我们实际上把二元问题转化成两个方向上的一元问题了。
对于定义在一般平面区域上带有任意分割的二元样条函数这类问题的研究要困难的多,迄今所获得的理论成果和具体算法都是初步的,一般解仍然是一个发展中的课题。
当我们把双三次样条函数用于几何外形设计时,正如三次样条函数一样,只适用于小挠度场合,否则,光顺性同样可能被破坏。为了用于大挠度和多值场合,需要对双萨那次样条函数作些改造,其中最成功的一种方法就是采用参数双三次样条函数。
和曲线数据点的参数化一样,曲面数据点的参数化方法也有以下四种。
其中:
这里:
在后三种参数化中,我们之所以进行规范化、平均化,其主要原因是沿同一参数方向的网格线应具有公共的参数分割,而在该方向上的各排数据点分布状况一般不一样。由其分布状况决定的各参数分割也就不一样,那么公共的参数分割只能是它们的混合或折中。
其中:
与双三次样条函数的求解方法一样,为了确定每个网格点处的三个未知量,只需事先给定边界条件即可。具体确定各网格点处未知量的步骤如下:
当然,上述四步也可以换成不同的顺序,也可采用其他的边界条件。
在参数双三次样条曲面中,如果我们采用均匀参数化,且取每一个网格点处的二阶混合偏导矢为零矢量,那么所对应的参数双三次样条曲面称为Ferguson样条曲面,其分片表示式如下:
其中:
如果我们仍采用均匀参数化,且允许网格点处的二阶混合偏导矢非零,那么这类参数双三次样条曲面就称为Coons双三次样条曲面。Coons双三次样条曲面的分片表示式与Ferguson曲面片的表示式相同,惟一的区别是角点信息矩阵中右下角的二阶子阵的四个元素非零。所有的未知偏导矢满足以下方程: