Smart 3D船舶设计软件开孔管理系统研发
2021-02-27田榴敏张士超王德禹
肖 赟, 田榴敏, 张士超, 王德禹
(1.上海交通大学船舶海洋与建筑工程学院,上海200240;2.上海外高桥造船有限公司设计一部IT技术室,上海200137)
0 引 言
大型邮轮称为世界造船“皇冠上的明珠”,设计建造国产大型邮轮已成为造船强国的重要标志之一。国内首艘大型邮轮设计建造采用Intergraph Smart 3D 三维设计软件,Smart 3D(以下简称S3D)是鹰图PP&M的新一代三维工程设计解决方案,在船舶设计建造过程中覆盖各个领域,提供了基础的建模、出图、生产信息输出等功能,且有着先进的底层技术,支持用户对其功能扩充,是一套全面的智能解决方案。邮轮的3D设计的独特性和船厂自身设计生产条件对S3D 设计软件产生一系列的特定需求,这些需求要通过二次开发予以实现,邮轮的开孔管理系统便是其一。
船舶生产设计过程中,船体结构舾装开孔是船体专业与舾装专业协同设计的重要组成部分,在协调开孔过程中各专业会形成大量的数据,而这些数据掌握在各专业手中,并未在S3D 设计软件中统一管理,因此形成信息孤岛,从而无法保证设计数据的准确性与及时性,给协同设计带来滞后性。船体结构开孔是船舶设计建造过程中的基本操作,但对船舶的建造效率有着重要影响,结构预开孔率的提升,减少现场手工开孔,且将工序前移,减少船舶预舾装时遇到的障碍。面对国内首艘大型邮轮的设计建造,由于大型邮轮结构和系统的复杂性,功能的特殊性,其开孔量较于一般船舶大大提升,开孔数据的管理显得尤为重要。
本文通过对S3D 设计系统二次开发能力以及船舶跨专业协同设计的分析,研发出基于S3D 船舶设计软件开孔管理系统,针对性强化3D 设计软件在邮轮设计方面的功能和设计效率,以数字化、信息化为导向,满足大型邮轮数字化设计的需要,提升大型邮轮的3D 生产设计技术水平,形成大型邮轮的自主建造和实现我国大型邮轮发展的战略目标提供保障。
1 S3D设计系统二次开发
1.1 S3D设计系统二次开发架构
S3D 软件系统二次开发功能系统也是基于Microsoft.NET技术构建,利用.NET FrameWork 划分成两层结构,客户层和中间层,如图1 所示。
图1 S3D系统.NET FrameWork 开发框架图
客户层即表现层,主要功能为显示数据和接受用户传输的命令,在S3D系统中表现为菜单、工具箱、可视化工具以及对话框等。用户可以熟练地在GUI 中对诸如SelectSet服务、图像窗口以及包含定位器,标注工具,视角操作等在内的软件支持构件进行交互操作。基于S3D的开孔管理系统为了实现以上操作,需要在客户层进行定制开发,即系统必须在S3D 运行环境下工作。
中间层,即逻辑层,在该层内命令可以直接对模型对象进行操作,例如,舱壁、甲板、管子、电缆、主机等,这些对象均被划分到了中间层。对象间存在相互联系,关系定义了模型对象间的交互方式。S3D 关系管理系统(Relationship Management System)是一项专利技术,其作用是当交互对象中的一个发生变化时,关系会做出相应的反应确保相应的完整性以及数据的连续性。基于S3D的开孔管理系统需分析利用中间层提供的API接口,对交互对象进行逻辑处理,完成开孔管理工作。
数据访问层,S3D 以SQL Server 和Oracle 大型关系型数据库为数据平台,为客户层与数据层提供数据支持服务,中间层可通过调用该层接口对数据进行增删查改的操作。
由此分析,在.NET环境下利用3 层架构构,将各层功能分离开,分别设计,互相解耦,,使设计更加便捷,并且易于分工合作[1-2]。
1.2 S3D设计系统二次开发工具及其语言
S3D二次开发框架由于采用.NET FrameWork 框架平台,.NET 开发语言同样是应用最广泛的应用程序开发语言(如C#、VB.NET等)。.NET FrameWork平台,提供了大量的.NET 开发类库接口,这就为使用.NET程序开发语言进行S3D 二次开发提供了不少便利。利用其提供的接口基类和实例化工具,用户在Visual Studio.NET 开发环境按照不同的用户需求,可以开发功能强大的应用程序并集成到系统中。
1.3 S3D设计系统二次开发API接口
S3D中基于.NET的API包括两大类(见图2),第1 类处于客户层,所涉及到的dll 文件主要有:CommonClient DLL; SP3FrmDeHelper.dll;CustomFormDefinition Controls.dll.。第2 类处于中间层,所涉到的主要文件有:CommonMiddle.DLL;SystemsMiddle.DLL; Ref DataMiddle.DLL;CommonRouteMiddle.DLL; Grids Middle.DLL;SpaceMiddle.DLL; SupportMiddle.DLL;SmartPlantStructureMidde.DLL。
这些API的主要作用:
(1)允许用户使用VB.net、C#或任何.net语言编程,编写交互式自动化环境和非交互式自动化定制,即文献[3]中提到的Command 开发与Standalone 开发,Command开发面向客户层开发,嵌入S3D,参与用户交互。Standalone 开发面向中间层开发,独立于S3D运行环境外。
图2 S3D基于.NET的API接口
(2)允许用户可以自定义规则,如命名规则/符号/IFC规则等,文献[4-5]中通过优化IFC 规则,减少不必要的碰撞检查,减轻主程序加载负担。
上文指出基于S3D 的开孔管理系统需在客户层与中间层中做开发,就确定了其开发方式为Command。通过对S3D 设计系统二次开发能力的分析,可知S3D 设计系统的二次开发可借助其开发框架,利用.NET开发语言(C#、VB),开发出其API 支持范围内的Command程序。
2 船舶跨专业协同设计
船舶生产设计是一项复杂且涉及多个领域的综合性工作,其中包括了船体、轮机、电气等专业设计,且各专业又包括设计、校队、审核等不同的设计任务。各专业设计任务既是相互独立,又是相互依赖,因此在设计过程中需加强各专业之间的协作,解决冲突,以缩短产品的设计周期,提高设计质量。
2.1 船舶跨专业协同设计
(1)船舶跨专业协同设计定义。船舶跨专业协同设计是指不同专业、不同身份的技术人员利用计算机在同一个项目内,各自负责相应的设计任务,且设计任务处在并行交互的状态下进行,最终取得理想的产品方案的设计方法[6-7]。
(2)船舶跨专业协同设计关键点。根据船舶跨专业协同设计的定义,可以得知其包含4 个关键元素,即组织、人员、任务流程和最终方案。以这4 个关键元素为出发点,需解决以下关键点:① 人员与组织管理。船舶设计部门包含多个船体、轮机、电气等多个专业科室,而专业科室又细分为多个专业小组。将不同专业、不同身份的人员组织起来,赋予相应的角色与权限统一管理。②设计流程管理。不同专业有各自的设计、校队、审核流程,分析各专业流程,形成满足各专业协同设计的流程,将其流程固化。各专业人员按照赋予的角色与权限进行任务操作,将任务推进,直至任务结束。③数据管理。协同设计过程中必会产生大量的数据,其中包括设计新建数据与设计变更数据,将数据及时归档,从而便于数据的保管与设计的可追溯性。
2.2 船舶跨专业开孔协同流程
船体专业与舾装专业的开孔协同是一个不断进行信息互换的过程,舾装专业向船体专业提供开孔申请单,船体根据规范对船体结构预开孔,同时将不满足规范要求或不合理的开孔请求反馈给舾装专业,舾装专业对开孔信息进行修改更新后,重新提交船体专业审核。这是不断循环的过程,直至形成最终方案。文献[8]中分析了AM软件的开孔管理流程,文献[9]中分析了基于国产自主软件SPD 船舶设计和建造系统开发的开孔管理,参考不同设计软件的设计思路,基于S3D的开孔管理系统以开孔申请单贯穿整个流程并将此流程固化到软件中,形成基于S3D 的开孔管理系统的运转逻辑,结果如图3 所示。
图3 开孔管理系统的运转逻辑图
3 开孔管理系统设计
3.1 开孔协同管理数据库设计
根据船舶跨专业开孔协同流程分析的结果,需建立供船舶各专业使用的开孔专用数据库,用来储存开孔中间过程信息,信息主要包括开孔协同人员信息和开孔协同管理信息两大类。开孔协同人员信息包括id、专业、角色等标识其身份的信息。开孔协同管理信息包括开孔联系单标识、开孔位置标识、开孔联系单状态,开孔状态及各类日期信息等。根据数据库的设计范式[11],在S3D采用的Microsoft SQL Server关系型数据库中建立开孔专用数据库,如图4 所示。
3.2 开孔协同处理规则制定
为了规范开孔流程,确保开孔数据准确性与及时性,实现各专业信息共享,制定开孔协同处理规则:
图4 开孔协同数据库ER图
(1)用户登录后,根据账号信息检测账号类型,进行相关的业务流程,以满足不同专业的业务,防止越权操作引起的设计失误。如果是舾装人员登录,可进行创建开孔联系单、待办开孔联系单和打开开孔联系单;而船体专业可进行接收开孔联系单、待办开孔联系单和打开开孔联系单;打开的开孔联系单只能是只读状态,不允许修改。
(2)开孔联系单的流程状态包括未提交、已提交、设计审核、舾装审核、船体审核、完结6 种状态,此流程串行进行。
(3)开孔联系单的生命周期包括Working、InReview、Reject、Approval、done 状态,其中只有是Working状态时,3D模型对象才能够被修改。
(4)船体专业针对开孔对象只有两种操作:开孔与补孔。
3.3 开孔快速定位与模型关联
文献[3]中分析了S3D.NET 提供的Business Object基本类,其包括了Plate、Pipeline、Profile、Line3D等S3D常见的船舶设计对象,并提供相应的访问和修改对象的方法,应用程序可通过继承该类扩展模型对象和开发接口。
舾装专业提出的开孔请求需要在3D 模型中反映出来,可通过在S3D 中打开HoleManagement 模块,调出开孔范围内的船舶3D 模型,点击需要开孔的船体模型及穿过船体构件的舾装模型,经过布尔运算生成Hole Trace 预开孔线对象,Hole Trace 对象继承于BusinessObject,不仅包含开孔的必要的几何信息,而且还包含了开孔的拓扑结构和OID 信息,OID 是模型对象的唯一标识。以Hole Trace 对象为导向,通过S3D提供的Repository Browser可以查看Hole Trace对象的现有关系及实现接口,如图5 所示。通过这些关系开发接口,将Hole Trace 对象与开孔申请单关联,并将Hole Trace对象和拓补模型OID信息记录到开孔管理系统中,来实现开孔信息流的记录。当发生设计新增与设计变更时,根据记录的信息可以帮助用户快速定位开孔位置,调出相应模型审核,进行开孔/补孔操作。Hole Trace 在船体构件上开孔,会在船体构件对象节点下产生Cut 对象,同理再利用Repository Browser 查看Hole Trace 对象的关系,根据当前Hole Trace 是否关联到Cut对象来区分已开孔和未开孔。
图5 HoleTrace对象关系图
3.4 工程实例
基于以上的研究内容,研发出基于S3D 船舶设计软件开孔管理系统,并于邮船生产设计过程中应用。主要界面如下:
(1)设计业务界面,如图6 所示。其主要功能包括:①根据登录账号类型及权限,显示相应的业务画面;②开孔联系单的建立、接收、发布与开孔,并更改开孔联系单的流程状态。
图6 舾装设计用户界面
(2)校核业务界面,如图7 所示。其主要功能包括:①开孔联系单的分类;② 各专业对开孔联系单的审核过程,并更改开孔联系单状态;③ 通过开孔联系单记录的信息快速调入相关模型(按分段、专业、开孔联系单调入模型)。
依据邮轮的业务现状和各专业后端的数据需求,分析船舶跨专业协同设计流程和S3D 设计系统二次开发能力,基于S3D 二次开发架构,结合S3D 软件提供的API接口,研发出基于S3D船舶设计软件开孔管理系统。该系统通过直连大型关系型数据库,对开孔生命周期进行管理,实现船体生产设计数据的有效协同和数据统一。加强各专业协同设计能力,以流程驱动开孔申请单,在流程节点中对开孔申请单生命周期,确保了开孔准确性、流程可控、历史可追溯,提高了结构预开孔的开孔率,更好地辅助邮轮设计。
图7 校审业务界面
3.5 基于S3D二次开发建议
(1)系统分析。分析理解系统的基本需求,确定其框架,确定开发方式。Command 开发、Standalone 开发或是自定义规则开发。
(2)系统设计。主要任务是系统的总体设计,如画面、规则、数据库设计等。
(3)熟悉S3D 中模型对象的数据结构与数据对象描述,如类、接口、属性、关联等,利用MetaDataBrowser 查看模型对象的实现接口,如图8所示。
图8 S3D对象描述图
(4)利用RepositoryBrowser 查看模型对象的关联关系,可以帮助用户迅速找到对象的实现接口。
4 结 语
S3D是一套优秀的三维建模及可视化解决方案,基于S3D的开孔管理系统是获得S3D 三维设计优势的同时提高其设计效率,使其更加用户化与专业化。目前三维设计技术正在推动造船工业的设计手段、运行模式、管理方式等各方面的变革,S3D应用的深度与广度将对邮轮综合建造水平的高低起到决定性的作用。随着我国大型邮轮的自主建造和国内船舶制造业产业升级,用户的邮轮设计建造需求会不断增长,对S3D软件进行二次开发是非常必要的,且随着邮轮旅游市场不断增长,S3D 作为国内首艘大型邮轮设计软件将会面临更广的应用,其二次开发也将面临更多的需求与挑战,通过二次开发项目的实施以满足大型邮轮数字化设计的需要,也为大型邮轮国产化奠定技术基础。