展开是指将零件从三维展平到二维平面,主要用于零件的下料和切割。在船舶制造过程中,因存在大量具有复杂曲度的船体外板,展开也显得尤为重要。复杂曲度船体外板大多采用水火弯板的加工工艺,在加工过程中会导致外板的收缩变形,在展开算法中,如果没有考虑这部分收缩变形所带来的影响,展开结果往往精度较差。作为补偿,下料时需在展开结果中加入较多的余量,加工完成后再对曲面进行切割修正。这不仅造成了材料的浪费,而且需要消耗大量的人工成本。因此,对复杂曲度船体外板展开算法进行研究对提高生产质量和效率具有重要作用。
复杂曲度船体外板在几何上又称为不可展曲面。对于不可展曲面的展开,根据展开原理的不同,可以分为几何展开方法[1-6]和力学展开方法[7-11]。几何展开方法将不可展曲面离散成曲面片,采用“以平代曲”的方法来近似展开曲面,通过提高离散程度,可以达到控制展开精度的目的。力学展开方法将曲面离散成有限网格点,用质点来表示网格顶点,用弹簧来表示网格点之间的连线,用能量来表示展开过程中面积的改变大小,通过迭代可以计算出弹簧-质点系统能量变化最小时的展开状态。复杂曲度船体外板大多采用水火弯板的加工方式,加工过程会导致曲面的收缩,因此展开后的实际面积应比理论面积大。相较于力学展开方法,几何展开方法可以通过控制板条拼接过程中板条之间的间隙而达到对板材表面收缩量的控制和计算,而力学展开方法需要大量的迭代计算,计算复杂度较高,由此,本文复杂曲度船体外板展开算法采用几何展开的思想。
很多学者对几何展开方法进行了研究。文献[1]提出了将复杂曲度板离散成若干条状区域,并用直纹面逼近条状区域进行展开的方法;文献[2]提出了一种三角平面网格法;文献[3-4]利用面积不变的原理,从几何映射角度出发,实现了三维曲面和平面之间的点对点映射。对于钣金零件,这些展开算法的展开结果能够满足工程需求;然而,对于船体外板,其效果却不佳。主要原因如下:①船体外板大多为厚板,而钣金零件多为薄板;②钣金零件采用冲压加工成形工艺,加工过程中会导致板材的延展,而船体外板采用水火弯板工艺,加工过程会导致船体外板的收缩。由此,两者之间的展开面积有较大的差异。文献[5]也意识到这一点,提出了利用展开结果中不同板条之间的间隙来计算水火弯板加工工艺参数,但没有提出能提高船体外板展开精度的行之有效的展开算法。
本文利用有限单元化的思想,将曲面离散成若干板条,将板条单元化,用三角形平面代替曲面进行展开,最后对板材的板条进行拼接,形成展开网格图,作为绘制展开图的依据。
复杂曲度船体外板展开算法的流程包括B样条曲面拟合、中性层偏移、基线求取、板条划分、板条展开和板条拼接6个步骤。
在造船中,船体外板一般通过一系列的三维空间点进行表达。对船体外板进行展开时,首先要将其拟合成曲面,一般情况下采用B样条曲面进行拟合,通过构造B样条曲面可以实现曲面上任意点的插值和曲率的计算。k×l次的B样条曲面可以表示为
(1)
式中,{di,j}为控制顶点阵列;Ni,k(u)、Nj,l(v)为B样条基函数。
如图1所示,对于厚度为t的船体外板零件,可以用型表面(理论面)、中性层和外表面来表示。随着厚度t的增大,三种曲面表面积的差异也越明显。通常情况下型表面的面积最小,但一些向内凹的板(如球鼻艏)中型表面表面积最大。由于在板材成形过程中,中性层曲面的面积被认为是不变的,因此用中性层曲面作为展开基准面可消除板厚带来的误差。为简化计算,一般取曲板厚度1/2处的中心层来代替中性层。用S表示外板型表面,则中性层曲面偏移后的曲面SM(u,v)可以表示为
(2)
(3)
式中,n(u,v)为(u,v)点处的单位法向量;Cu(u,v)、Cv(u,v)分别为曲面S上点(u,v)在u、v方向的切向量;e为偏移的方向,其值为1或-1,由于S为外板型表面,偏移的方向应为朝向船外的方向,若单位法向量n(u,v)的方向朝向船外,则e=1,若单位法向量n(u,v)的方向朝向船内,则e=-1。
(a)向外凸板
(b)向内凹板
图1 船体外板截面示意图
Fig.1 Cross-sectional diagram of hull plate
船体外板零件根据所在舷侧可以分为左舷板和右舷板。如图2所示,在船体坐标系中,以船尾向船首方向为x轴正方向,左舷板为y轴正方向。对于左舷板,法向n(u,v)为朝向船外的方向时,向量的y轴坐标为正;对于右舷板,法向n(u,v)为朝向船外的方向时,向量的y轴坐标为负。
图2 左右舷板朝向船外方向示意图
Fig.2 Outwarddirection diagram
基线是指展开的基准线,是划分板条的依据,也为板条的展开提供基准点。在三维曲面中,基线上的所有点应经过同一个平面,为此,采用文献[6]中平面与B样条曲面求交线的方法来获取基线。为了减小展开的累积误差,相交平面应尽量靠近板材曲面中间的位置。实践表明,基线的位置对展开结果有较大的影响,对此本文不作深入分析。如图3所示,一般取左边界线的中点P1、右边界线的中点P3和样条曲面参数(u,v)为(0.5,0.5)时的点P2构成的平面与曲面的交线作为基线。
图3 基线的获取
Fig.3 Baseline acquisition
由于复杂曲度板为不可展曲面,故本文以基线为标准,将曲面等参数划分为n个板条。
(1)设S为基线弧长,将基线等参数分割成n条曲线,记Hi为分割后第i条曲线的弦长(如图4中P1P2为第一条曲线),则基线离散成直线后的误差为
(4)
(2)设置逼近精度δ,增大n的值,直到误差满足ε<δ。
(3)在基线的垂直方向上将曲面划分为n个板条。
图4 板条划分
Fig.4 Division of strips
将每个板条单独展开,严格来说即使曲面划分的板条再细密,板条也是不可展的曲面,为此本文采用近似展开方法,先将板条在长度方向离散为三角形平面,再进行展开。为了减小展开过程中的累积误差,将板条以基线为分界线分成上下两个区域分别展开。以下以第i个板条的展开为例进行说明。
(1)设置等分数m,将板条两边边界曲线分别离散为m+1个点。
(2)采用以平代曲的方法,连接左右边界点,用三角形平面来代表三角形曲面,则板条曲面可以离散为2m个三角形平面构成的空间几何结构。
(3)展开过程如图5所示,其中P3、P4为板条基线上的两个点,P′3、P′4为展开后的基线点。首先,将基线映射到x轴,即令P3在展开图中坐标为(0,0),P4在展开图中坐标为(P3P4,0);以基线上的点为初始参考点,上半区从基线开始向上展开到上边线,下半区从基线开始向下展开到下边线。以图5中上半区P31点的展开为例,计算三角形P31P3P4中P3P31和P3P4的夹角a,以及P31P3的长度值L,则P31在板条展开图中的坐标为
(5)
(4)采用相同的方法,依次展开板条中其他点,得到所有离散点的坐标。
图5 板条展开
Fig.5 Development of strips
由于每个板条在展开过程中都有自己的局部坐标系,因此还需要将板条平移到同一个坐标系中。如图6所示,以第i个板条和第i+1个板条的拼接为例进行说明。
(1)将相邻的板条沿着基线相接。
(2)板条旋转。连接的板条构成的展开面外围往往是不封闭的,可能存在重叠或间隙(图6b)。为了使重叠和间隙在板条上半区和下半区均匀分布,对相接后的板条进行旋转。设α为上半区间隙的角度,β为下半区重叠角度,对板条旋转θ角度使得上下半区的重叠和间隙均匀分布。即
α-θ=β+θ
则旋转角度的计算公式为
(6)
式中,a1为第i个板条上半区与基线的夹角;b1为第i个板条下半区与基线的夹角;a2为第i+1个板条上半区与基线的夹角;b2为第i+1个板条下半区与基线的夹角。
(3)板条平移。板条经过旋转后,部分板条之间还存在重叠和间隙部分。因采用水火弯板工艺时会在曲面上产生收缩变形,因此,板条之间的间隙可以作为加工收缩补偿量保留;而重叠部分却会造成展开误差,因此,还需要对板条进行平移,直至消除所有重叠区域。
(4)拼接所有板条。循环步骤(1)~步骤(3),直至所有板条都拼接在一个坐标系中,则板条拼接结束。
(a)相邻板条连接
(b)旋转
(c)平移
(d)最终拼接状态
图6 板条拼接
Fig.6 Splicing of strips
对于船体外板零件,展开图主要包括轮廓线、肋位线、辊压线。其中,轮廓线是板条拼接后的边界线,将板条的上顶点和下顶点连接起来(相邻板条之间的点取左右点坐标的中间坐标),即构成轮廓线的上下边线,第一个板条的左端线和最后一个板条的右端线即为轮廓线的左右端线。在计算得到辊压线和肋位线上的点后,需要将点映射到展开图中,也可以说是对辊压线和肋位线进行展开。在前面的展开过程中,可以得到三维曲面上每一个网格顶点在展开图中对应的二维坐标,但三维曲面上辊压线上的点往往不是这些网格顶点。如图7所示,假设曲面上的任意三维点Pi展开后的坐标为P′i。Pi在三维曲面上位于Pi1Pi2Pi3Pi4所在的小曲面片,小曲面片展开后的二维点分别为P′i1、P′i2、P′i3、P′i4。由于采用“以平代曲”的近似展开方法,故在展开过程中存在离散误差以及形状误差。为了保证点在展开前后在小曲面片上的相对位置保持不变,从而减小曲面上任意三维点与二维点之间映射产生的误差,采用保形映射的思想,分别通过计算Pi与平面Pi1Pi2Pi3、平面Pi2Pi3Pi4、平面Pi3Pi4Pi1、平面Pi4Pi1Pi2的位置关系,得到Pi在展开图中的4个位置,再求均值。
图7 三维点到二维点的映射
Fig.7 Mapping of 3-D points to 2-D points
下面以Pi与平面Pi1Pi2Pi3的位置关系求取展开点为例进行说明。
(1)计算角∠Pi1Pi2Pi的大小α、∠Pi3Pi2Pi的大小θ以及展开图中∠P′i1P′i2P′i3的大小ω。由于展开前后存在角度变形,故ω≠α+θ,为了减小角度变形的影响,在展开图中,P′i2P′i与P′i2P′i3的夹角
(7)
(2)计算直线Pi2Pi的长度L。在P′i2P′i3方向上量取与P′i2距离为L的点P′t,将P′t绕着点P′i2旋转θ′,得到Pi在展开图中的位置P′i。
采用本文中的算法开发船体外板展开软件,主要包括曲面信息提取和曲面展开。曲面信息提取主要是指与CATIA软件建立接口,读取模型的三维散点数据;曲面展开是指对从CATIA软件中读取的三维散点数据进行展开,并提取辊压线和肋位线。软件开发流程为:①采用CATIA中的VBA二次开发技术开发曲面信息提取模块,提取CATIA三维模型型表面数据[10-11];②采用C#语言开发曲面展开功能模块,通过读取第①步中生成的三维点数据,对三维点数据进行曲面拟合和展开,并最终生成展开的数据信息。
在这个过程中,由于两个模块采用不同的开发语言和技术,为了实现相互之间的通信,采用XML格式和TXT格式进行相互之间的数据传递。具体流程为:在第①步中生成XML格式的曲面数据信息文件,并存储在指定的文件夹中;在第②步中对指定文件夹中的XML格式数据进行读取和展开;展开完成后,生成XML格式和TXT格式的曲面展开数据信息。
为了验证船体外板展开算法的准确性和可靠性,对船体外板进行展开测试,展开结果与船厂普遍使用的TRIBON软件展开结果进行对比。TRIBON软件展开结果在船厂中具有很高的认可度,且经过了多年实际生产的验证,具有展开精度高、结果稳定的优点。测试分段为船体艏部分段的外板。艏部外板三维模型如图8所示,包括三边板、四边板、五边板、折边板、帆形板和马鞍形板等不同外板形状和曲率的船体外板共25块。
图8 CATIA三维模型
Fig.8 CATIA three-dimensional model
为了更直观地分析误差,采用展开边长误差作为误差计算的依据,则误差的计算公式为
εl=|l1-l2|
(8)
式中,l1为本文软件展开结果的边长;l2为与之对应的TRIBON展开结果的边长。
测试结果如表1所示。
表1 展开精度测试结果
Tab.1 Development accuracy of test results
外板类型外板数量边数量平均误差(mm)误差均方差(mm)95%置信区间(mm)三边板261.50.11.3~1.7四边板22881.40.21.0~1.8五边板151.60.11.4~1.8所有板25991.40.21.0~1.8
取95%的置信区间,则误差区间为ux±2σx。其中,ux为表1中的平均误差,σx为表1中的误差均方差。从表1中可以看出,与TRIBON展开结果对比,在95%的置性区间内,所有测试板的误差在1.0~1.8 mm之间,最大误差不超过2 mm,满足实际生产的需求。
基于几何展开原理,针对船体外板的水火弯板加工工艺,本文提出了一种复杂曲度船体外板板展开算法。主要思路是采用有限单元化的思想,先将不可展曲面离散为板条曲面,再将板条曲面用三角平面近似展开,通过拼接得到最终展开图。本算法通过三种方法来提高展开的精度:①考虑板厚影响,对型表面进行中性层偏移;②通过基线将外板划分为上下半区进行单独展开,以减小累积误差;③考虑水火弯板加工原理,通过板条之间的旋转和偏移,消除板条之间的重叠部分,间隙区域作为水火弯板加工的收缩补偿量。
开发了复杂曲度船体外板展开软件,并对实船分段的三维模型进行展开测试,展开结果与TRIBON软件展开结果进行对比。结果表明,该算法展开精度高,可以满足实际生产需要。同时对有些TRIBON软件不可展开的特殊曲面板,如跨中板、包含平面的曲板,本文软件也能进行有效展开。
[1] 席平. 三维曲面的几何展开[J].计算机学报,1997,20(4): 315-322.
XI Ping. Geometric Approach of 3D Surface Development[J].Chinese J. Computers, 1997, 20(4): 315-322.
[2] PARIDA L. MUDUR S I P. Constaint-satifying Planar Development of Complex Surfaces[J]. CAD, 1993, 25(4): 225-232.
[3] 张冬娟, 苏世忠, 李明哲. 无模多点成形中三维曲面工件的展开方法[J]. 塑性工程学报, 2003, 10(4): 34-37.
ZHANG Dongjuan, SU Shizhong, LI Mingze. Development Methods for the Three-dimensional Surface in the Multi-point Forming[J]. Journal of Plasticity Engineering, 2003, 10(4): 34-37.
[4] 张冬娟. 板类件自由曲面展开程序设计[D]. 长春:吉林大学, 2003.
ZHANG Dongjuan. Program Design for Free-form Surface Deployment of Plate Parts[D]. Changchun:Jilin University, 2003.
[5] 朱秀莉, 刘玉君, 纪卓尚,等. 基于伪直母线的船体曲面钢板展开方法[J]. 船舶力学, 2009, 13(6): 934-941.
ZHU Xiuli, LIU Yujun, JI Zhuoshang, et al. A Method for Development of Hull Plate Surface Based on Its Quasi-rulings[J]. Journal of Ship Mechanics, 2009, 13(6): 934-941.
[6] 席平. 复杂类薄板件的二维展开[J]. 中国机械工程, 1997, 8(4):34-36.
XI Ping. Two Dimensional Expansion of Complex Sheet Metal Parts[J]. China Mechanical Engineering, 1997,8(4): 34-36.
[7] 许江平, 柳玉起, 杜亭,等. 任意复杂曲面的展平算法及其在五金零件毛坯展开中的应用[J]. 中国机械工程, 2008, 19(2):193-195.
XU Jiangping, LIU Yuqi, DU Ting, et al. Algorithm for Arbitrary Complex Surface Flattening and Its Application in Unfolding Metal Blank[J]. China Mechanical Engineering,2008, 19(2):193-195.
[8] 陈功, 周来水, 安鲁陵, 等. 一种通用的复杂曲面展开方法研究[J]. 中国机械工程, 2007, 18(24):2914-2920.
CHEN Gong, ZHOU Laishui1, AN Luling, et al . Study on a General Method on Flattening of Complex Surfaces [J]. China Mechanical Engineering , 2007, 18(24):2914-2920.
[9] 王弘,王昌凌. 基于能量模型的曲面展开通用算法[J].计算机辅助设计与图形学学报, 2001, 13(6): 556-560.
WANG Hong,WANG Changlin. A General Surface Development Algorithm Based on Energy Model[J]. Journal of Computer Aided Design &Amp, Computer graphics, 2001, 13(6): 556-560.
[10] 王弘,王昌凌. 基于物理模型的参数化曲面展开[J]. 华中科技大学学报(自然科学版), 2000, 28(3):10-12.
WANG Hong,WANG Changli. Parametric Surface Development Based on Physical Model[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2000, 28(3):10-12.
[11] 毛国栋, 孙炳楠, 徐浩祥. 基于弹簧-质点系统的薄膜结构曲面展开算法[J]. 浙江大学学报(工学版), 2005, 39(8): 1238-1242.
MAO Guidong, SUN Bingnan, XU Haoxiang. Membrance Surface Flattening Algorithm Based on Spring-mass System[J]. Journal of Zhejiang University (Engineering Science), 2005, 39(8): 1238-1242.