吴冬冬, 马晓平, 赵 旭
(1.江苏科技大学 船舶与海洋工程学院,江苏 镇江 212100;2.江苏现代造船技术有限公司,江苏 镇江 212003)
2021年国际新造船市场活跃,新船订单相比2020年增加超过80%,集装箱船和液化天然气船新订单量表现优异[1]。随着造船和海洋工程设计系统(AVEVA Marine,AM)软件在船舶行业的广泛应用,对推进船舶建造管理现代化与高效化和生产设计内容不断加深均具有较大的促进作用[2]。
船舶三维软件大多由国外直接引进,由于操作和习惯上的不同,因此需要对软件进行二次开发[3]。马晓平等[4]和顾颖[5]针对舱室曲面绝缘和型材绝缘快速建模对AM进行二次开发,取得良好的成效。逯涛[6]基于AM开发报表输出程序、曲加工自动出图程序、余料管理程序、拼板自动出图程序,较好地解决实际生产中的问题。AM软件功能强大,但居住舱室建模功能存在流程多、操作复杂和建模效率低等问题。为满足实际工作需求,对AM进行有针对性的开发不可或缺。
AM软件居住舱室创建过程如下:①依次点击主菜单栏上的Create和Building,在Building Block Tasks Form的Create区域点击Building Block,创建居住区域;②依次点击主菜单栏上的Create和Level,在Building Block Tasks Form的Create区域点击Building Level,创建居住层;③依次点击主菜单栏上的Create、Room和Definition/Standard,在Main Room Task的Create区域点击Room,创建房间;④点击Floor Covering和Ceilings,创建地板和天花板;⑤点击CTWALL和Furniture,创建恒厚墙(Constant Thickness Wall,CTWALL)和家具,其中,家具的创建在AM软件的Paragon模块中。
从创建居住区域到添加家具需要60多个步骤,不包括在Paragon模块中添加家具的操作和一些步骤的重复操作,非常不利于设计人员的使用。
AM软件支持多种语言开发方式[7],并引入对.NET技术的支持,开发者可在可编程宏语言(Programmable Macro Language,PML)程序中直接调用.NET程序,或在.NET程序中调用PML代码。AM软件提供一系列.NET应用程序编程接口(Application Programming Interface,API),使开发者可在直接引用相关的动态库后直接使用API进行C#编程。AM软件提供的API可帮助实现软件绝大部分的功能,交互界面可用Visual Studio完成,并可直接加载至AM软件的窗口中。.NET平台具有较多的第三方资源,例如DevExpress[8]等,开发者可完全使用C#进行编程[9]。
居住舱室快速建模开发流程如图1所示。居住舱室存储层级如图2所示。
图1 居住舱室快速建模开发流程
图2 居住舱室存储层级
2.1.1 创建参数化居住舱室
参数化定义舱室是居住舱室快速建模的基础,通过预定义舱室面板的长(length)、宽(width)和厚(thickness)等参数完成对面板(Panel)的创建。AM居住舱室建模在Outfitting模块中进行,存储在WORLD-SITE-ZONE-STRU-FRMW数据结构下,模型信息包含面板尺寸、位置、方位和材质等。舱室创建流程如图3所示。
图3 舱室创建流程
(1)创建面板。实例化面板并确定其所存储的位置,通过代码完成对居住舱室舱壁、地板和天花板不同存储层级的创建。创建面板环点,较常见的为四点面板,地板和天花板以舱室顶部和底部的轮廓为创建基础,通常为不规则面板。定义面板厚度,居住舱室舱壁厚度通常相同,但地板和天花板厚度不一致,需要对每块面板进行单独设置。
(2)调整面板朝向。在完成面板创建时,面板均为同一朝向,如图4所示。需要对部分面板进行方位调整。通过三维坐标变换矩阵代码可实现对面板正朝向方位的改变,有些面板与x、y和z轴成一定角度,应进行特殊处理。在完成面板调整方位后,需要注意此时(0,0,0)点相对于面板的位置。(0,0,0)点坐标值的调整关系面板具体摆放位置,是组成居住舱室定义的关键。
图4 面板尺寸定义
(3)约束面板摆放位置。对于一间已明确具体形状的舱室,可通过参数化预定义各面板之间的位置关系。通过合理组合和运用参数可帮助创建平直面板舱室,舱室库的创建为后期设计人员实现居住舱室快速建模提供支撑。
2.1.2 创建参数化家具
家具参数化快速建模开发流程如图5所示。
图5 家具参数化快速建模开发流程
(1)参数化定义家具面板尺寸。家具参数化建模需要用户选择想要的家具类型和样式,输入家具的长、宽和高即可完成家具的建模工作。在创建家具过程中,以家具清单的默认模型尺寸为基础,用户可进行微调,以提高家具模型建模的灵活性和通用性。实例化家具面板,家具模型在创建时会基于当前舱室自动生成其存储层级。创建面板环点,家具模型涉及的面板形状较为丰富,主要由四点带倒角、五点带倒角、七点带倒角和圆柱等形状组成。最后定义面板厚度。
(2)调整面板朝向。在AM中调整面板方位与调整拉伸实体面板方位的方法相同,可采用舱室调整方位的方法。
(3)约束面板摆放位置。依家具清单对家具进行创建。所有面板的长和宽均依用户输入的长、宽和高按原家具实际比例进行参数化建模,板厚保持不变。数据存在数倍的差距,对于原尺寸或与原尺寸差距不是太大,建模效果尤佳。
以创建衣柜为例,如图6所示。
图6 衣柜建模
所有家具的摆放位置均默认为(0,0,0)点,不符合实际生产的需求,需要对完成建模的家具进行位置调整。考虑不同舱室同一家具可能存在不同的摆放位置,可通过对每个舱室内的家具组合设置一组定位坐标,实现对家具的初定位,后期仅需要工作人员对家具摆放进行微调即可。
在实际工作中,每个舱室均具有自己的坐标,对居住舱室进行定位是必要的。仅需要获取定位点的坐标,在对居住舱室进行一次坐标运算即可完成整个居住舱室的定位工作。坐标点的获取,主要分为两种方式:①通过用户鼠标点击获取该点信息;②用户直接输入x、y和z的坐标值。
居住舱室快速建模程序界面如图7所示。
图7 舱室快速建模程序界面
居住舱室快速建模步骤如下:
(1)点击CE按钮选择居住舱室需要存储的位置。
(2)选择舱室。
(3)选择舱室家具。
(4)输入和选择居住舱室信息。对于常用的舱室尺寸,可设置一个初始值,以减少重复数据的输入。
(5)点击家具名称后方的按钮,弹出家具选择窗口。
(6)选择家具,出现参数化家具数值输入界面。输入尺寸,点击确定并关闭按钮,完成家具的预创建。界面会自动切换至舱室快速建模界面。每个家具均保留初始尺寸,用户可按需求自行修改。家具快速建模程序界面如图8所示。
(7)舱室定位。完成参数化舱室的数值输入和家具选择,点击定位按钮即可将舱室定位至想要的位置。对于定位坐标值的设置,用户可自行选择定位点或直接输入具体坐标值,如图9所示。
图9 居住舱室定位
(8)生成居住舱室和家具。居住舱室数据填写如图10所示。点击创建按钮即可完成居住舱室和家具的创建工作,如图11所示。
图10 居住舱室数据填写
图11 居住舱室快速建模效果图
以1艘7 500 t风电安装船船员居住舱室建模为例,分别使用AM居住舱室建模功能和居住舱室快速建模开发程序对船上所有程序定义的舱室进行建模,并对建模效率进行对比。使用AM居住舱室建模功能得到的船员居住舱室如图12所示。使用居住舱室快速建模开发程序得到的船员居住舱室效果图如图13所示。建模时间:AM居住舱室建模功能为921 h;居住舱室快速建模开发程序为90 h。后者可节省831 h,效率提升90.22%。
图13 使用居住舱室快速建模开发程序得到的船员居住舱室效果图
基于C#在AM中进行二次开发,实现居住舱室快速建模,改变AM建造居住舱室的模式。通过对居住舱室和家具的参数化定义,用户输入参数或选择数值,即可实现居住舱室快速建模。居住舱室快速建模程序可根据具体船舶舱室需要进行舱室自定义,以实现快速建模。参数化家具库的创建可自由组合舱室内的家具种类,以满足不同舱室对不同家具组合的需求,可为设计人员节约大量设计时间,提高生产效率,最终实现降本增效。