APP下载

基于AutoCAD地形高程基准转化程序设计

2015-07-04刘军王小维常州市测绘院江苏常州213003

城市勘测 2015年1期
关键词:二次开发程序设计基准

刘军,王小维(常州市测绘院,江苏常州 213003)

基于AutoCAD地形高程基准转化程序设计

刘军∗,王小维
(常州市测绘院,江苏常州 213003)

摘 要:为了减轻地形高程数据的内业转化处理,又快又好的保质保量完成高程数据基准的转化工作,本文提出了基于AutoCAD VBA的二次开发技术设计和编写程序,对用图单位提出的地形图高程要素数据进行转化与修改,使其符合用图单位的需求。使用本文设计的程序对地形图高程要素数据处理,实验表明它可以大大的提高工作效率,而且满足需求,为测绘单位对地形图中的高程数据批量转化提供了有益的参考。

关键词:地形图;高程基准转化;VBA;AutoCAD;Xdata

1 概 述

随着我国建设事业的迅猛发展,数字地形图越来越得到广泛的应用,如1∶500与1∶1 000大比例尺地形图是城市规划、国土、设计等单位是不可或缺的工作底图之一。地形图高程数据是地形图重要的组成部分,高程要素数据在工程建设中也经常使用到,它不仅直观地显示出地面的高低起伏,而且还可以用来计算两点间的坡度,绘制地形断面,计算土方量等。

对于已有的地形图,其高程系统是已经确定了的,比如有些城市的分幅地形图的高程系统是1985国家高程基准,有的是1956年黄海高程系。如果遇到某些工程需要的高程系统与已有的地形图高程系统不一致,这就需要把原有地形图上的高程经过正确转化才能使用,如果高程点很少,大家可以手工修改,但是对于大面积的地形图来说,手工修改工作量大,可以通过基于AutoCAD的二次开发程序解决此类难题。

2 地形图高程点的数据格式

地形图高程数据分为高程点符号(BlockRef)与高程注记(Text)两部分内容,即高程点与高程值注记。高程点符号代表该空间位置,点符号中添加了高程值等扩展数据(Xdata),其扩展数据的格式如图1所示。高程注记代表该点位的海拔高,其扩展数据的格式如图2所示。由图1与图2可知,修改地形图中的高程要素数据需要修改高程点符号中的Xdata数据与高程注记数字。对于高程注记可以通过对AutoCAD的文字对象处理即可,修改高程点符号第一步需要读取其扩展数据,获取高程数据并修改才能完成。

图1 高程点符号附加数据格式

图2 高程注记附加数据格式

3 程序设计流程图

地形图高程数据基准批量转化程序设计流程图如图3所示。

图3 地形图高程数据基准转化程序设计流程图

4 实现平台与程序源码

AutoCAD二次开发语言有VBA、LISP以及Object-ARX等,VBA及其环境易于学习和使用,它是一个面向对象的编程环境,提供了丰富的开发功能。VBA工程可以是独立的,也可以嵌入到图形中,为开发人员提供了非常灵活的方式来发布程序,下面给出地形高程批量修改程序的VBA源代码。

'变量定义,省略

'构造选择集过滤器

ftype(0)= 8:fdata(0)= "GCD"

'构造选择集

If Not IsNull ( ThisDrawing.SelectionSets.Item ( " this")) Then

Set sset=ThisDrawing.SelectionSets.Item("this")

sset.Delete

End If

Set sset=ThisDrawing.SelectionSets.Add("this")

sset.Select acSelectionSetAll,,,ftype,fdata

If sset.count=0 Then Exit Sub

'处理高程注记

If Obj.ObjectName="AcDbText" Then

Set objtext=Obj

objtext.GetXData "",XType1,XData1

If Val(objtext.textString)<>0 Then

objtext.Refresh

End If

End If

'处理高程点符号

Obj.GetXData "",XType1,XData1 '读取扩展数据

Set objBlock=Obj

newInsertpnt(0)= objBlock.insertionPoint(0)

newInsertpnt(1)= objBlock.insertionPoint(1)

newInsertpnt(2)= objBlock.insertionPoint(2)+Val(dh)

xtypeGC(i)= XType1(i)

xdataGC(i)= XData1(i)

xdataGC(i)= str(Val(XData1(i))+ Val(dh))

'修改高程点的Z值,重新注记高程点位

Set newgcp = ThisDrawing.ModelSpace.InsertBlock(newInsertpnt,"D:map2000gc200.dwg",x_y_scale,x_y_scale,x_y_scale,0)

newgcp.SetXData xtypeGC,xdataGC '重新附加扩展数据

objBlock.Delete '删除旧的高程点符号

5 应用实例

某河道综合整治工程,要求现势带状地形图约2.0 km2,河道横断面测量断面间距要求每隔100 m测量一个,测量范围自河道中心线向两侧各100 m。我院已有该河道的1∶1 000地形图,但高程系统是1956年黄海高程系,而甲方要求地形图与河道横断面的高程系统必须是吴淞高程系,需要对地形高程基准转化。我院对该工程的总体设计方案是:首先河道断面高程数据与地形图高程均采用1956年黄海高程系进行测量,最终提交给甲方的资料须通过本文的程序转化处理,即把1956年黄海高程系高程转化为甲方要求的吴淞高程系,检查无误后,进行河道断面图绘制等后继工作。这样既保证了我院地形图高程基准的一致性,又能满足甲方用图要求。高程数据转化前与转化后如图4、图5所示。

图4 转化前1956年黄海高程系高程成果

图5 转化后吴淞高程系高程成果

6 结 语

基于AutoCAD二次开发技术编写程序,批量处理地形图中的高程数据,实践证明是可行的,它不仅减少了作业人员手工数据修改的错漏,减少了作业人员的劳动强度,而且提高了工作效率。

参考文献

[1] 范亚男,李胜超,叶泀含.基于AutoCAD的红线样式处理程序的实现[J].城市勘测,2014(2):127~130.

[2] 冯宏伟,罗弘.基于VB的自动绘制立面图程序的设计[J].城市勘测,2012(2):94~97.

[3] 李志锐,李法虎.基于VBA技术的AutoCAD二次开发在地形图绘制中的应用[J].农业工程学报,2008(10):25~30.

[4] 张区旺,刘晋虎.基于VBA的高程注记点匹配检查实现[J].煤炭工程,2013 (8):135~136.

[5] 曾洪飞,卢择林,张帆.AutoCAD VBA&VB.NET开发基础与实例教程(第二版)[M].北京:中国电力出版社,2013.

The Program Design of AutoCAD Elevation Datum Based on Transformation

Liu Jun,Wang Xiaowei
(Chang Zhou of Surveying and Mapping Institute,Jiangsu 213003,China)

Abstract:In order to reduce the inner terrain elevation data conversion,conversion work fast and good quality and quantity to complete elevation datum,this paper puts forward two development technology of AutoCAD VBA and programming based on data,topographic maps the map unit to transform and modified,to meet with map unit demand.Using the program of this paper on topographic maps data processing,experimental results show that it can greatly improve the work efficiency,but also to meet the demand,as a surveying and mapping unit on the topographic map elevation data batch conversion provides the beneficial reference.

Key words:topographic maps;elevation datum transformation;VBA;AutoCAD ;Xdata

文章编号:1672-8262(2015)01-116-03中图分类号:P209

文献标识码:B

收稿日期:∗2014—07—18

作者简介:刘军(1978—),男,高级工程师,主要从事测绘质量管理与测绘软件开发工作。

猜你喜欢

二次开发程序设计基准
基于Visual Studio Code的C语言程序设计实践教学探索
下期要目
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
从细节入手,谈PLC程序设计技巧
应如何确定行政处罚裁量基准
西门子Easy Screen对倒棱机床界面二次开发
高职高专院校C语言程序设计教学改革探索
滑落还是攀爬
PLC梯形图程序设计技巧及应用