APP下载

基于ObjectARX的船舶快速分舱程序设计

2010-06-07

中国舰船研究 2010年3期
关键词:舱室设计者船体

陈 强 马 坤

大连理工大学船舶工程学院,辽宁大连 116024

基于ObjectARX的船舶快速分舱程序设计

陈 强 马 坤

大连理工大学船舶工程学院,辽宁大连 116024

舰船舱室形状复杂、数量众多,给船舶初步设计阶段的舰船分舱工作带来很大困难。文章提出基于有向分舱线的舱室定义方法,以降低舰船舱室定义阶段的复杂性,同时提高直观性。基于有向分舱线的概念,结合船型曲线的有序化组织,对AutoCAD进行二次开发,完成软件编制。在实际应用中,不仅极大减少了舱室定义的时间和复杂性,同时为舰船舱室划分提供结构化的组织和管理方法。

快速分舱;分舱线;参数化;自顶向下建模;二次开发

1 引 言

1.1 研究背景

舰船舱室的划分是船舶初始设计阶段的主要任务,其本质是在船体外壳给定的情况下如何对船体空间进行快速合理的划分,以使舰船满足稳性、抗沉性等重要的性能指标要求。舰船的舱室划分理论及相关性能计算发展至今已经相当完善,在这些性能计算中,舰船各舱室的数学描述,舱室中若干断面的型值点数据往往是构成舰船舱容计算、自由液面修正,及完整稳性计算的基础要素。然而,舰船舱室众多,倘若对各舱室都采取手动采集型值点的方式,必定是相当繁琐且容易出现差错的过程。

1.2 问题的提出

面对经济全球化下的激烈市场竞争,中国造船行业需要实现数字化造船,以提高行业的核心竞争力,为行业的发展提供有力的支撑[1]。计算机技术的发展,以及各种大型CAD/CAM等自动化软件在舰船设计过程中的应用,使得舰船的总设计周期得到了相应缩短。舰船设计的数字化进程经历了二维绘图、半三维(线框)建模、实体电子三维产品建模和船体部件生产线紧密集成的三个阶段[2]。当前,被舰船设计单位广泛使用的舱室定义和建模软件有 SIKOB,NAPA,TRIBON Initial Design,以及中国船级社的 Compass。 SIKOB[3]软件的主要弊端在于舱室要素的信息只能够通过文本进行输入,这实际上是把设计者头脑中的图形概念到计算机图形的转化过程进行了分离,因此不利于设计者和计算机图形的反馈互动及错误检查,更不用说将其应用于舱室信息未知的尝试性分舱;Compass的弊端在于,其本身图形系统的缺乏,导致图形显示不够直观,因而就无法达到实时的图形反馈及实时交互;NAPA[4]和 TRIBON Initial Design[5]功能强大,但是其建模过程比较繁琐复杂,各舱室的构建始于包裹空间的6个面。这种分舱方式是自底向上的,既只能一个一个舱室的构建,如图1所示。此外,在舰船初始设计阶段通常只想获得舱室的型值点以及直观的图形显示,对于视觉效果的要求是次要的。所以,能够开发出一个简单易用且实时交互性强的分舱软件就具有一定的经济价值。

图1 NAPA和TIBBON Initial Design的分舱模式

2 设计思想

2.1 有向分舱线概念的提出

2.1.1 提出背景

舰船分舱设计是设计中的一项重要内容,涉及舰船的多个方面:首先是功能需求,其次分舱要考虑规范要求,最后还要考虑剪力、弯矩等结构因素[6]。在舰船设计的初步阶段,设计者的诸如产品的功能、配置、几何形体、部件关系等概念,在不断的反复分析过程中得到优化[7]。减少这个过程的复杂性,也在一定程度上缩短了船舶的设计周期。

舰船舱室的定义和建模,单从图形的角度来看仅仅是属于计算机绘图领域,关键在于如何对舱室形状进行描述。船体分舱可分别按横向、纵向和竖向进行。横向以纵舱壁沿船宽方向划分舱室,以减少自由流动的货物对舰船稳性的影响。纵向以横舱壁沿船长方向划分舱室,其作用是隔开不同用途的船舱,保证舰船具有足够的横向和纵向强度、破舱进水后的浮态和稳性,以及防止因某一舱内发生火灾从而波及全船的危险等。竖向则以内底、平台、各层连续甲板和上层建筑甲板将船体和上层建筑予以分隔,以保证航行安全和船体强度,满足载货及乘员的工作和生活需要以及设备的布置和使用要求等[8]。

基于舰船舱室形状大多是横剖面形状较为复杂,而纵向比较简单。因此,本文主要讨论舱室横剖面的几何要素。目前对舱室的定义通常采取以下三种方法:

1)取平均截面为规则的几何形状(矩形或是梯形)近似计算;

2)各断面形状分别用左壁和上壁的型值点由下至上进行描述;

3)各断面形状用能够近似表达其形状的一组有序离散点进行描述。

以上三种方法中,第一种方法很简单,但因为只是一种近似,因此会有一定的误差。第二种和第三种方法能够对舱室形状进行比较精确描述。很多学者直接采用第三种方法对舱室形状进行描述,其大致方法如下:

1)在船体空间中选取两个肋位作为待求舱室的横舱壁位置;

2)分别给出两个横舱壁位置上的描述舱壁的关键点列;

3)插值生成各中间断面的舱壁型值点。

杨帆[9]等正是通过引入舱室特征点概念(舱室横断面有序离散点列)对舱室形状进行描述,并用Visual Basic 6.0进行了相应软件的开发。直接使用特征点对舱室进行描述的弊端在于无论怎样对这些舱室特征点进行信息提取,它们始终是孤立点。这种方法仅仅只是抓住了这些点作为个体的孤立信息,但是却忽视了这些点作为整体的拓扑信息,不利于舱室空间的拓扑结构描述,并且无法对空间进行划分,只能支持自底向上的设计模式。在给出离散特征点的设计方法中,通常是对点的性质进行划分,然后进行文本的输入。但是这种方法很不直观,不能有效地使设计者与图形进行交互。

船体空间内部的舱室特征点实际上是构成舱室封闭空间的舱壁折角点在某个与中横剖面平行的平面上的投影,因此这些点之间的关系是舱壁间关联关系的反映。此外,在船舶快速分舱过程中,尤其是在舱室信息未知的自由分舱中,这些点列结合相应的辅助点信息还蕴含着设计者的设计意图。所谓设计意图,指对于一个空间分割的取舍指示。如图2所示,如何在最少的输入情况下判断出设计者对A和B的取舍。如果软件设计能够充分利用这些蕴含的关系进行判断就可以大大减轻设计者的负担。

图2 对一个空间分割的取舍

2.1.2 有向分舱线的概念

舰船快速分舱的实现,除了尽可能地实现参数化,还应该在那些必须由设计者参与的环节中尽量减少对设计者提出交互的要求,因此对设计者设计意图的捕获就显得相当重要。图形作为设计者思想的一种表达形式,完全蕴含了设计者想要表达的意图,关键是如何从图形中把这个意图进行捕获。

本文在杨帆等研究成果的基础上,基于舱室特征点列整体作为舱壁间关联特性反映的事实,利用参数化曲线的性质,提出了有向分舱线的概念:能够描述舱室特征点的空间位置关系及设计者意图的有向线段。有向分舱线的数学本质是一条参数化的多段线,本文所实现的软件正是利用了有向分舱线的参数化特性对设计者的意图进行捕获。在此给出软件实现过程中用到的几种有向分舱线。

1)首先选取舱室某横断面上完全落入舱室空间内部点列(如图3中的B、C、D三个点),分别在以上有序点列的基础上自两端(B、D两点)过与船体的交点(1、2两点)分别延伸出船体,得到两个辅助点(A、E两点),构成一条分舱线。辅助点主要是在自由分舱中辅助程序去找到有向分舱线与船体的交点,这样就可以支持设计者在屏幕上直观画出舱壁外形,而不会因为误差导致无交的情况。如图3所示ABCDE就构成了有向分舱线的关键点。

图3 第一类

2)对于完全在船体外壳内部的横断面舱型,仅仅选取其封闭边界上的点够成的有向封闭多变形点列,作为有向分舱线关键点,如图4中ABCD。

图4 第二类

3)在首端只有一个辅助点,尾端有两个辅助点。这种分舱线是为了支持自顶向下的分舱模式而采用,如图5中ABCDE。

图5 第三类

结合有向分舱线的概念,本文对船体横断面曲线进行逆时针排序。这样,只要设计者选取船体某横断面并画出一条分舱线,程序就会对分舱线上的点进行测试,区分出有向分舱线上的辅助点和船体内部的点。然后从有向分舱线终点开始按逆时针绕行并截取船体上与之够成封闭的曲线。

基于以上实现方法,设计者不用事先知道该舱室的具体信息。在船体外轮廓曲线已知的情况下,任意选取艏艉两个横断面,分别给出所选艏艉断面的分舱线,程序会自动插值生成各中间横断面的有向分舱线,并在各横断面处截取与对应有向分舱线构成逆时针的船型曲线及图形化显示。

本文所实现的软件中,有向分舱线实际上是舱壁在船体各横剖面的投影。基于各横剖面投影对应点之间呈线性关系,艏艉两条分舱线相结合进行插值就可以模拟舱壁板,实现对船体空间的划分。舱室首尾断面有向分舱线的给出可以通过参数化输入,也可以直接在屏幕上画出,真正实现了从设计者观念到计算机图形的快速转换,提高了设计效率。有向分舱线参数化定义如图6所示,可以在左边的表格中直接输入分舱线的坐标值进行分舱线的创建。

2.2 对自顶向下分舱模式的支持

舰船通常有许多的舱室,如果完全采用自底向上的分舱模式,既对所有的舱室都进行从头设计势必相当繁琐,没有对已划分的空间进行充分利用。因此,本软件基于有向分舱线的概念并结合LEE SU[10]等提出的自顶向下的设计模式对该舱

图6 有向分舱线的参数化定义

室划分模式提供了支持。该设计模式的理论很简单,本质上就是不断地去切割一块“面包”。该方法的实现主要是利用前文中的第三种分舱线把已经产生的舱室一分为二,这样就不需要对每个舱室进行从头创建,提高了分舱的效率,如图7所示。

图7 将一个舱室一分为二的自顶向下分舱模式

2.3 结构化的组织和管理

舰船舱室众多,如果不能对划分的舱室进行结构化的组织和管理,就会给其后的性能计算带来不必要的麻烦。实际上舰船众多的舱室相互之间都有一定的关系,因为舰船的分舱过程总是先划分出若干的大隔舱段,然后在对大隔舱段进行细化,或者说是对某个舱室进行细分,所以构建舱室之间的空间层级关系就相当重要。本文所实现的软件正是基于此构建了分舱层级树。如图8所示,左边为分舱过程中形成的分舱层级树,表明1号燃油舱等小舱室都是在1号大隔舱的空间中细分得到。

图8 舱室的结构化组织

2.4 参数驱动

参数驱动的功能是任何建模软件都应该具备的。但是舱室的形状复杂参数众多,而且很多时候设计者都会提出特定需求,很难将所有的参数都考虑进去,但仍然可以尝试在一定范围内进行参数化,以减少设计者负担,加快设计过程。本文软件所实现的目的是帮助设计者完成舰船快速分舱,旨在快速获得舱室的几何信息。因此本文所实现软件直接选取有向分舱线关键点的几何信息作为参数,取得了一定效果。

1)首先在舱室的定义阶段,本文所实现的软件支持对分舱线的参数化定义,直接在表格中输入精确坐标(图6)。

2)在对舱室定义的修改过程中,无论是直接对分舱线图形的修改或是对其参数进行修改,图形都会被驱动变化,如图9所示。

3)在同一个大隔舱内无论修该了任何一个小舱室,其余小舱室都会自动做出相应的变化,如图10所示。

图9 修改有向分舱线导致舱型变化

图10 调整深色舱室导致浅色舱室自动调整

在以上的参数化分舱过程中,关键的实现是舱室之间的布尔运算。在对其中任何一个舱室的修改后,都应该去测试是否与其他舱室构成相交关系。如修改A舱室导致与B舱室构成了相交关系,就应该在两个舱室之间做布尔减法运算(BA)调整B舱室。本文在三维空间中基于线框模型完成了参数化分舱过程。

1)判断修改后的舱室与其他舱室是否相交。主要实现是判断各舱室的有向分舱线在中横剖面投影是否出现相交,以及各舱室在船长方向是否出现重叠。

2)相交舱室的横断面补齐。使两舱室在相交区间内部计算横断面数目及位置一致。

3)相同船体纵向位置横剖面线框间的布尔运算[11],调整与修该后舱室相交舱室的线框。

具体情况,可参考图11。

图11 程序流程图

3 设计过程

3.1 开发平台及开发工具选取

舰船分舱系统,作为一种交互式的图形系统,其实现方式基本有两种方式。

1)自行研发图形平台,这种开发方式的优点在于拥有完全自主的知识产权,系统功能的扩充不受外界限制。但其弊端是系统的开发及维护难度较大,开发周期较长。

2)利用第三方开放的软件平台进行二次开发,这种方式多为规模较小的公司所采用[12]。由于船舶设计中大多数工程图都是使用AutoCAD软件绘制的,而且AutoCAD具有强大的绘图能力和一个开放的体系结构,因此本文采用AutoCAD软件作为船舶分舱软件的二次开发平台。

图12 类型设计及功能

图形系统是复杂的,因为图形系统中要管理大量的图形基本元素以及处理其间的各种抽象相互关系。基于图形的复杂性,本文采用C++语言对AutoCAD进行二次开发,完成了程序的编制。所开发的程序与AutoCAD共享同一个应用程序进程空间,直接嵌入AutoCAD中运行,获得了较大的快速性。

3.2 关键类型设计及功能

CShipLinesManager是全局管理类,提供计算内核与界面的交互。

CStaMgr是站线管理类,封装了对站线的创建及管理。

CWlMgr是水线管理类,封装了对水线的创建及管理。

CHold是对舱室的抽象,封装了舱室的属性及方法,如舱室的名称,所关联的舱室及舱室的创建方法等。

CStaLine是站线类,封装了站线的数据准备等方法.

CWLline是水线类,封装了水线的数据准备等方法。

CTranLine是舱室的横剖线类,封装了横剖线的数据准备等方法。

CSubDL是有向分舱线类,封装了有向分舱线的方法,如起始点判断,求交等方法。

CLawTool仅仅是对一些辅助方法的封装,是个工具类,封装了点在图形内外的测试等工具。

3.3 实现过程

1)坐标系选取

采用船体坐标系,坐标系原点取在船体的中纵剖面、中横剖面、基平面的交点。X轴船首为正,Y轴右舷为正,Z轴向上为正。注意,AutoCAD中的世界坐标系与船体坐标系的Y轴是相反的,需要进行坐标系的转换。

2)船体型值表导入及站线、水线的生成

B样条作为几何造型中的重要工具,因为其具有良好的局部支撑等性质,在CAD/CAM系统中得到广泛应用。本文所编制的软件同样也采用B样条曲线对船型曲线进行表达,具体算法参见文献[13]。

本文所导入型值表为舰船各站横剖面上的一系列离散点。基于导入的型值点数据,调用CShipLinesManager的 createStationlines()方法,利用B样条曲线插值生成站线,然后在站线的基础上根据具体输入的水线间距调用CShipLinesManager的createWaterlines()方法插值生成各水线。至此,船体的基本数据实际上已经生成。此过程中要注意对一些特殊的位置,如艏艉部进行曲线修正。

3)大隔舱的生成

根据用户输入的大隔舱首尾断面的位置及各中间断面的间距,调用CShipLinesManager的createMainHold()方法插值生成相应断面的大隔舱横剖面,如图13所示。为了与有向分舱线结合实现后期小舱划分中对作者意图的捕获,大隔舱横剖线逆时针存储在横剖线类CTranLine的对象中,如图14所示。

图13 程序界面及生成大隔舱

图14 船体曲线排序

4)小舱室的划分

舰船小舱室划分要做到任意、快速以及简便,因此软件设计应该尽量减少舱室设计者的负担,减少不必要的输入,尽量挖掘图形本身所蕴含的信息。其难点在于如何通过最少的输入产生符合设计者意图的舱室,其关键就在于对设计者意图的捕获。在基于舱室特征点的分舱程序中,必须通过对随船体上点的坐标进行特殊处理,才能区分出要截取的船体部分,这无疑是增加了设计者的记忆负担且容易出错。

本文结合有向分舱线的概念和对船体曲线进行有序组织,实现了仅仅通过一条设计者手画的有向分舱线对设计者意图进行捕获。该功能的内部实现充分利用了有向分舱线和船体曲线作为参数曲线的特性,以及船体曲线的有序组织。其实现大致为:首先求出有向分舱线与船体型线的交点以及与之有交的船体型线在有序数组中的索引;其次,利用船体型线的参数化特性求出交点在所属船体型线的参数值;最后结合船体型线的逆时针组织顺序,就可以通过交点及船体型线端点参数走势来判断曲线的逆时针走向。程序从有向分舱线上靠近终点的交点开始沿逆时针方向对船体曲线进行截取,一直到靠近有向分舱线起点的交点为止。只要设计者画出一条简单的多段线,就会得到一个与其构成逆时针走向的舱型。对自顶向下的分舱模式的支持其内部实现与上类似,二者的关键都是对曲线进行有序组织及求交判断。

1)基本舱室的划分。首先在尾断面给出分舱线,然后在首断面给出分舱线,最后程序自动插值生成小舱室。图15和图18分别表示小舱室A和B在尾断面的分舱线,图16和19分别表示小舱室A和B在首断面的分舱线,图17和20则为生成的小舱室。可以看出,因分舱线的给出方向不同生成不同的舱室。

图15 艉断面A→E

图16 艏断面A→E

图17 生成舱室A

图18 艉断面A→E

图19 艏断面A→E

图20 生成舱室B

2)自顶向下的分舱模式。对已经生成舱室的切分,只需给出第三种分舱线,程序自动把图21中右边深色舱室切分为两个舱室,如图21中左图所示。

图21 用第三类有向分舱线A→D分隔舱室的自顶向下模式

4 结束语

本文综合国内外舱室建模软件的应用经验以及相关学者的研究基础,基于舱室特征点作为一个整体实际反映了舱壁的拓扑关系的事实,提出了有向分舱线的概念。基于有向分舱线的概念并结合船体参数化曲线的有序组织,编写了船舶快速参数化分舱系统,对自底向上和自顶向下的分舱模式提供了支持,提高了船舶初始阶段对舱室建模的效率,为后期船舶性能的计算提供了基础。

[1] 李玉刚.面向数字化造船的XML及其相关标准应用研究[D].大连:大连理工大学,2007.

[2] 战翌婷.船舶分舱程序实现[J].船舶工程,2007,29(5):48-51.

[3] SIKOB(currently,SEASAFE).[2009-07-15].http://www.seasafesoftware.com.

[4] NAPA.[2009-07-15].http: //www.napa.fi.

[5] TRIBON Solution (currently,AVEVA).[2009-06-20].http://www.tribon.com.

[6] 周晓明,张明霞,林焰,等.基于VBA的船舶交互式智能分舱方法[J].船舶工程,2006,28(4):43-45.

[7] ROH M I,LEE K Y.Generation of the 3D CAD model of the hull structure at the initial ship design stage and its application[J].Computers in Industry, 2007,58(6):539-557.

[8] 陆丛红.基于NURBS表达的船舶初步设计关键技术研究[D].大连:大连理工大学,2005.

[9] 杨帆,马坤,纪卓尚.油船参数化定义方法研究[J].造船技术,2007,(5):20-23,8.

[10] LEE SU,ROHM Y I,CHA JH,et al.Ship compartment modeling based on non-manifold polyhedron modeling kernel [J].Advances in Engineering Software,2009,40(5):378-388.

[11] 周培德.计算几何-算法设计于分析[M].2版.北京:清华大学出版社,2005.

[12] 单婷.基于ObjectARX的三维重建系统的研究与开发[D].大连:大连理工大学,2006.

[13] 朱心雄.自由曲线曲面造型技术[M].北京:科学出版社,2000.

Program Design for Quick Bulkhead Subdivision Based on ObjectARX

Chen Qiang Ma Kun
School of Naval Architecture Engineering, Dalian University of Technology, Dalian 116024, China

Due to the irregular shapes of shi p compartment and its large quantity, the risk of the bulkhead subdivision project increases significantly at initial design phase.Targeting to reduce the difficulties and improve the visualization of bulkhead subdivision,this article introduce d a new method ofmodeling the bulkhead based on subdivision line,which followed the concept of subdivision line and the ordering of ship lines, and through the secondary development on the AUTOCAD, the program was implemented.In practical application, the complexity and period of bulkhead subdivision are reduced enormously, the program provides an organized controlmethod to the designer.

quick bulkhead subdivision; subdivision line;p arametric; top-down modeling;secondary development

U663.8

A

1673-3185(2010)03-67-07

10.3969/j.issn.1673-3185.2010.03.016

2009-12-29

陈 强(1983-),男,硕士研究生。研究方向:智能船舶CAD与集成信息系统。E-mail:cq_1031@yahoo.com.cn

马 坤(1961-),女,教授,博士生导师。研究方向:智能船舶CAD与集成信息系统

猜你喜欢

舱室设计者船体
船舶舱室通风控制策略研究
船体行驶过程中的压力监测方法
2020德国iF设计奖
超大型FPSO火炬塔及船体基座设计
2019德国IF设计大奖
博远设计:“城市有机更新”设计者
基于设计者竞赛平台的UG建模案例教学实践
船体剖面剪流计算中闭室搜索算法
舰载导弹意外点火时舱室内喷洒抑制的影响研究
水下爆炸气泡作用下船体总纵强度估算方法