利用VBA技术提取CAD中分离式标注水深数据

2013-11-24 12:29
江西测绘 2013年3期
关键词:分离式海图水深

(长江宜昌航道局 湖北宜昌 443002)

1 AutoCAD VBA 概述

AutoCAD VBA 工程是许多代码模块、类型模块和窗体的集合,它们一同运作,执行给定的功能。工程可以存储在AutoCAD 图形中,也可以作为独立的文件存储[1]。

AutoCAD VBA是运行在AutoCAD 进程内部的,不必通过与应用程序进行链接,就可以链接到AutoCAD中。AutoCAD VBA是通过ThisDrawing 对象链接到当前AutoCAD 进程的活动图形。通过使用ThisDrawing 直接获得访问当前文档对象和所有相关的方法、属性以及所有在该层次中的其他对象的权力[2]。本文通过VBA 编程能有效提取CAD 海图中数字分离标注式水深,具有提取准确、自动化程度高的特点。且将以往繁杂的提取工作简化,提高了工作效率,输出格式为excel表格,具有良好的可操作性。

2 分离式水深标注特点

根据中国海图图式国标规定[3],水深标注一般采用数字分离式标注方法。如右上图所示,数字分离式标注由整数部分和小数部分两部分组成,没有小数点,靠整数部分与小数部分字体大小和相对位置区分。整数部分位于小数部分左侧,字体比小数部分偏大,位置略高。在整数位下添加下划线代表负号,表示干出高度(深度基准面上)。整数部分和小数部分各自独立,两者并不关联。水深注记(整数)的中心即为水深的实测点位。

3 利用VBA 技术提取CAD中分离式标注水深数据实例

数字分离式水深标注示意图(水深10.3m)

打开AutoCAD 2004,然后点击工具——宏——Vba 管理器,然后点击新建,建立一个新的Vba 工程,然后点击Visual basic 编辑器,打开Visual basic编辑器,点击菜单插入——模块,在出现代码窗口输入以下过程代码[4][5]:

'为0层的水深数据建立一个选择集

'区分整数text 和小数text 并分别建立索引

'提取数据并组合

以某码头工程数据为实例,最后处理提取出来的excel表格数据,与原图对比:

原图

处理后

4 结束语

数字分离式水深标注是海图水深标注最常用形式之一,但自动化提取水深相对困难。本文提供了一种利用VBA 编程自动提取数字分离式水深标注的方法,提高工程技术人员工作效率,节省时间与精力。因此掌握一门编程语言,对测绘工作者是很有裨益的。而VBA 由于其简单易学,功能强大,并内嵌于AutoCAD,应该成为我们测绘工作者学习AutoCAD二次开发的首选工具。

[1](美)杰莱(Jelen,B.),(美)斯太德(Syrstad,T.).著,郭兵英译.Excel 2007 VBA 与宏完全剖析[M].人民邮电出版社,2008.

[2]李长勋.AutoCAD ActiveX 二次开发技术[M].国防工业出版社,2005.

[3]GB12319-1998.中国海图图式[S].中国标准出版社,1999.

[4]麦苗,高峰.应用VBA 技术实现提取水深数据自动化[J].水道港口,2006.04..

[5]新智工作室.VB6.0中文版教程[M].电子工业出版社,2001.

猜你喜欢
分离式海图水深
书法静水深流
基于水深分段选择因子的多光谱影像反演水深
纸海图AI小改正制作模式探讨
少林功夫拳(三)
点亮兵书——《筹海图编》《海防图论》
电子海图在内河船舶综合导航系统中的应用探讨
GPS RTK技术在水深测量中的应用
浸入式水深监测仪器的设计
可分离式冻干机自动进出料系统
可分离式冻干机自动进出料系统