向小勇 吴从容 张松平 叶剑文
(广州特种承压设备检测研究院,广州510663)
压力管道单线图对压力管道整个行业包括设计单位、安装单位、使用单位、监察机构和检验机构都很重要,能够准确快速绘制压力管道单线图具有重要的意义[1]。目前一般是通过现场手工记录数据绘制草图,然后回办公室后用CAD等软件绘制单线图。这种做法动强度大绘图效率低,并且现场绘制与软件绘制脱节,容易造成错漏[2]。
AutoCAD作为一款成功的计算机辅助软件在机械、建筑、电子等领域的工程绘图得到了广泛的应用,但不是专门针对压力管道单线图的,因此在实际使用过程中有许多不便之处。目前AutoCAD二次开发的方法较多,如Visual Lisp、VBA、ObjectARX和基于.NET托管的开发方法。AutoCAD的.NET API提供了一系列托管的外包类,使开发人员可在.NET框架下,使用任何支持.NET的语言,如VB.NET,C#和Managed C++等对AutoCAD进行二次开发[3-4]。本研究采用基于.Net API的AutoCAD二次开发方法,对压力管道单线图测绘系统进行研究,实现在测量现场就可以生成单线图,提高压力管道单线图的绘制效率。
在现场测绘压力管道单线图,需要知道管路的终点相对于起点的长度和方向、管路元素的位置等数据。即数据的获取以及单线图的绘制2大部分。总体技术方案如下:设计一个测绘装置,包括数据测量和单线图绘制2部分,如图1所示。
图1 测绘系统外部结构Fig 1 External structure of surveying andmapping system
数据由测绘仪获取,单线图绘制部分在平板电脑上完成。测绘仪和平板电脑安装在具有水平调整基座的三角架上,方便现场安装测绘。测绘仪和平板上的绘图系统通过串口通讯完成数据的传输。测量部分向绘图部分提供方位角、俯仰角和距离等数据,绘图部分根据这些数据通过CAD软件的二次开发接口在CAD中绘图。
有一些比较规则的管路,可以通过目测得到长度和方向,则无需经过测量来获取数据,直接在绘图软件上输入数据即可完成绘图。
图2是压力管路单线绘图系统工作原理,系统由测量仪器和单线图绘图系统2部分组成。
从图2可以看出,单线绘图系统主要由绘图数据获取模块和CAD二次开发模块组成。对于单线图的CAD二次开发部分,需要外部提供长度和方向2个数据。如果长度和方向可以目测得到,则通过界面输入,否则通过测量仪器分别测量2个位置的坐标来计算2个位置之间的长度和方向。在获取到目标位置距离起点位置的长度和方向之后,通过CAD二次开发接口,在CAD中绘制管线。在绘制完管线之后,根据管路元素在管线的位置添加管路元素,并且将管线和管路元素划分为管路集合进行管理,最终生成压力管道单线图。
对于不能目测得到的长度和方向数据,需要通过测量仪器来获取见图3。
测量仪器主要包括了1个水平轴编码器、1个俯仰轴编码器,1个激光测距仪,1个AHRS(Attitude and Heading Reference System,姿态航向参考系统)。在测量过程中使用水平轴编码器的角度和俯仰轴编码器的角度分别作为激光测距仪的水平旋转角度和俯仰角度,激光测距仪测量目标的距离。数据通过串口通讯模块和平板上的绘图系统。
测量和绘图的时候将单线图中的方向和笛卡尔坐标轴的方向对应起来,在本系统设计中,以正东方向作为笛卡尔坐标系的x轴正方向,以正北方向作为坐标系的z轴正方向,以正上方作为坐标系的y轴正方向。通过测量仪器获取回来的水平旋转角度、俯仰角度和目标距离可以计算该目标位置在该坐标系下的坐标值,根据两点坐标可以计算它们之间的距离以及矢量方向[5-6]。
根据GB/T 6567.1~5—2008以及实际操作中的压力管道单线图,先把单线图的组成如图4所示划分,以此可以根据划分进行绘图系统的设计[7]。1个单线图文件对应1个管路系统。1个管路系统由1个或者多个管路集合组成;1个管路集合由管路一览表、管路注释以及1条或者多条管路组成。1条管路管线和管路元素组成;管线有1条或者多条直管线组成;管路元素进一步划分为管件、阀门、控制元件、传感元件、设备等几类(分类方法以GB/T 6567.1~5—2008为依据)。
在AutoCAD中,以直线表示直管线,以块文件表示管路元素、管路注释和管路一览表。因此,基于AutoCAD的压力管道单线图的研发通过Visual Studio 2010开发平台开发界面,通过计算单线图数据,然后调用AutoCAD二次开发接口进行画线和添加块的操作。在C#语言环境下,可以直接引用acdbmgd.dll和acmgd.dll这2个动态库来进行AutoCAD的二次开发。
图2 系统工作原理Fig 2 System work principle
图3 测量仪器硬件Fig 3 Hardware of measuring instrument
图4 压力管道单线图的组成Fig 4 The composition of pressure piping single line diagram
绘制直线的方法为给定图纸上起点和终点的坐标,创建“Line”类型的对象,然后将该直线添加到模型空间,关键代码如下:
Line l=new Line(stPoint,edPoint);//创建“Line”类型的对象,即直线
Database Db=HostApplicationServices.Working-Database;//获取当前的数据库
using(Transaction trans=Db.TransactionManager.StartTransaction())
{Db.AddToModelSpace(l);//添加实体到模型空间trans.Commit();//完成实物提交}
对于添加块的操作,使用了调用CAD指令的方法,即AcadDocument类的SendCommand方法,管件的代码如下:
AcadDoc.SendCommand(“-insert ”);//AcadDoc是CAD当前激活的文档,insert是插入块指令
AcadDoc.SendCommand(fileName+“ ”+x+“,”+y+“,”+z+“ ”+“1 ”+“1 ”+“0 ”);//指定块的文件名以及插入的位置,完成块的插入。
单线图绘图系统主要包括管线的绘制、管路元素的绘制和管路集合的管理等几个部分。
绘制管线的关键在于获取目标位置相对于起点的距离和方向,根据数据是使用测量仪器测量还是目测得到的可以分为自动连续测绘方式和手动连续绘制方式,绘制管线的界面如图5所示。
分别说明如下:
1)自动连续测绘方式。在界面上先勾选“测量”复选框,启动测绘仪器获取数据,首先选择管线的起点,使用测量仪器测量目标位置数据后,由绘图数据获取模块计算得到目标位置相对起点位置的距离和方向(在界面上自动显示长度和选择方位选项),然后点击“绘制管路”按钮通过CAD二次开发接口绘制直线,并以该目标位置为起点,重复上述步骤,直到完成连续管线的绘制。
2)连续绘制方式。去除勾选界面的“测量”复选框。首先选择管路的起点,然后估算管路目标点距离起点的长度以及管路的走向方位,然后在界面上输入长度和选择方位,点击“绘制管路”按钮通过CAD二次开发接口绘制直线,并以该目标位置为起点,重复上述步骤,直到完成连续管线的绘制。
图5 绘制管线界面Fig 5 Interface of line drawing
以添加块文件的方式添加管路元素。首先根据标准将管路元素绘制成CAD的dwg块文件,保存在指定的文件夹。设计添加管路元素的操作界面,管路元素按标准GB/T 6567.1~5—2008的说明进行分类,如图6(a)所示。针对实际使用某种使用管路元素的频率,将最常用的管路元素设置为放在“默认”列,将上一次使用的管路元素放在“上一次”列,如果需要其他管路元素,则通过“其他”按钮进行选择,“上一次”列会根据当前的选择进行更新。“默认”列通过设置面板进行设置,如图6(b)所示,通过对每一类管路元素设置“默认类型”和“默认连接方式”来实现。
图6 管路元素界面Fig 6 Interface of line element
管路元素的添加方法为:在CAD图上选择管路对应的线,在添加管路元素界面上选择需要添加的管路元素按钮之后,再回到绘图界面选择要插入管路元素的位置。系统会根据管路的方向以及管路元素的名称从系统中选择对应的管路元素块插入。
绘制完管路和添加完管路元素之后,需要将管路及管路元素划分到不同的集合方便管理,如图7所示。
图7 管路集合管理界面Fig 7 Management interface of line collection
比如选中管路集合中的起始管路或者结束管路,按自动编号按钮,则会将不同管路元素按管路的走向进行编号;按管路标注按钮之后,通过设置标注的数据,则可用手在CAD图上指定插入标注的位置;选中管路集合之后,自动在界面显示管路总长度、焊点数等数据。在管路繁多的情况下,可以通过设置集合分层显示来切换不同的显示内容,如显示管路或者显示标注等。
基于AutoCAD二次开发的压力管道单线图测绘系统,使用方法简单,可以在管道安装及检验现场获得管道上各目标点的精确位置并自动绘制单线图,也可以根据需要利用系统提供丰富的管路元素块文件对管路单线图进行编辑,提高了压力管道单线图的绘图效率,具有一定的使用价值。
[1]杨永信.浅谈压力管道单线图[J].中国特种设备安全,2007,24(3):21-23.
[2]陈孝富.浅谈压力管道单线图及其在检测中的应用[J].机电信息,2010(12):216.
[3]李玉强.基于ObjectARX.NET的AutoAD二次开发及应用[J].山西建筑,2007,7(4):361-362.
[4]方毅.基于C#与AutoCAD的断面图绘制程序设计与应用[J].地理空间信息,2012,10(5):143-145.
[5]谢存禧,张铁.机器人技术及其应用[M].北京:机械工业出版社,2005.
[6]John JCraig.机器人学导论[M].3版.北京:机械工业出版社,2006.
[7]GB/T 6567.1~5—2008技术制图[S].