船舶舱室参数化设计的方法研究与软件实现

2017-04-22 08:04刘朕明
船舶 2017年2期
关键词:舱室数据结构计算结果

刘朕明 孙 淼

(中国船舶及海洋工程设计研究院 上海200011)

船舶舱室参数化设计的方法研究与软件实现

刘朕明 孙 淼

(中国船舶及海洋工程设计研究院 上海200011)

在船舶设计过程中舱室设计计算工作不仅繁琐,而且由于迭代设计过程中的不断更新,出现重复建模、分析计算结果与舱室模型不一致等问题。文章通过研究复合数据结构、基于宏命令的参数化设计方法与自动刷新机制,结合舱室特点,探索舱室参数化设计方法,从而实现大表面、舱室和舱容计算结果的拓扑关联,解决了舱室快速建模,自动更新舱容结果等问题,并通过自主研发来实现船舶舱室参数化设计软件。

舱室定义;参数化分析;宏命令;复合数据

引 言

船舶分舱是船舶设计过程中的重要环节之一,目前主要通过CAD软件等绘制舱室二维图纸,并运用NAPA等软件进行舱容分析计算,存在重复建模、数据孤岛等问题[1]。如今,从CAD技术在实际设计应用中提炼而成的参数化设计技术,不仅使CAD系统具有交互设计的功能,还使设计人员从大量繁琐的设计绘图、建模分析等工作中解脱出来,大大提高了设计速度。但是,传统的参数化设计也有明显不足,例如用简单的经验公式代替复杂的拓扑关联,只能将外形尺寸数据作为变量参数[2]。

此外,在传统设计分析软件中,所采用的数据结构均为固定类型(如浮点型、整型、字符型等),所有模型都相互独立。由于任何数据的修改只能影响其本身,因此就无法实现参数化。

参数化设计可以大大提高模型生成和修改的速度,相似设计及专用CAD系统开发方面都具有较大的应用价值。参数化设计中的参数化建模方法主要有变量几何法和基于结构生成历程的方法,前者主要用于平面模型的建立,而后者更适合于三维实体或曲面模型。不过目前常用的参数化设计CAD软件仅仅是解决模型几何参数之间的拓扑关联,而船舶初步设计过程中,除模型内部数据的拓扑关联外,还存在模型与模型之间的关联。例如:舱室模型可以视作由大表面包围而成的独立空间,其中大表面是指船体曲面、甲板平面和舱壁对船体功能区域划分三维曲面。所以当大表面修改时,设计师希望通过已有的拓扑关联使舱室的形状自动改变,并且那些存在拓扑关联的舱容数据也能随之改变。然而,这种广义上的拓扑关联若采用传统的参数化则难以实现。因此本文首先通过研究复合数据结构,用以表达舱室定义参数,为研究基于宏命令的参数化设计方法提供支持,从而提升描述与解析舱室几何形状[3]的准确性和便捷性;其次依据宏命令解析历程,形成舱室模型与所有参数之间的拓扑关系,并设计研究舱室模型计算结果[4-5]自动刷新机制,从而提高舱室定义分析的工作效率和质量;最终通过自主研发来实现舱室参数化设计软件,将本文研究结果应用到实际工作中。

1 基于宏命令的参数化设计技术研究

1.1 舱室复合建模技术

本课题采用基于宏命令的参数化设计技术,其基本原理如下:

(1)通过分析将舱室的数据分解为定义数据和计算结果,并采用合适的方式表达该定义数据。例如,舱室的定义采用边界面限定的方式表达为:

Def Tank cargo

X > 10.0;

X < 20.0;

Y > 0.0;

Y < 10.0;

Z > 0.0;

Z < 10.0;

End Def

以上数据结构表达一个名为“cargo”的舱室,其形状为一个X > 10.0、X < 20.0、Y > 0.0、Y < 10.0、Z > 0.0、Z < 10.0的立方体。

(2)采用复合数据表达其中的限界值,即X > 10.0中的10.0,可采用宏命令形式表达该限界值。如x > Bulkhead#120,其中的Bulkhead#120是在肋位号120上的横舱壁,通过系统对该数据的解析,可以计算出实际值10.0。在此解析过程中,系统就建立了Bulkhead#120与cargo的拓扑关联。所谓复合数据,是一种union数据结构:

typedef struct tagRT

{

int vt;

union

{

int intVal;

double dblVal;

CStr* strVal;

};

} DATART;

它可以在整数、浮点数、字符串中任意转换,而将原为字符串形式的数转换成相应的浮点数就是一个宏命令解析过程。例如:“Z<主甲板.GetH()-1.0”可以通过函数解析,获取主甲板高度H;再通过识别运算符号“-”,计算出H-1.0的值。

1.2 宏命令的解析方法研究

宏命令是一组指令函数和模型数据的有序集合,还是拓扑关系、参数化设计和二次开发的基础。然而越是灵活便捷的宏命令,其解析难度越高。所以本课题通过对宏命令解析方法研究,将每一条宏命令分解为多个子元—Token。每个Token可分为字符型、符号型(+-*/等运算符号)和数字这三类。当遇到字符型数据时,可转换为函数名或模型名称。若是函数名,则调用系统相关函数;若是模型名称,则查询几何模型数据库和舱室模型数据库中模型,并建立查询所得模型与参数化模型的拓扑关联。其中,几何模型数据库和舱室模型数据库中的模型可以预先添加建立,也可通过接口函数直接生成。

图1 宏命令解析流程图

1.3 舱容计算结果的自动刷新机制

舱容分析计算是舱室设计中重要的一环。但舱容计算结果在实际工作流程中往往会与舱室几何模型版本不一致,而其主要原因不仅仅是缺乏舱容计算结果与舱室模型之间的拓扑关系,更是缺乏行之有效的自动刷新机制。所谓的自动刷新机制是一种通过一组用于确定设计对象的参数和拓扑关系,当这些关系中的某些参数发生变化后,整个设计对象也会自动随之发生相应改变的机制。因此,为将该机制应用于舱容分析计算,需采用全局计数器的方法来记录舱容计算结果、舱室模型和几何模型等数据模型的更新时间与修改时间(其中全局计数器的计数方式为任意模型执行新建或更新操作的次数),进而形成独立的时间轴。

由于在建立舱室模型时,舱容计算结果已关联到舱室模型,舱室模型也已关联到舱室定义时使用的几何模型,从而能形成一条时间链。所以当查看舱容计算结果时,系统能自动获得舱容计算结果的更新时间,然后查询相对应的舱室模型的修改时间和所有与该舱室模型有拓扑关联的几何模型的修改时间。当更新时间小于任意一个修改时间时,自动刷新舱容计算结果,其流程见图2。

图2 舱容计算结果自动刷新机制流程图

2 舱室模型的数据结构设计

舱室模型主要由三部分组成:舱室信息、舱室几何体模型和舱容计算结果。其中,最主要的就是舱室几何体模型,但仅用外形尺寸难以描述机舱等舱室的复杂几何形状,所以舱室定义数据的表达方法尤为关键。传统的表达方法通常有以下三种:

(1)取平均截面作为近似;

(2)用一组能近似表达各断面形状的有序离散点来表达;

(3)对舱壁曲面进行描述。

第一种方法虽然简便,但无法真实反映复杂舱室的几何形状。第二种和第三种方法虽然都能准确表达各类舱室的几何形状,但这两种方法的输入数据需求量与断面形状准确性成正比,所以即使采用宏命令技术也较难简化工作量。因此,为融合基于宏命令的参数化设计方法,需提出一种能同时适用于舱室定义的复合数据结构和宏命令技术的定义方法。

船舶舱室是一个三维立体模型,在X、Y、Z方向都应有边界限制,而作为限制的参数能通过宏命令引用主甲板、纵横舱壁、船体曲面等大表面模型来描述。我们通过研究后提出舱室定义数据的表达方法是以“X ”、“Y ”和“Z ”作为标示符,以“>”和“<”作为运算符,再以复合数据作为限制参数(如“X>0”,“X<#10+0.1”,“Y>0”,“Y<船体曲面”,“Z>0”和“Z<主甲板”)。

通过结合上述定义方法和舱室模型的数据需求,设计研究所得的舱室模型数据结构如图3所示。在舱室信息中记录舱名、舱室类型等基本信息,舱室几何体模型不仅需要记录六面边界定义参数和沿船长方向分布的横剖面形状,还需记录拓扑关联的各类模型,从而使舱容计算结果能自动刷新舱高、容积、形心坐标等数据。

图3 舱室模型的数据结构

3 舱室参数化设计软件功能模块的实现

在船舶舱室设计过程中,主要的工作有舱室定义、舱容计算以及绘制舱室布置图。本文实现的舱室参数化设计软件的用例图如下页图4所示。考虑到在舱室设计过程中,出图工作不仅繁琐枯燥,还需要根据设计状态改变持续更新,因此增加了能根据输入的舱室定义信息自动生成并以DXF文件格式输出的舱室布置图功能。该功能通过调用舱室模型数据库中的数据,结合特定的剖切面方程组,对全船舱室自动剖切,从而生成用B样条表达的横向、纵向或垂向舱室边界线,并标注剖切位置,见图5。

图4 用例图

图5 舱室布置图

4 结 论

本文以某艘集装箱船为实船算例,首先根据图纸编制宏命令,并应用软件接口建立全船舱室,其工作效率优于传统定义方法;然后通过人机交互修改舱室定义信息,软件能自动更新舱容计算结果。经多次测试证明,本软件能完全融合基于宏命令的参数化设计方法,从而提高船舶设计阶段中舱室设计等工作的质量,并有效解决传统设计分析软件所存在的重复建模、模型和数据不一致等问题。

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

[2] 顾晓华,仲梁维. 基于知识工程的参数化设计[J]. 机械设计与制造工程,2001(7):17-19.

[3] 黎旭,龚春林,谷良贤,等. 基于CAD的半解析参数化几何建模方法[J]. 计算机与现代化,2014(4):1-7.

[4] LU Cong-hong,LIN Yan,JI Zhuo-shang. Virtual tanks division and capacity calculation based on NURBS shipform[J]. Journal of Ship Mechanics,2007(3):435-443.

[5] 田中旭,陈晓川. 基于型值点的舱容计算[J]. 机械设计,2006(8):25-27.

On parametric design and program of ship cabins

LIU Zhen-ming SUN Miao
(Marine Design & Research Institute of China, Shanghai 200011, China)

The design and calculation of ship cabins are tedious in the process of ship design. Moreover, the continuous updating during the iterative design process will cause many problems, such as repeated modelling and inconsistent results between the analysis and cabin modelling. The method for the parameter design of ship cabins is explored by the investigation of the compound data structure, the parameter design method based on the macro command and automatic refreshing mechanism combining with the characteristics of the ship cabin. The calculation results of large surfaces, cabins and tank capacities can be topologically connected to achieve the quick cabin modelling and automatic updating of tank capacity, etc. The parametric design of ship cabins is fi nally programmed with independent research and development.

cabin defi nition; parametric analysis; macro command; compound data

U662,TP391.72

A

1001-9855(2017)02-0027-05

10.19423 / j.cnki.31-1561 / u.2017.02.027

2016-09-02;

2016-09-19

刘朕明(1988-),男,助理工程师。研究方向:船舶初步设计系统开发。孙 淼(1987-),女,助理工程师。研究方向:船舶初步设计系统开发。

猜你喜欢
舱室数据结构计算结果
船舶舱室通风控制策略研究
舰炮弹药连续内爆对舱室毁伤效应的仿真分析
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
“新永安”号客滚船整体舱室空调系统设计
为什么会有“数据结构”?
趣味选路
扇面等式
求离散型随机变量的分布列的几种思维方式
谈数据的变化对方差、标准差的影响