实现Solidworks自动布管的专用P&ID软件设计
2017-09-15章泳健胡朝斌沈建强
章泳健,姜 川,胡朝斌,沈建强,张 坤
(常熟理工学院,常熟 215500)
实现Solidworks自动布管的专用P&ID软件设计
章泳健,姜 川,胡朝斌,沈建强,张 坤
(常熟理工学院,常熟 215500)
随着Solidworks布管功能在三维管道设计中的广泛应用,针对其自动布管功能缺乏布管信息数据源XML文件的问题,利用VB和AutoLisp开发了运行于AutoCAD图形环境的专用P&ID软件。用户可以在此软件下快速绘制P&ID图,并将布管信息输出为Solidworks自动布管所需的XML文件,实现了二维P&ID图与Solidworks自动布管功能的集成应用。
Solidworks;自动布管;P&ID;XML;AutoCAD;二次开发
0 引言
对于基于生产过程管理的石化行业而言,高效的管道设计及相关设备的信息表达与管理是十分重要的。基于二维布管技术来设计错综复杂的空间管道并进行正确表达是一项很困难的工作,其生成的二维图纸也很难被理解。随着三维数字化技术的发展,基于三维信息建模与管理技术的三维布管技术由于其可视化的效果与高效的信息表达能力,正逐步取代传统的二维布管技术[1,2]。目前石化行业中的先进企业正逐步使用三维管道设计软件进行企业信息建模与三维布管设计。三维管道设计软件可分为两类,其中专业三维管道设计软件专业性强、功能齐全,但上手比较困难,一般需要专业培训,且价格非常昂贵,很难在中小化工企业得到推广。而通用的三维设计软件中很多也集成了管道设计功能,如在工程界被广泛采用的Solidworks软件就具有管道设计模块,其设备建模能力要强于专业管道设计软件。所以此类软件在数字化建模的综合能力及软件的易用性和使用成本上具有独特的优势[3,4]。
用Solidworks的交互式布管功能需要在理解P&ID图中的设备与布管信息后,交互式地根据P&ID图逐段对管道进行建模,当布管信息很复杂时不仅效率低而且容易出错。而自动布管功能则可以通过导入布管信息后在布管向导的引导下进行布管,不仅可以大大提高布管效率,也能保证布管的完整性与正确性。该功能通过在布管前导入包含P&ID信息的XML文件来实现的,但Solidworks并没有提供由P&ID图生成XML文件的工具,且XML文件的复杂性决定了不太可能手工去定义此文件,因此Solidworks的自动布管功能是不完整的,单独使用不具备实用价值[5]。针对此问题,本文提出利用VB和AutoLisp开发一款基于AutoCAD的专用P&ID软件的构想。使用该软件,用户不仅可以通过一些专用命令来快速生成P&ID图,而且能输出Solidworks中自动布管所需要的XML文件。
1 软件设计的总体思路
本软件的核心功能是快速定义P&ID图,并将P&ID图中的相关信息经由XML文件输出。P&ID图中不仅要提供设备、管件和管线等图元的几何信息,而且需要包含图元的属性信息,以表达图元所对应的三维模型以及它们之间的连接关系。软件设计了绘图、属性设置及XML输出等功能模块。其中,绘图模块能快速调用预定义的P&ID图元库来生成图形,属性设置模块可通过对话框对每个P&ID图元赋予属性信息,而XML输出模块可以从P&ID图中提取各图元及图元的属性信息,并按照规定的语法格式输出所需的XML文件。为了便于人机交互,软件还设计了菜单模块,其总体结构如图1所示。
图1 软件总体结构框图
2 各功能模块的实现
2.1 P&ID绘图模块的设计
2.1.1 设备和管件的绘制
化工设备和管件的符号在化工部HG20519.*—92标准中均有标准的图例[6]。本模块将这些符号制作成块并保存到图元库中,用户在绘制P&ID图时可以直接通过专用的命令来调用并插入这些块。为方便用户选择所需的图块,本模块用VB编写了设备和管件选择对话框。其中设备对话框如图2所示,提供了设备选择与图形预览功能,并能对插入的图块进行比例缩放及旋转角度的设置。对管件选择的对话框采用类似的界面进行操作。同时,本模块中的图库具有一定的可扩充性,用户可以根据企业的实际需要增加一些特殊的设备与管件图元,只需将图块文件及对应的位图文件保存到本软件的指定路径即可。
2.1.2 管线的绘制
P&ID图中的管线可用标准的多段线命令绘制,但由于要求必须按水平或竖直方向布置,所以本模块用AutoLisp程序自定义了绘制管线命令[7]。在该程序中,先将绘图环境设置为正交模式,并设置合适的对象捕捉,然后再调用多段线绘制管线,程序结束后再恢复原来的绘图环境设置。
图2 设备选择对话框
图3 P&ID图元属性设置算法流程图
2.2 P&ID图元属性设置模块的设计
对P&ID图元添加合理的属性信息是生成正确的XML文件的关键。本模块的目的是为了使每个P&ID图元都具有属性信息,以反映各个图元所对应的三维模型以及它们之间的连接关系。AutoCAD中只有图块可通过定义块属性来实现图元与属性的关联,P&ID图中的设备与管件均是用图块定义的,通过定义块属性很容易添加属性信息。但管线是通过多段线绘制,无法直接对其定义属性。这里采用对管线进行属性设置前先将其转换为图块的方法来解决。当然,也可以统一将图元的属性信息通过链接外部数据库的方法来保存,但从程序实现的难度和效率来看,通过块属性来实现更高效。
XML(可扩展标记语言)是一种源于HTML语言的用于各种信息交换的通用工具[8]。P&ID图元的属性必须严格按照Solidworks对XML文件语法规定确定,这样最终输出的XML文件才能被Solidworks识别。以设备属性为例,X M L文件规定的设备属性主要有<ID>、<Tag>、<Description>、<PartNumber>、<Config>,即ID号、标签、描述、零件号、配置,因此为了保证最终输出的XML文件正确性,我们设置的属性必须来源于这几个属性。其中,标签相当于设备的位号,是不同设备之间相互区别的标志;零件号即设备模型的存放路径,它是P&ID图元与三维实体模型建立联系的桥梁。配置主要用于区分同一设备模型的不同设置。这三项属性是Solidworks中直接用于布管的关键信息,必须由用户输入。但ID号及描述这两种属性在布管应用中并没有直接用到,可以通过程序施以默认值,以简化用户的输入。本模块中实现P&ID图元属性设置算法的流程图如图3所示。程序执行过程中设计的设备属性设置对话框如图4所示。各项属性可在输入框中直接填写,其中零件号也可通过双击后通过文件选择对话框选择相应文件来完成属性的设置。
图4 设备属性对话框
图5 遍历查询算法流程图
2.3 XML文件输出模块的设计
XML文件输出模块就是要通过一定的算法从P&ID图中提取出各图元对应的属性信息,并按照solidworks规定的语法格式输出XML格式文件。选择该模块功能后,程序会先进行图元属性的完整性检查。如果发现有图元的属性没有设置,会跳出警告对话框,提示“有部分P&ID图元属性未设置,请设置!”,并且将对应的图元高亮显示,以提醒用户。如果图元属性设置完了,就会跳出XML文件保存对话框,选择保存路径及输入文件名称后确认,程序就会按照如图5所示的遍历查询算法遍历整个P&ID图元,获取它们的属性参数,并按要求输出XML文件。
2.4 菜单栏的设计
为提高上述各模块的用户友好性,就需要开发AutoCAD菜单栏,将对应开发的命令通过菜单的形式进行显示。菜单栏的开发方法主要有:通过编写菜单文件来重新定制菜单、通过CUI组件定制菜单、通过VB等高级语言对AutoCAD进行二次开发来定制菜单[9]。
通过VB对AutoCAD进行二次开发来定制的菜单栏,是通过编程调用AutoCAD提供的有关菜单栏定制的API函数来实现的[10],编译后可生成可直接执行的VB应用程序。运行应用程序后会自动打开AutoCAD软件并且会自动加载软件菜单栏。关闭AutoCAD后,软件菜单栏也会随之卸载。本名为“专用P&ID软件”的菜单栏设计就采用此方法,运行后自动在AutoCAD中添加一菜单栏,其下有绘图、属性设置以及XML输出三个菜单项,而绘图菜单项下又有三个子菜单,分别为设备、管件以及管线,如图6所示。
3 软件的测试与应用
软件按既定设想开发完成后,需要通过测试来发现程序设计中可能存在的问题,并提供软件的可靠性。测试对象的设计对测试的效率和效果至关重要,本测试设计了设备包括容器、反应釜和泵及包括阀门和三通等管件的典型工艺流程,其P&ID图如图7所示。
测试过程如下:首先,完成与P&ID图元对应的容器、反应釜和泵等设备及包括阀门和三通等管件的三维模型准备,并放置在某文件目录中。使用本软件绘制P&ID图,然后对每个P&ID图元进行正确的属性设置,在完成属性完整性检查后输出XML文件(部分内容如图8所示)。最后,在Solidworks软件中建立一装配文件,在完成上述设备的布局设计后,就能在导入的XML文件引导下一步步完成设备的自动布管了,如图9所示。
图6 菜单栏
图7 用于测试的典型工艺P&ID图
图8 由P&ID图导出的XML文件部分内容
图9 Solidworks自动布管过程
通过以上软件测试,最终验证并通过了软件设计的各方面要求。在与某化工企业合作的罐区数字化建模与布管项目中,应用本软件有效地解决了罐区管路连接复杂、手动布管费时费力的问题,顺利并高效地完成了如图10所示的罐区管道建模工作。
图10 某化工工段罐区管道模型
4 结束语
通过基于AutoCAD专用P&ID软件的开发,结合Solidworks原先并不完善的自动布管功能,形成了从二维P&ID流程图的绘制到三维设备建模、布局及自动布管的石化企业数字化应用的解决方案。使用本软件,用户无需购买昂贵的专业布管软件,也不必学习专业软件的复杂操作,就能在易学易用的Solidworks环境下进行设备的自动布管,非常适合中小型石化企业的应用需求。
[1] 刘家仓.三维管道设计系统的研究与开发[D].大连理工大学,2006.
[2] 杨茂,江森清.工厂设计软件在管道设计中的开发应用[J].天然气工业,1996,03:61-63+14-15.
[3] 安锐明. SolidWorks在管道设计中的应用[J]. CAD/CAM与制造业信息化,2007,01:52-54.
[4] 孙尧.基于SolidWorks的化工厂三维设计系统开发[D].东北大学,2012.
[5] DS Solidworks公司.Solidworks管道与布线教程(2014版)[M].北京:机械工业出版社,2014.
[6] 路平.化工工艺流程图C A D开发研究[J].国外油田工程,2003,09:41-45.
[7] 李学志,方戈亮,孙力红.Visual LISP 程序设计(AutoCAD 2006)[M].北京:清华大学出版社,2006.
[8] 李宪文.基于XML的三维CAD模型数据交换[D].青岛大学,2005.
[9] 单玉霞,王美欧.基于AutoCAD的管道仪表流程图符号库的开发[J].石油化工自动化,2010,01:54-56.
Design of special P&ID software to realize solidworks automatic pipe layout
ZHANG Yong-jian, JIANG Chuan, HU Chao-bin, SHEN Jian-qiang, ZHANG Kun
TG75
:A
:1009-0134(2017)08-0133-04
2017-04-17
章泳健(1971 -),男,江苏常熟人,副教授,工学硕士,主要从事数字化设计与仿真研究。