|
管线图图上点号的半自动化编排方法
郑玉玲,胡华宗,赵洪涛
(河南省地球物理工程勘察院)
摘要:简述利用ActiveX自动化服务功能,选择Visual
Basic语言作为ActiveX的开发工具,在AutoCAD管线图上半自动化编排图上点号的方法。
关键字:管线图,图上点号,AutoCAD,ActiveX,
Visual Basic
一、问题的提出
如果你是管线普查施工单位的图形数据处理人员,编图上点号也许是你曾经或者现在遇到的比较头疼的一件事情。图上点号的组成是由管线类别(一位或两位拼音字母)加阿拉伯数字(流水号)组成,编排图上点号是以每幅标准图幅的每种专业管线为单位,点号由小到大,要求不重不漏。图上点号的编排顺序在国家行业标准《城市地下管线探测技术规程》中没有具体要求,但是在管线探测的过程当中,业主一般都要求按照“先干线,后支线,先上后下,先左后右,编完一条再编另一条”这种比较人性化的编排原则。这种编排方法的好处是符合人们视觉习惯,读图比较流畅,有利于管线图、表结合使用。但是,这种编排方法却给自动化成图增加了麻烦,原因是计算机不能很好的识别管线的干线和支线,判断一条管线是干线还是支线,完全依靠管径是行不通的,特别是电缆类管线,用断面尺寸来判断干线和支线几乎是完全错误的。依靠管径或断面尺寸,利用计算机来识别干线和支线,对于管线稀疏的情况可以,对于管线密集的情况就不行了,对于管道类管线可以,对电缆类管线就不行了。为了达到比较理想的效果就必须用手工操作,或者对每条管线事先按等级进行分类,或者对管线点用手工进行编排,然后录入数据库,这种情况会造成效率低、出错率高,在整个自动化成图过程中显得很不协调。
二、解决方法
一般来说,数据处理包括图形数据处理和属性数据处理,图形数据是属性数据的客观体现。管线探测单位都有自己的绘图软件,能够自动绘制管线图上的点线注记等内容,但不同的数据处理系统有各自的软件平台,数据处理的流程和方法也不尽相同。经过近几年市场的发展,在管线探查施工阶段,一种比较统一的数据处理模式逐渐被大多数管线探测单位和管理单位认可和采用,就是数据库采用EXCEL、ACCESS或VFP、管线图采用AutoCAD平台,因为这几种软件都是大家常见和常用的,便于业主、监理和作业单位各方沟通与交流。
外业点号一般要求在整个工区不能重复,由于AutoCAD只是一个绘图软件,不能象GIS软件一样对属性进行管理,但是它的图形实体却可以携带非图形信息的扩展数据,我们在以AutoCAD作为操作界面编图上点号时,做了一个小的二次开发的程序,通过使用AutoCAD的扩展数据技术,采用一种交互方式进行编号,手工指挥编排顺序,计算机自动记录和累加流水号码。取得了比较好的效果,既得到了手工编排的图面效果,自动化程度又大大提高,加快了编图速度、减少了出错率。
三、实现过程
AutoCAD
软件包是目前最为流行的工程图形处理软件,以其完美的绘图功能、良好的用户界面,被广泛应用于机械、建筑、测绘、规划设计等行业部门。
AutoCAD以其开放的结构体系,为用户提供了多种二次开发工具。ActiveX自动化服务功能是R14以后版本新增加的二次开发工具,利用这个开发工具可以方便地与其他程序沟通,通过在两个程序之间安排对话,达到一个程序控制另一个程序的目的,比如通过它可以读取、设置系统变量,控制视区的大小和位置,还可以操作图形中的所有实体,包括对它们进行读取、添加、删除、改变属性等等,几乎所有的CAD命令都可以通过它用其它程序来操纵,利用这种技术使CAD的二次开发变得简单易行。
我们选择了Visual Basic语言作为ActiveX的开发工具,首先在“工程”菜单引用AutoCAD对象类型库(Object
Library),这个库文件名为Acad.tlb。正确连接AutoCAD之后,就可以用VB对AutoCAD中的各类实体进行操作,
创建一个窗体作为程序界面,通过调用Windows API函数SetWindowPos来使窗体总是位于其他的最前面,使用时就会像CAD的一个弹出式菜单一样方便。
管线图图层分为点层(层名:管线类型+POINT)、线层(层名:管线类型+LINE)、注记层(管线类型+TEXT)、辅助层等,位于点层上的块参照才是我们需要编号的管线点。用光标在管线图上选择实体后,执行下面步骤:
①首先要对它进行判断,从它的类型、图层等参数上来判断选择的实体是不是需要编号的对象,另外还要判断选择的是不是单个对象;
②经过判断是我们需要的东西后,再看它属于哪种管线类型,管线类型加流水号就是它的图上点号,每编一个点,计数器就累加一个流水号;
③在管线点附近标注上所编点号,并对点号的图层、字体、颜色、大小等参数进行设置;还可以直接用鼠标把它拖到图面合适的位置;
④把刚编的图上点号写到该管线点的扩展数据里;
⑤设置该管线点在屏幕上为不可见。在CAD图层中增加一个点备份层,该层的实体设置为不可见。
这些步骤都是程序自动实现的,所需要的操作仅仅是用鼠标在屏幕上按照你认为合适的顺序进行选择,直到整个管线图上看不到认为应该编号的管线点了。一幅图完成以后,随时可以把点号信息以文本格式输出。
四、结束语
本文作者通过二次开发的程序,利用AutoCAD的扩展数据技术,采用一种交互方式进行编号,手工指挥编排顺序,计算机自动记录和累加流水号码,大大提高了自动化程度,并且减少了出错率。但由于有手工作业的因素在内,难免有主要管道(管线)点号编漏的情况,此时就需要从出错处重新开始编号,如何进一步改进,尚需继续研讨。
参考文献:AutoCAD
Visual Basic 开发技术 张国宝编著 科学出版社
作者通联:(453000)河南省新乡市人民路91号;电话:0373-2379581
|