江保军 鲍景明 翟家海 杨明伟
摘要:本文首先对PDMS软件的设备建模方式进行了概述,同时比较了不同设备建模方式的特点,结合PDMS软件的二次开发方法,重点介绍了.NET二次开发技术在PDMS设备建模中的应用,通过典型的示例代码,详细描述了二次开发的流程,与软件自带的设备建模方法相比,通过二次开发,可以大大提高设备的建模效率。
关键词:设备建模;二次开发;PDMS
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2020)08-0160-03
0 引言
PDMS(Plant Design Management System)是英国AVEVA公司开发的三维工厂设计系统,自从1977年第一个PDMS商业版本发布以来,PDMS就成为大型、复杂工厂设计项目的首选设计软件系统。PDMS软件可以通过网络实现多专业的协同设计,针对专业特点划分为多个模块,包括项目管理、元件库、三维设计、轴测图生成等,其中三维设计又包括设备、管道、结构、暖通、电缆桥架等不同模块,配管设计是PDMS软件的强项,而设备建模功能与专业的三维设计软件相比相对较弱。由于PDMS软件开放性较好,可以通过PML或.NET等编程技术对软件的基本功能进行增强和完善,因此,可以通过二次开发技术,改善设备建模的操作方式,大大提高设备建模效率。
1 PDMS设备建模概述
PDMS软件中的设备是由多个基本体Primitive拼装起来的,基本体参考设备定位点生成和定位,構成设备主要的基本体有圆柱、矩形、圆台、圆盘和管嘴等,PDMS软件自身支持的设备生成方法有以下几种:
(1)基本设备模板。基本设备模板包含立式设备、卧式设备、换热器、储罐、空冷和泵等6大类设备,基本设备模板参数不能通过界面修改,通常基本设备模板用来生成设备本体模型,需要再根据图纸要求添加和定位管嘴。
(2)参数化设备模板。参数化设备模板的中可以定义管嘴的信息,但是一旦新的设备基本体组成或管嘴数量发生变化,该模板也不能完全适合,仍然需要进行完善。
(3)搭积木方式。通过逐一建立基本体和管嘴,并完成基本体之间的定位,由于涉及到大量移动、旋转等定位操作,该方式建模效率最低。
(4)读取宏文件或通过软件接口输入模型。读取宏文件的前提是别的项目已经有同样的设备模型,不属于设备建模范畴。而通过软件接口输入第三方软件的模型,在PDMS软件中识别为一个块,需要重新定义管嘴的信息,使用起来并不方便。
2 设备建模二次开发
2.1 二次开发方法
PDMS软件为半开放型的软件,可以很方便进行二次开发,主要的开发工具有PML可编程宏语言和.NET开发平台。其中PML语言简单易学,与PDMS无缝连接,而新版本的PDMS开始支持利用.NET进行二次开发,.NET与PML相比有独特的优势,可以完成PML不支持的功能,同时又可以利用.NET平台的大量类库,其生成的文件为dll文件,有利于保护程序的源代码。本文利用.NET在PDMS12.0 SP4软件平台上进行设备建模的二次开发。
2.2 设备数据库的层次
设备数据库的层次如图1所示,设备单元位于Zone层下,设备下分子设备、基本体,子设备下包含基本体。
2.3 程序开发流程
设备建模程序需要按照设备的次序依次输入构成设备本体的基本体尺寸参数,根据设计图纸依次输入各基本体上的管嘴参数,包括管嘴的定位参数和规格尺寸。设备建模的程序流程如图2所示。
开发完成的程序主界面如图3所示,程序默认由底部向上部(对于卧式设备由右侧向左侧)依次添加基本体,然后分别选择各基本体,添加管嘴信息。对于设置完成的数据信息可以进行保存和读取。
(1)创建设备单元。按照图1的数据库接口层次,创建设备单元前需要选择Zone层次的对象,下面的示例代码演示了在当前选择的Zone层下创建了一个设备单元,然后通过SetAttribute方法分别设置了设备的名称(NAME)和位置(POSI)属性。
(2)创建基本体。按照图1的数据库接口层次,基本体由设备单元创建,基本体的类型通过单元类型变量DbEle- mentTypeInstance.CYLINDER指定,然后根据不同的基本体类型,通过SetAttribute方法分别设置基本体的几何尺寸及位置参数,下面的代码演示了如何创建圆柱体类型的基本体。
(3)创建管嘴。按照图1的数据库接口层次,管嘴由设备单元创建,下面的示例代码演示了一个管嘴的创建及属性的设置方法。其中管嘴的等级参数通过CATR参数进行设置,其参数类型为DbElement,通过GetElement方法获取,可以同时设置管嘴的标准、压力等级和公称直径。
3 结语
本文通过实例演示了二次开发技术在PDMS设备建模中的应用,与软件自带的设备建模功能相比,采用二次开发技术,可以完全代替内置的设备基本模板和设备参数化模板,并且在参数的输入上更加便捷,更符合设备图纸尺寸标注习惯,对于系统模板外的设备,由于完全取消了各单元之间的定位操作,可以大大提高建模效率。
参考文献
[1] 张博,陈冬霞.利用PML语言开发PDMS建模[J].数字技术与应用,2014(6):189+191.
[2] 王小科,吕双.C#程序设计标准教程[M].北京:人民邮电出版社,2009.