设为首页 内容加载中,请稍候...
第一幕墙网 -> BIM专区 -> BIM与设计

PDMS在埋地重力流管网设计中的开发应用

2014-02-20 15:25:42 作者: 来源:第一幕墙收集整理 我要评论0

第一幕墙网
摘要:本文介绍了在石油化工装置设计过程中,如何利用三维设计软PDMS实现埋地重力流管网的三维设计,并使用PML语言对其元件库、ISODraft、Draft以及材料报表模块进行二次开发,从而提高地下管道的设计效率和设计质量。
 
关键词埋地重力流管网;PDMS;二次开发;元件库;Draft;PML
 
        随着计算机技术的不断进步和设计理念的不断提升,在今天石油化工装置的设计过程中,越来越倾向于借助三维设计软件进行设计、施工和验收。目前国际上比较流行的两大三维设计软件分别是鹰图(INTERGRAPH)的PDS(PLANT DESIGN SYSTEM)和AVEVE公司的PDMS(PLANT DESIGN MANGERMENT SYSTEM),两者虽开发平台不同,但其中心理念都是数据的集成:纵向贯穿石化装置的设计、施工、生产维护等整个生命周期的各类数据,横向贯穿参与设计、施工、采购、验收、生产的各个专业及各个参与方的协同数据,真正实现了数字化工厂的理念。在过去的10多年里,我们通过软件的引进和应用开发,实现了地上装置的三维设计,但鉴于埋地重力流管网设计与施工的特殊性,一直没有实现三维设计,下文将讲述如何在PDMS平台下实现埋地重力流管网的三维设计。
 
        1 开发背景
 
        1.1 开发需求
 
        石油化工装置地下铺设的管道包括压力流和重力流;埋地重力流管道包括生产污水、生活污水和雨水等。制约埋地重力流管道设计的因素较多,如地理环境、地上设备和管道的规划、大口径地上管道的支撑点、振动管道的地面支撑点、设备和构架基础、埋地压力流管道和电缆的位置、管道坡度、施工因素和地下空间等。埋地管道一般随基础、电缆沟一起开挖、施工、防渗和覆土。现场实践证明使用二维CAD进行埋地重力流管网设计,不可避免地造成大量的错、漏、碰、缺等问题,由于地下管道交叉严重,防腐补口要求高且施工困难,一旦发生设计变更就会造成人力和财力的很大浪费,同时二维CAD设计也不能满足数字化工厂的需要。随着石化装置的日益大型化和数字工厂的建设,此矛盾越来越突出,迫切需要解决。
 
        1.2 PDMS简介
 
        PDMS是由英国CADCENTRE(现AVEVA)公司开发研制的面向数据型大型工厂设计管理系统。通过图形平台,实现全比例三维实体建模,所见即所得;通过网络实现多专业实时协同设计,模拟真实的现场环境,建立一个详细的3D数字工厂模型;交互设计过程中,实时三维碰撞检查,自动地在元件和各专业设计之间进行碰撞检查,保证设计成果的空间正确性;拥有独立的数据库结构,元件和设备信息全部可以存储在参数化的元件库和设备库中,不依赖第三方数据库;开放的开发环境,为用户的二次开发提供了良好的平台。
 
        1.3 PML简介
 
        PML是指AVEVA Programmable Macro Language,是PDMS内置的开发语言,随着PDMS的升级,PML语言共经历了PML、PML2、PML .Net三个时代。        
        PML更像是PDMS命令的集合,功能强大,与PDMS无缝连接,同时具有简化的用户界面(GUI)。在管子创建、部件创建修改等许多方面都能方便的开发,PDMS自身的很多功能也是使用PML编写的。 
        PML2是PML的升级和加强,是基于面向对象的解释型语言,而不是面向对象的语言。因为面向对象的语言支持类、继承、多态的概念,而PML2不支持继承,但是可以对象组合。PML2中的对象(Objects)有成员变量和成员函数,即属性和方法,使得PML语言更加规范
        PML .Net是PML与.Net技术的融合,可以通过PML语言调用.Net语言编译的DLL文件,扩大了PML的应用范围,方便了与外部程序的沟通。
 
        2 开发过程
 
        2.1 编码的确定
 
        编码即物质编码或材料编码,是PDMS及其他三维设计软件数据集成和数据管理的主线,同样也是管道材料规范化管理的必经之路。由于以往的分工、技术和标准不完善等原因,造成了埋地重力流管道材料编码并未纳入管道材料编码的范畴,随着国内设计、制造标准的完善和工程设计规范要求的加强,给埋地重力流管道编码成为可能和必然。埋地重力流管道材料种类多、管件型式复杂、连接形式变化多样,部分标准中的管径系列、压力等级系列与石化标准、美国标准都不能兼容,同时还存在着未纳入国家和行业标准的公司级标准图集等内容,因此根据材质和用途,将材料编码分为三类:C类,主要包括铸铁管子、管件;U类,主要包括塑料(衬塑)管子、管件;M类,无法归类的特殊管子、管件,如地漏、清扫口等。根据材料编码规则,将设计标准、材质标准、连接形式、压力等级、特殊要求等信息以编码的形式组合成唯一的标识码,如图示:
 
1.jpg
 
        2.2 元件库的开发
 
        2.2.1元件库是PDMS模型的基础,是管道材料设计标准的外在体现,决定了管子、管件在模型中以何种形状出现、在管段图(ISODraft)和平面图(Draft)中的形状与标注方法,同时也是等级库的根源所在。
        根据编码的分类和设计依据,管道元件的元件库主要采用以下几个标准:
        GB/T 13295 水及燃气管道用球墨铸铁管、管件和附件
        CJ/T 189 钢丝网骨架塑料(聚乙烯)复合材料管材及管件
        GB/T 10002.1 给水用硬聚氯乙烯(PVC_U)管材
        GB/T 10002.2 给水用硬聚氯乙烯(PVC_U)管件
        GB/T 5836.1 建筑排水用硬聚氯乙烯(PVC-U)管材
        GB/T 5836.2 建筑排水用硬聚氯乙烯(PVC-U)管件
  2.2.2为了方便开发与建模,对元件做以下约定:
 
        1)在能够表达外形的前提下,尽可能将元件的外形简化,方便建模;
        2)元件的GTYPE(Generic Type)、SKEY(Symbol Key)、连接形式尽量向已有的形式靠近,减少自定义的内容,提高兼容性;
        3)对于承插焊、插接、热熔、粘结等形式,根据目前的应用深度,统一归为承插焊(SWF)连接类型;
        4)元件库中同时添加变长管(TUBE)和定长管(FTUBE)两种管道,既能满足铸铁、水泥管分段生产的特性,也能满足较短管道的布置;
 
        2.2.3 创建元件:
 
        1)首先定义数据集(Data Set),数据集是构成元件外形参数的集合,公称直径是必要的参数,其他参数根据外形的要求添加;
        2)第二步定义点集(Point Set),根据元件的SKEY,确定要使用的点的个数和各个点的功能,具有连接属性的点就需要定义管径和连接形式,参考点用来方便构造元件外形;
        3)第三步定义形集(Geometry),依据元件的外形和点集的设置,使用圆柱体、正方体、球体等基本体进行外形的构建,如果需要更加形象,可以使用负实体进行开孔开洞等;
        4)第四步在Category中输入元件各管径对应的数值;
        5)第五步如果此元件有螺栓,应在螺栓集(Bolt Set)中定义或关联螺栓表;
        6)最后生成完整的元件,如下图
 
 
2.jpg
 
        2.3 ISODraft的定制开发
 
        由于元件库创建时基本上使用的都是已有的SKEY,因此对于PDMS提供的的ISODraft样式不需要进行过多的定制,就能满足需求,只需要在以下方面进行改进:
        1)为了使轴测图显示更多的管道信息,便于现场埋地重力流管道的施工,将轴测图的图纸幅面定义为A2;
        2)为了与ISO图风格一致,将轴测图Material List定制在图纸右侧;
        3)将需要的管道信息如温度、压力等输出到指定的位置;
        4)为方便设计建模,单个装置使用的是设计坐标系统,即将PDMS的坐标原点作为装置的坐标原点,但是埋地重力流管道一般以工厂坐标作进行定位,在不改变模型坐标的情况下,将ISO图和轴测图输出坐标转换为工厂坐标。在模型中创建一个设备(EQUI)且命名为“PLANT_ZERO”,将其坐标定义为工厂坐标的反向坐标,然后在设置文件的Annotation选项中,将Origin Coordinates 更改为 “ID Name”选项,且ID Name For Origin设置为“EQUI PLANT_ZERO”,经测试输出坐标为工厂坐标,如下图:
 
 3.jpg
 
        2.4 Draft模块的二次开发
 
        Draft模块的开发是此次开发的重点和难点。以往的埋地重力流管道图纸只包含平面图,不能完整地表达埋地重力流管网的整体布置和具体的管件连接。ISODraft模块生成的轴测图完美解决了管件的连接问题,使用Draft模块的功能和PML语言进行二次开发,生成埋地重力流管道轴测图,更好地指导现场施工和验收。
 
        2.4.1首先要先清楚需要开发出什么样的轴测图,图面的标注、标示等信息应达到什么样的深度,通过深入讨论,形成了如下共识:
 
        1)轴测图不是平面图也不是通常意义的ISO图,不需要详尽的表达连接方式、间隔尺寸等细节问题,要着重体现埋地重力流管道网络体系的连接情况,因此对尺寸标注、元件标示的详细程度要求较低;
        2)图面应充分表达各管线之间、井与井之间的连接关系、地上管线与地下管线的连接关系,以及装置与装置、装置与管网之间的连接关系;
        3)图面应表达漏斗、地漏、清扫口的标高信息;
        4)应体现关键的弯头点标高信息,方便计算倾斜管道铺设的起止点标高;
        5)应体现井与管道接口的标高、方位,以及接口套管的数量;
        6)应体现井盖的方位。
 
        2.4.2为了实现轴测图预想的功能,在Draft出图时对以下方面做了配置和开发:
 
        1)将管道号按照分支(BRAN)的头(HEAD)进行管号标注,为了避免图面太杂乱,将管道用序号进行标示,然后在图中生成序号与管号的对照表,根据分支的头尾连接关系,很容易查询管道的连接关系;
        2)使用PML编程,对轴测方向上的管道进行尺寸标注,间距小于500mm的标注将被省略;
        3)使用PML编程对漏斗、地漏、清扫口进行标高标注;
        4)给特殊位置的弯头添加自定义属性(UDA),如“:SETPOINT”,在使用PML编程时,所有属性值为“Y”的弯头,进行标高标注;
        5)为了表达管道与井的连接关系和接口的标高,使用设备(EQUI)为井建模,与管道的接口使用对焊(BWD)形式的管嘴(NOZZ)进行建模,这样管道与井的接口就会体现在轴测图中,再使用PML编程将接口的标高、方位生成列表;每个接口对应一个套管,将套管按直径进行汇总;
        6)使用管嘴(NOZZ)为井盖进行建模,命名时使用特殊命名,如包含“JG”特殊字符,与其他接口区别开,再使用PML编程获取其相对于井本体的方位角度,一并列入接口表,如图二所示;最终的轴测图效果如图一所示(由于本文图幅限制,仅体现了局部)。
 
 
    4.jpg 
 图一 轴测图
 
 5.jpg
 图二 井口表
 2.4.3部分代码
 
        1)创建管道数组
        var !pipes append coll all pipe within $!limit  for $!Idname
        do !n index !pipes
         !pipename = namn of $!pipes[$!n]
         !str = '$!n,$!pipename'
         !list.append(!str)
        解释:在管道列表(!ldname)中寻找在空间!limit内的管道,添加到数组!pipes中,然后取出每个管道的名字!pipename,再将管道序号!n和管道号形成对应关系,追加到数组!list中。
 
        2)创建需要标注的漏斗、清扫口、地漏数组
        var !memb coll all bran mem for $!brans[$!m]
        do !mem value !mems
         !dtxr = dtxr of $!mem
         if(mat(!dtxr,'漏斗') gt 0 or mat(!dtxr,'清扫口') gt 0 or mat(!dtxr,'地漏') gt 0)then
          !memcoll.append(!mem)
        解释:遍历分支(BRAN)中的每个成员,当描述中含有漏斗、清扫口、地漏时,将其添加到数组!memcoll中。
 
        3)创建需要标注标高的UDA弯头数组
var !elems coll all elbo with (:setpoint eq 'Y') for $!bran
        do !elem value !elems
        !epos = p0pos of $!elem
        var !name '$!elem'
        !epose = !epos.east
        !eposn = !epos.north
        !eposu = !epos.up
        解释:将分支(BRAN)中:setPoint属性为“Y”的弯头创建为一个数组!elems,遍历每个弯头,将弯头的X、Y、Z坐标分别提取出来,便于生成标高标注。
 
        4)创建井口表及井盖数组
 var !nozzs coll all nozz for $!equi
 do !nozz value !nozzs
        ……
if(mat(!nozzname.part(3,'/'),'JG') gt 0)then
 !desc = '井盖'
        解释:将设备(EQUI)中所有NOZZ创建为一个数组!nozzs,遍历每个管嘴,将管嘴的X、Y、Z坐标分别提取出来,并将含有“JG”的管嘴标示为井盖。
 
        2.5 材料报表的定制开发
 
        PDMS自身带有材料统计功能,但是其内容与格式并不能满足出版要求,AVEVA中国开发团队很早就认识到这个问题,在其开发的工具集(Tookit)里面,加入了管道材料统计功能,生成一个*.CSV的材料表文件,基本满足出版要求。为了使材料表更容易阅读和检查,我们又使用Visual Basic语言,根据编码进行了分类汇总,生成最终的材料表。
 
        3  改进与完善
 
        通过我们对元件库、等级库、ISODraft模块、Draft的开发和设置,已经能生成满足施工需要的埋地重力流管道轴测图,很大程度上减少了错漏碰缺的问题,且一定程度上解决了设计质量与施工进度的冲突,但由于对PDMS还不是很了解,且PML编程水平有限,在以下方面还有改进的空间:
 
        1)由于使用Draft模块的切图功能,不能形象的了解切图区域,只能不断尝试,满足图面和图框的要求,下一步可以设法从Design 模块中切图,然后再到Draft模块中处理;
        2)Draft模块生成的图纸,导出为DWG文件时,中文文字会出现乱码,需要解决;
        3)管道比较复杂时,尺寸标注、标高标注、管号标注比较密集,会出现交叉重叠的现象,导致图面较乱,需要进一步解决。
        4)为了尽快在工程项目中使用,在开发中忽略了一些数据的真实性,如连接形式的归类、Skey的代用,都是此开发的瑕疵,需要在以后的维护中逐渐更正。
 
 
        作者简介:
        宋继伟  高级工程师,中国石油工程建设公司华东设计分公司 副总工程师 
        地址:山东省青岛市市南区华严路2号
        邮编:266001
 
        参考文献:
 
        1. PDMS随机文档 《Software Customisation Guide》
        2. PDMS随机文档 《DRAFT Administrator Application User Guide》
        3. PDMS随机文档 《DRAFT User Guide》
相关资讯
    内容加载中,请稍候...
内容加载中,请稍候...
我要评论网友评论仅供其表达个人看法,并不表明第一幕墙网同意其观点或证实其描述。
账号:密码: 注册忘记密码?
第一幕墙网免责声明:本网凡注明出处为“第一幕墙网”的所有稿件,版权均属第一幕墙网所有,未经授权不得转载。如需转载,请与0755-83785645联系授权事宜;转载请务必注明稿件来源:"第一幕墙网"。本网未注明出处的,均从互联网收集,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿件涉及版权等问题,请及时来电或来函与第一幕墙网联系。