自主PDM数据建模方法及CAD集成

2024-03-25 09:15王晓晗肖鹏安宋达李晨威姚素新
机械工程师 2024年3期
关键词:图形化图表符号

王晓晗,肖鹏安,宋达,李晨威,姚素新

(中国舰船研究设计中心,武汉 430064)

0 引言

目前,在船舶行业,国内主要的研究所、造船厂严重依赖国外工业软件,卡脖子问题十分突出。在船舶产品数据管理(Product Data Management,PDM)领域,国外美国PTC公司的Windchill、法国达索公司的Enovia、德国西门子公司的Teamcenter等产品占据垄断地位,为了实现船舶核心设计数据自主可控,国内多家企业研发了自主化的船舶工业软件。在国家政策的引导下,国内自主化船舶工业软件迎来发展机遇期。为满足自身的船舶设计产品数据管理需要,中国舰船研究设计中心研发了完全自主化的国产PDM软件海云PDM。

PDM软件主要用于管理产品设计过程中产生的大量设计、制造数据,通常需要用数据建模工具对这些数据进行建模,实现数据的抽象管理。国外一般用独立建模工具进行数据建模,海云PDM中集成了完全自主化的图形化建模工具,支持统一建模语言UML(Unified Modeling Language)类图建模、BPMN(Business Process Model and Notation)工作流建模等多种模型,实现了从图形化建模到逻辑代码生成的一体化流程。同时,海云PDM与国产三维设计软件SPD进行了数据集成,实现了三维模型数据的存储与管理。本文对海云PDM中的数据建模与三维数据集成管理的实现过程及功能进行了深入研究。

1 图形化建模管理

目前,国外主流的UML建模工具Visio、Enterprise Architect、Rational Rose等都是基于图表类型从用户的角度去定义和作业的。建模工具一般从最基础的符号甚至一个简单的图形开始定义,并根据定义好的基础符号向上纵向、横向扩展,不断增加符号的复杂度,并通过不同符号的组合提高符号的表达能力[1]。

在传统的方法中,主流图形化建模工具通过可扩展标记语言(Extensible Markup Language,XML)或JavaScript对象简谱(JavaScript Object Notation,JSON)格式的数据存储整个图表。在本文的方法中,通过数据库对象化地存储单个图形元素,再关联到图表对象,实现对单一图形元素的实时调控。单独定义的图形元素支持横向扩展,可以实现多种图形化建模功能,例如UML类图建模、BPMN工作流建模、SQL语法器建模等。

1.1 符号分类库

符号分类库用于定义符号,对符号进行分类管理,确定符号在画布展示的样式。首先,完成符号管理的建模,按照目录、符号类别、符号组件的结构对符号进行分类管理;其次,完成符号定义,支持对符号的注册及样式属性配置,使符号分类库具备定义、扩展领域模型的能力;最后,通过mxGraph插件支持符号的可视化展示及符号样式的管理。

定义符号的过程 如 下:1)在符号类别下新增符号;2)判断新增的符号图形是否是mxGraph中已有的图形,若有则是直接使用mxGraph中的图形,否则需画矢量图注册图形,确定符号的形状;3)定义符号样式,确定图形样式信息;4)确定符号名称、宽、高、图标等基本信息;5)将完成定义的图形符号拖动到画布上进行展示。

1.2 符号配置库

在符号定义完成后,需要在符号目录下按规范定义图表类型。例如UML下有类图、用例图,BPMN下有业务流程图等,不同的图表所包含的符号各不相同。符号配置库用于定义图表类型,在图表与符号之间建立关联,动态配置图表所需的符号组件,其功能主要包括定义图表类型和动态配置符号两部分内容:1)定义图表类型。对图表建模,在图表目录下关联新的图表,按照图表目录、图表类型的结构对图进行管理。2)动态配置符号。根据图表所属的目录,筛选该目录下所有的符号组件,可任意选择符号组件,为新增的图表配置所需的符号。

符号配置库实现了自定义图表及图表中符号的动态配置。如图2所示,在海云PDM的图形化建模工具中配置符号过程如下:1)选中需要配置的图表类型,并选择符号;2)在该目录下所有的符号组件中,选择需要配置的符号。

1.3 图形化工具

结合符号分类库与配置库,图形化工具支持在创建不同类型图表时,获取不同图表所关联的符号组件,生成不同环境的画布,拖动符号组件进行画图。

图形化工具的模型涉及点、线与图,线代表点与点之间的连接关系,图是点和线的集合,这三者都属于符号。点和点之间的关联记录了点的父子关系,父节点可以包含多个子节点;点与线之间的关联记录了线的源顶点和目标顶点;图与符号之间的关联记录了图中包含的所有符号。

图形化工具支持对图的保存和解析功能。保存功能不使用传统的XML格式文件存储,而是将图形存储至数据库中管理,实现对单一图形元素的实时修改与调整。解析功能是将图形化元素模型转换为对应业务应用模型,实现语义的转换功能。

图形化工具利用JS库中的mxGraph插件将符号分类库和符号配置库图形化地表达出来,具体操作过程如下:1)选中不同类型图表进行创建;2)根据配置库中的数据,获取图表关联的符号组件,并生成对应的画布环境;3)拖动符号组件到画布中进行画图,不同组件根据符号分类库中定义的样式进行展示;4)将图形信息保存到数据库中;5)解析图形,将图形信息转化为业务模型,如工作流模板、类实体等。

图3展示了按上述操作所画的工作流两级审签模板。

2 Rational Rose集成

Rational Rose是目前使用广泛的专业UML建模工具之一,也是UML标准制定者开发的软件,其完全符合OMG(Object Management Group)组织提出的UML建模规范[2]。同时,Rational Rose还支持UML模型校验功能,可以自动检查出模型的逻辑错误。

本文将图形化建模工具导出的XML模型文件导入Rational Rose中,如果导入的模型能被Rational Rose正确解析,就证明海云PDM原生的建模工具同样符合UML标准建模规范,这对于海云PDM建模器的标准化和后续集成扩展具有重要意义。

2.1 UML模型数据导出

将海云PDM系统与Rational Rose集成时,需要将海云PDM系统中的模型数据以XML格式文件的形式传入到Rational Rose中进行处理。使用图形化建模管理工具建立的模型包括域、实体和实体之间的关系等类型,分别与标准UML模型中的包图、类图和类之间的关系相对应[3-5]。

海云PDM提供一个接口,可将上述的模型数据以域为单位,通过XML的形式导出。XML是一种优秀的结构化语言,能够清晰地表达UML模型属性和关系[9]。导出的模型数据信息包括域名、域与域之间的层级关系、域下的所有实体、实体包含的属性与方法,以及实体与实体之间的关系(包括继承关系与关联关系)。

图4中展示了接口导出的XML信息,其中:root是根节点;domains为所有域的集合;domain记录了域的全部属性信息,包括名称(name)、内容(content)、描述(description)、路径(path)、识别码(sn)、类型(type)等;combineTag属性记录了domain的层级结构;concepts为所有实体的集合;concept记录了实体类的信息,实体下的属性信息与domain基本相同;combineTag记录了实体下的属性的详细信息;linkTag属性记录了实体之间的继承与关联关系。

2.2 Rational Rose解析模型数据

Rational Rose提供一套API,可以使用Visual Basic语言新建类图、包结构、类结构、类属性及类之间的关系等。通过Visual Basic语言在Rational Rose中编写脚本插件,访问海云PDM的导出接口,获得XML结构数据。在Rational Rose内部解析数据,将获得的模型信息按照UML标准对应生成Rational Rose中的包结构、类结构、包图、类图等,实现了在Rational Rose中对海云PDM系统模型的浏览查看。

调用海云PDM系统的接口,将生成的XML文件以responseXML类型接收,获得XML格式数据的脚本,如图5所示。

2.3 数据对比

以系统中的Thing、GraphType、Component类为例,这3个模型在海云PDM中建立的类图、类属性、类之间的关系如图6所示,Rational Rose解析导入的XML文件后自动建立的模型如图7所示。对比两者后可以发现,包图、类图、类属性及类间关系基本一致,证明系统中建立的模型符合UML标准规范。

3 三维CAD数据集成

船舶行业是一个涉及众多专业的庞大系统,设计建造过程中生成的零部件数目众多且复杂性高。同时,不同专业的船舶设计研究所和造船厂所使用的船舶设计建造软件往往是不同的,这大大增加了船舶在设计建造过程中信息交互的难度,无法做到设计生产之间的协同[10]。

因此,在当前船舶设计研究所与造船厂分离的研制模式下,PDM和CAD的信息交换和数据共享是十分必要的,本文重点讨论海云PDM与沪东中华造船(集团)有限公司研发的三维CAD软件船舶产品设计(Ship Product Design,SPD)系统的数据集成[7-8,16]。首先,本文通过分析SPD的三维模型数据结构和模型数据之间的关联关系,得到抽象化的UML模型视图。其次,根据分析结果在海云PDM中建立SPD模型数据结构的数据模型,实现三维模型数据的持久化存储。最后,基于海云PDM开发出三维模型数据的浏览界面。

3.1 三维模型数据结构分析

SPD三维模型数据抽象分为基础库、标准部件、零部件(包括管系、铁舾、风管、电缆专业)3部分内容,根据抽象分析结果,用UML模型表示每块内容中的SPD数据层次结构及数据关系,采用此类方法对SPD各个专业模型的数据进行持久化集成。

典型的基础库表数据结构如表1所示。

表1 典型基础库表数据格式

基础库包括区域、舱室、托盘、涂装、表面处理、电缆标准、管路系统等,涵盖船舶各个专业的基础数据。

标准部件按照系统内码表进行分类划分,所有标准部件从部件基类扩展划分,部件基类具备专业、来源、船级社定义表、表面处理定义等属性。以管系标准部件中的管子为例,管子由部件基类扩展,下面划分为其它(PVC,玻璃钢)、船用无缝钢管、黄铜紫铜管、耐热钢管、不锈钢管、铜镍铁管、簿壁管、铝合金管等标准部件。

零部件数据中含标准部件内码表示属于标准部件的装配,各专业零部件由零部件类型扩展,本文中解析的零部件专业包括管系、铁舾、风管、电缆,其中管系零部件有管零件、设备、管部件、管附件、紧固件等类型。

3.2 三维模型数据建模

根据SPD三维数据模型的分析结果,用UML模型图表示基础库、标准部件、零部件的数据层次结构及数据关系。如图8所示,基础库表以船舶专业为分类标准,分别梳理了各专业类型及关联关系,基础库表BasicType的子类有专业、来源、船级社定义表、涂装、表面处理、区域、舱室、托盘、甲板、螺栓螺母标准定义表、管路系统定义表、电气系统、电缆类别、电缆原理、电缆标准、材质,其中电气系统和电气子系统之间有关联关系,托盘和图号之间有关联关系。

根据已梳理的UML模型图,试用海云PDM中的图形化建模工具建立基础库表的实际数据模型。图9中基础库表BasicType和其子类的继承关系,其中还包含托盘和图号之间的关联关系;图10中新建了范围(Range)类、位置(Position)类,主要用于体现Block类、Zone类、Pallet类和Range类的关联关系,Pallet类和Block类有关联关系,Cabin类和Position类也有关联关系。

图1 定义符号流程图

图2 配置库界面

图3 工作流模板

图4 导出的XML格式数据

图5 VB语言调用接口获取XML数据

图6 海云PDM中的模型

图7 Rational Rose中的模型

图8 基础库表关系图

图9 基础库表建模一

图10 基础库表建模二

3.3 三维模型数据持久化

数据持久化技术是将应用系统中的对象数据通过ORM(Object Relation Mapping,对象关系映射)映射到关系数据库中,使应用系统中的数据对象与关系数据库中的记录建立一一对应关系。

对象关系映射一般包括属性映射和关系映射两方面内容。属性映射是根据应用系统中对象属性的类型在数据库中将其实现为一个物理属性或虚拟属性(不在数据库中存储,通过应用程序操作返回具体值),本文采取的方法是将一个类中的所有属性映射到数据库中的一张表中。关系映射是指将应用程序中类与类之间的关系持久化到数据库中,其中类与类之间的关系包括继承关系、聚合关系和关联关系[6]。

以结构专业为例,SPD三维模型数据的持久化首先需要定义抽象类SPDObject数据模型,其属性包括唯一表示符oid,海云PDM中的其他SPD模型都需要继承该抽象类,共同拥有SPD对象属性。根据专业需要分别单独定义总段、分段、船型基本信息、区域、船体装配件、船体零部件等结构专业数据模型的特有属性。在完成结构专业数据模型的定义后,为数据模型和属性添加保存、修改、删除的操作方法,实现数据模型的动态操作。

3.4 三维模型数据浏览

在三维模型数据持久化的基础上,通过海云PDM的MDA(Model Driven Architecture)架构可以实现结构专业信息浏览、零部件关联关系浏览、模型详细信息浏览等顶层功能。海云PDM中还集成了基础库的数据展示界面,用于展示基础库表BasicType下所有子类的数据。如图11所示,用户通过XML文件导入基础数据,界面左侧树结构展示了所有的基础库表类型,点击某个类型,右边会显示表格,展示选中类型的所有数据。

图11 基础库表数据浏览界面

4 结语

本文研究了PDM数据建模和PDM与CAD集成等内容。在海云PDM中实现了完全自主化的图形化数据建模工具,并且与主流UML 建模工具Rational Rose集成,使自主化建模工具符合UML标准规范,提高了建模工具的通用性。通过分析SPD的三维模型数据结构,实现了海云PDM与国产三维CAD的数据集成,将SPD三维模型的专业数据持久化地存储到海云PDM中,实现在PDM中管理三维CAD数据。

猜你喜欢
图形化图表符号
学符号,比多少
“+”“-”符号的由来
LKJ自动化测试系统图形化技术研究
变符号
双周图表
双周图表
双周图表
图表
运用图形化听写式复习,构建高效地理课堂
图的有效符号边控制数