首页 资讯 招标 项目 展会 更多

位置:首页 > 新闻频道 > 技术动态


关于津华线管道中线自动标注的研究

2016-02-18 10:53:00 安装信息网

相关链接: 中国安全网 中国质量网 中国论文网 中国资讯网

作者:张毅  

  由于天津港一华北石化原油管道工程(以下简称津华线),全线总长约188 km,沿线途经天津市滨海新区、静海县,河北省黄骅市、青县、大城县、任丘市6个行政区域。本项目经过的地理区域经济较为发达,沿线地形地貌复杂多变,如何才能取得最佳的管道走向,使得管道线路便于施工且节约用地,达到节省工程投资的目标,这是最为主要的任务。在获取最佳的管道线路中线之前,在设计阶段经实地踏勘,针对不同的地区、不同的地形地貌经多次的改线调整,获得初步最佳路线,然后在具体的施工阶段,根据遇到的不同问题,需要再次调整管道局部走向。然而,每次管道中线的调整,都需要获取其中线每个折点的里程数、转角、桩号等信息,来实时地判断本项目的长度及弯管使用量的变化情况,传统的做法是靠手工完成,每个折点需要量算一次角度、里程,并通过将里程逐个累加来取得当前折点的连续里程数,对于津华线这样的长距离管道项目,这项工作异常烦琐且费力,大大降低了效率。

  针对此问题,为了加快设计、施工进度,快速获取实时的管道信息,节约建设工期,在天津港一华北石化原油管道工程项目组人员的建议及协助下,利用计算机程序语言,有了较为完善的解决方案。

1基本思想

  AutoDesk公司的AutoCAD软件(ACAD)作为一款在工程领域内广泛使用的计算机辅助设计平台,具有功能强大、操作简便,并且提供多种二次开发方法及接口。

  对ACAD的二次开发方式主要有VisualLisp、VBA、ObjectARX以及最新的.NET等,其中Object-ARX基于VC++平台,功能非常强大,但其缺点是开发速度慢、周期长,而且对开发人员的要求也比较高;VisualLisp与VBA较为简单,特别是VBA,使用方便且开发速度较快。本程序采用的开发语言是VBA。

1.1  程序流程设计

  ACAD提供对每个图元对象类的操作,通过对各个类成员的操作不仅可以提取类包含的各项属性数据(比如顶点坐标、颜色、所属图层等),而且可以编辑修改当前类所指向的图元实体。本程序主要是对PLine实体类进行操作,在ACAD中的类名为“AcadPolyline”。

程序设计流程如图1所示,在ACAD窗口中获取中线(PLine线)的控制句柄后,通过类属性。Coordinates提取它的顶点及所有节点坐标数据,然后用VBA内部函数“UBound”求得顶点总数为n。用变量i控制循环体,下面为1次完整循环过程。

图2为部分中线节点示意图,节点号依次为d1、d2、d3,要在节点d2处标注角度和里程,角度为线路方向的左角(为图中双箭头所示)。

  角度计算方法:首先求出由点d1、d2、d3构成的三角形的内角pd1d2d3,因为标注的一般为设计线路前进方向的左角(图中假定方向向东),所以接下来判断节点d3与向量d1d2的平面位置关系,如果点d3位于向量d1d2的下部,则需要加1800。

  最后将文字前缀、里程、角度制作为ACAD块并插入到图形的相应位置。

1.2界面及参数设置

程序界面如图3所示,在选择线路中线进行标注前应先设置好各项参数:文字高度、图形比例、前缀文字、横线长度、颜色、块的缩放比例、节点圆半径、注记选项等。部分说明如下。

  (1)前缀文字类型。津华线管道的前缀标识符号,标注结果为JHO、JH1、JH2 - - -JH终。

  (2)注记块的缩放比例。用来指示块实体是否需要放大或者缩小,为1时保持大小不变。

  为满足特殊需要,对角度可以设定是否需要显示度分秒符号,是否只标注0。~ 1800的角度值,还可以对中线进行反方向标注。

  为方便以后的编辑修改,所有的对ACAD的操作都在“PL注记”图层上进行。

2具体实现

  程序实施过程中主要用到的ACAD实体类有AcadText、AcadLine、AcadPolyline、AcadBlockRefer-ence等几个,这些类提供对ACAD实体操作的方法和属性。

2.1  与ACAD的数据交互

  ACAD提供Utility类,通过它可以从ACAD操作窗口获取所需要的数据信息,下面为从操作窗口获取一条PLine线的控制句柄:

  Dim Basepnt As Variant  ‘鼠标在图中点击处的坐标

  Dim returnObj As AcadObject  ‘返回鼠标拾取的ACAD对象类实体,这里为PLine中线

  rlhisDrawing.  Utility.  CetEntity( retumObj, BasePnt.”选择一条PLINE线-Select a PLine--”)

  然后利用returnObj. Coordinates属性就可以获得中线所有节点的坐标值序列。

2.2  里程数据的格式化

  里程数据就是指从设计中线起点到当前节点的连续水平距离。根据《长距离输油输气管道测量规范》的第3.9.4条的规定,标注格式应该为“1+235.6”,其中“+”前为整千米数,其后为以米为单位的长度。

  S= So+Distance(d1,d2)*(MapScale/1000)

  ‘S。为中线起点到d.点的距离,MapScale/1 000为尺度比例因子

  当S求出来后,需要对它进行格式化处理,Str_S为格式化后的里程字符串。语句为:

  Str_S=””&Int( S/1000)&”+”&Format(S -Int( S/1000)*1000,”000.0”)

2.3角度的量算及处理

  所要标注的角度是线路前进方向的左角,在ACAD中多段线的方向为绘制的顺序形成的方向。程序内部计算采用的坐标系为数学坐标系,根据获得的节点坐标值为源数据,利用余弦定理求出Ad1d2d3内的由边d2d1和边d2d3构成的内角pd1d2d3(相对关系如图1所示)。因为用余弦定理求出的角度都是在00~180°的值,而线路标注要求的角度既有00~ 180。的还有1800~ 3600的值,解决这个问题需要判断点d3与向量did2间的平面位置关系。

  判断点与线平面位置关系采用的方法为:

  由已知点d1、d2求出直线的2点方程,然后求出过点d3的铅垂线与线d1d2的交点d,再判断YJd与yd3的大小,如果Yd>Yd3,则说明点d3位于线d1d2的下部,pd1d2d3需要加一个半圆角180°,反之无须处理。

2.4块实体的创建与插入

  所谓块( Block)就是ACAD的一个对象实体,类名为“AcadBlockReference”,它可以将文字、线条、圆等多个图元组合成为一个整体对象,方便用户的各种操作。本程序要创建的块包括文字(里程、角度、文字前缀)和直线2种类型的图元。下面为部分实现代码:

  Set blockObj=ThisDrawing. Blocks. Add( inser-tionPnt,”*U”)”建立匿名块,以避免块名重复引起错误

  Set lineObj  =blockObj. AddLine(StartPoint,EndPoint)  ‘向块blockObj添加横线图元

  Set  TextObjl=blockObj. AddText( Textjiaodu ,in-sertionPnt,3)  ‘向块blockObj添加角度

  TextObjl. Color= ColorBlock:TextObjl. StyleName=”hwxh”  ‘设置文字颜色和字体

  下面将制作好的块插入到图中的相应位置,其中InsertionPnt为在图形中的插入点坐标,BlockName要插入的图块名,Xscale X向的缩放比例,Rotation旋转角(弧度值):

  Set blockRefObj  =ThisDrawing. ModelSpace.InsertBloc.k( InsertionPnt, BlockName, Xscale, Yscal,e,Zscale,Rotation)

  由于标注项只有文字前缀和里程2项,对线路的起点和终点需要做特殊处理,在这里不予讨论。

2.5标注示例

图4为一段津华线原油管道在天津市范围内的某段带状电子地形图,其中加粗的黑线为用PLine命令绘制的设计线路中线,针对折点JH_004,“0+269. 96”为当前折点处的连续水平里程,255。22 ’37”为当前折点的左角。

3结语

针对津华线管道项目,在此采用AutoCAD二次开发的方式来快速地获取管道中线信息,完全避免了人工量算时的点位选取误差、里程累加误差、角度量算误差、手工输入误差等多重偶然性误差的产生,提高了数据的准确性,对本项目管道最佳走向的获取发挥了重要的作用。

4摘要:针对津华线管道线路的设计,探讨了如何对AutoCAD软件进行简单的二次开发,并能快速地实现对管道设计线路中线的角度、里程数、标识序号等的自动量算及标注,以满足线路的设计施工需要。

关键字:

上一篇:关于单点卡伯值分析仪SPK-5500在化学浆线应用的研究

下一篇:返回列表

行业资讯月点击排行

展会信息月点击排行

招商信息月点击排行

首页 资讯 招标 项目 展会
关于我们 | 广告服务 | 友情连接 | 联系我们
触屏版 电脑版
安装信息网 www.36qyk.cn.