您的位置:网站首页 > Solidworks

船体外板展开算法及程序实现

时间:2010-06-02 08:00:00 来源:
副标题#e#     0前言
   
    船舶设计时,需要绘制出船体肋骨型线图和外板展开图用于船体建造,使用传统二维设计方法费时费力,需要计算出大量数据并人工进行大量的绘图工作.而运用现在流行的三维实体技术可完成从草图设计、计算加工到产品数据管理等一系列功能,可充分利用计算机高效准确的计算功能、图形处理功能以及对复杂上程数据的存储、传递、加上功能本文基于三维参数化设计技术,借助计算机编程手段实现船体肋骨型线图和外板展开图的自动绘制和外板模型的建立;不仅可缩短船体肋骨型线图和外板展开图的绘制周期,也能保证船舶设计建造过程中外板数据信息的精确性和致性,以及为造船生产及定货提供必要的条件.
   
    1 软件结构
   
    本文使用支持OLE和COM的编程语言VB.NET控制Solidworks API函数进行开发VB.NET建立的程序与Windows的操作界面一致,交互能力强大,可以方便地根据用户需求进行设计与修改.采用Solidworks三维实体特征建模软件作为图形平台Solidworks提供了几百个API函数,这此API函数是Solidworks的OLE或COM接口,对其进行二次开发,就可建立需要的功能模块.产品数据管理(PDM )是实现船舶产品设计和信息集成的重要手段,产品结构与物料需求表(BOM)产生于产品的设计过程,木文将记录的数据以BOM表的形式应用于后续的设计和制造.SQL Server作为后台数据库,提供信息管理模块供用户进行数据的管理、维护和输出.软件结构如图1所示.
   


    2船体曲线与曲面的裹达与计算
   
    2.1肋骨型线的表达与计算

   
    鉴于船体型线具有造型灵活和局部性,选用非均匀有理B样条CNURBS)曲线来描述肋骨型线可以保证计算的精确性控制点的权因子在程序中能影响到曲线形状,具有局部性,方便对曲线进行分段处理,同时可以修改曲线的局部形状程序中先获取相应肋位的肋骨型线,在指定高度利用拉格朗日插值添加控制点,并读取控制点的三维坐标信息.程序采用曲线拟和的方法求出曲线的经验公式,再将公式编入程序.采用最小二乘法.拟合完毕通过辛浦生公式计算出所有肋骨型线的实长,并把长度与肋位号保存入肋骨型线数据表中.
   
    2.2船体曲面裹达与计算
   
    NURBS曲面是一种对控制点加权的B样条曲面.可以通过改变控制点的位置或控制点的权值来改变曲面的形状,对个别控制顶点和权值的调整只影响曲而的局部形状.因此用双参数变量分段有理多项式来定义u向k次具有n+1个控制点,v向l次具有m+1个控制点的船体曲面:
   


    船体的大部分曲面为双曲度曲面,先纵向展开,再确定其横向位置.这样可以最大限度地保证每根肋骨在展开图上为直线,整个船体曲面的面积与展开后所有外板的面积和是一样的,保证数据统计的精确性.按照程序设计的习惯先定义外板类,主要参数是展开后每块四边形外板的四点坐标,所有的信息被自动保存在数据库中进行处理,按照设计者给定的距离划分网格,利用区域面积不变的原则保证每个网格中曲面面积大小不变,画出展开图.


    以肋骨#0和肋骨#1的展开为例.设定肋骨#0的横向位置(沿船长方向)x1为己知,肋骨的起点高度和长度在肋骨设计中已经求出,即其Y小标可知,利用求出的四边形面积与两条肋骨围成的曲面面积S相等的原则,可计算出X2=2S/(H1+H2)+X1为肋骨#1的横向位置(H1和H2分别为两条肋骨的高度).类似地,从舰部肋骨开始计算直至船舷最后一根肋骨,依次计算并得到两根肋骨间的曲面表达式,算出其面积,最终绘出展开图.