2018年2月第1期城市勘测
Urban  Geotechnical  Investigation  & Sur^^eying
Feb .2018No .1
文章编号= 1672-8262(2018)01-145-03 中图分类号:P 209
文献标识码:B
基于V B A 的道路横断面高程点提取方法研究
欧阳平《
(漳州市测绘设计研究院,福建漳州363000)
摘要:道路横断面测量是道路设计的重要基础数据,不同道路设计软件所能读取的横断面数据格式不同,常用测图
软件并不能直接生成常用道路设计软件所需格式断面数据。本文开发了道路横断面高程点提取插件,在C A D 环境下 能半自动生成道路设计软件(以纬地道路辅助设计系统为例)所需横断面数据,避免纯手
工提取高程、平距带来错误, 节省时间及人力。关键词:横断面;高程点;VBA 1vba排序函数sort用法
引言
现代经济发展迅速,旧有道路标准已经不能适应 现代交通、物流的需要,新修道路及旧有道路的更新都 需要测绘提供准确的道路纵横断面数据,而不同道路 设计软件所要求的纵横断面数据格式不一。南方
C A S S —类常用测图软件并不能直接生成常用道路设
计软件所需格式断面数据。道路横断面高程点很多, 纯手工编辑道路设计所需断面数据,工作量大且容易 出错。本文以常用的纬地道路辅助设计系统(Hint -
C A
D )所要求的横断面数据格式为例(纵断面比较简
单,在此不与描述),利用A u t o C A D 的V B A 编程语言 进行二次开发来实现半自动提取高程点及平距,使得 工作起来事半功倍,准确快捷[1]。2
编程思路
在实际工作中,我们需要测绘出道路各个横断面 上的实际高程,沿道路中心线的里程增加方向,左侧高 程点到中粧点的平距(通过两点的坐标反算得到[2]) 为负,右侧高程点到中粧点的平距为正,并按照从左到 右的顺序依次排序,将高程点高程及相应平距输人到 表格中,一个横断面为一行,格式如表1横断面高程表 (纬地道路辅助设计系统要求格式之一)所示。为了 方便阐述程序的编写过程,将分为以下几个步骤分别 说明:
(1) 读取一个中粧号,并在图上点选中粧位置的 高程点;
(2)
框选左侧横断面上的高程点,并根据距中粧
点的位置远近进行降序,并在距离值前加上负号;
*(3)框选右侧横断面上的高程点,并根据距中粧 点的位置远近进行升序排列,将成果依次输人Excel 表格中,如表1所示。
横断面高程表
表1
里程中粧高程平距1高程1平距2高程2
里程1 里程2 里程3
3程序实现
3.1程序设计流程
首先在启动程序之后自动加载菜单,其界面如图
1所示。点选道路横断面高程点提取子菜单后,弹出 图2窗口,设置好成果保存路径,即可进行高程点提取 工作。
道路撗断面高程点提取
囝库管理00窗口 (W rf n
道路横断面
■ COHTINUOUS
v
图1菜单界面
图2主程序界面
主程序运行流程如图3所示:
* 收稿日期:2017—03—29
作者简介:欧阳平( 1978—),男,硕士,高级工程师,注册测绘师,主要从事城市测量,变形监测等技术工
146城市勘测2018年2月
图3主程序运行流程图
3.2主要步骤及程序源码
A u t o C A D二次开发语言有V
B A、L I S P以及Object -A R X等,V B A及其环境易于学习和使用,它是一个面 向对象的编程环境,提供了丰富的开发工程。V B A工 程可以是独立的,也可以嵌人到图形中,为开发人员提 供了非常灵活的方式来发布程序[3],下面给出本程序 的部分V B A源代码。
(1)选择高程点并将结果写人Excel中[4]
Set sS e t= ThisDrawing.Application.ActiveDocument.Selec-tionSets.Add("G C D Z D M")
dxf_code(0) = 2:dxf_value(0) = HGC200"
ThisDraw-ing.Application.ActiveDocument.Utility.Prompt (" 请选择左边的高程点:"&vbCr)
sSet.SelectOnScreen dxf_code,dxf_value
I f sSet.Count > 0 Then
ReDim DISTANDGCD(sSet.Count- 1,1)
numofssetcount = sSet.Count
End I f
i = 0
For Each objEnt In sS e t
xyz(0) = objEnt.InsertionPoint(0)
xyz(1) = objEnt.InsertionPoint(1)
xyz(2) = objEnt.InsertionPoint(2)
DISTANDGCD(i,0) = d i st(pointMid,xyz)
DISTANDGCD(i,1) = xyz(2)
i = i + 1
Next
'对数组排序
C a l l QuickSortDecend (DISTANDGCD(),0,sSet.Count - 1)
'将数组写进excel中
xlsheet.C e l l s(num,1) = s t r l i c h e n g
xlsheet.C e l l s(num,2) = pointMid(2)
For i = 0 To sSet.Count- 1
xlsheet.Cells(num,2 * i+ 3) = -DISTANDGCD(i,0)
xlsheet.Cells(num,2 * i + 4) = DISTANDGCD(i,1) Next
sSet.Delete
(2)对平距进行降序排列函数[5]
Sub QuickSortDecend(MyArray()As Variant,L,R)
Dim i As Int e g e r,j As Integer,X As Single,Y As Single,M As Single
i = L
j = R
'出数组的中点
M = MyArray((L+ R) / 2,0)
While(i <= j)
'出比中点大的数
While (MyArray(i,0) > M And i < R)
i = i + 1
Wend
'出比中点小的数
While (M > MyArray(j,0)And j > L)
j = j - 1
Wend
'互换这两个数
I f(i < = j)Then
X = MyArray(i,0)
Y = MyArray(i,1)
MyArray(i,0) = MyArray(j,0)
MyArray(i,1) = MyArray(j,1)
MyArray(j,0) = X
MyArray(j,1) = Y
End I f
Wend
'未完成时递归调用
I f(L< j)Then Ca l l QuickSortDecend(MyArray(),L,j)
I f(i < R)Then C a ll QuickSortDecend(MyArray(),i,R)
End Sub
3.3应用实例
图4为某古城内道路改造工程现有道路实测横断 面高程图(部分),此图不能被纬地道路辅助设计系统 直接读取、使用,需把实测高程点转换为其自定义格式 Excel
表后读取使用。
第1期
欧阳平.基于VBA 的道路横断面高程点提取方法研究
147
运行本程序后横断面高程点转换为表2。
横断面高程表(成果)
表2
里程
中粧高程平距1高程1平距2高程2平距3高程3平距4高程4平距5高程5500.0008.34-10.618.29-8.348.26-6.348.27-2.918.303.908.30510.9878.30-10.918.35-6.868.30-6.758.22-4.718.247.268.20520.0008.28
-10.85
8.34
-7.12
8.29
-7.01
8.19
-3.50
8.23
3.81
8.22
4
结论(1)
本插件在本院多条道路改造项目的原始横断
面数据提取中投人使用,节省了时间及人力,取得了一 定的经济效益。
(2)
本插件运行仍需手工输人道路设计里程,选
取断面高程点,后期优化方向是自动识别里程,读取高 程点,判断道路方向及平距的正负。
(3) 本插件仅仅针对纬地道路辅助设计系统读取
原始地面横断面使用,针对不同软件需进行调整,输出
不同格式。
参考文献[1] 李文柱.AutoCAD  VBA 二次开发在道路横断面数据处理
中的应用[J ].城市勘测,2008(3):127~129.
[2]
吴献丰.道路横断面文件自动生成程序开发与实现[J ].
城市勘测,2013(3):150~151,154.
[3]
刘军,王小维.基于AutoCAD 地形高程基准转化程序设
计[J ].城市勘测,2015(1):116~118.
[4]
潘输.Visual  Basic 程序设计[M ].北京:科学出版社,
2006.
[5]
高春艳,李俊民,刘彬彬.Visual  Basic 应用开发冗全手册[M ].北京:人民邮电出版社,2006.
Study on the Extraction Method of Road Cross Section Height
Points Based on VBA
OuYang  Ping
(Zhangzhou  Design  Institute  ol  Surveying  and  Mapping,Zhangzhou  363000,China )
Abstract :Road  cross-sectional  survey  i s  an  important  data  lor  the  design  ol  the  road . Different  cross-sectional  data
formats  can  be  recognized  by  different  road  design  software . Commonly  used  mapping  software  can  not  directly  generate the  format  data  of  which  road  design  software  recognizes . This  paper  contrives  a  C A D  plug -ins,with  this  plug-ins  we  can generate  different  cross-sectional  height  points  data  formats  for  different  road  design  software  semi -automatically,avoid making  mistakes,increase  efficiency  and  shorten  the  time  limit  for  the  project .
Key words :cross  section;height  points;V B A
沈阳市勘察测绘研究院获评辽宁省2017年首批高新技术企业
辽宁省科学技术厅、辽宁省财政厅、辽宁省国家税务局、辽宁省地方税务局联合发布了《关于认定辽宁省2017年第一批高新技 术企业的通知》,认定“沈阳市勘察测绘研究院”为辽宁省第一批高新技术企业。发证时间为2017年8月8日,有效期三年。
辽宁省第一批高新技术企业是根据《高新技术企业认定管理办法》(国科发火[2016]32号)和《高新技术企业认定管理工作指 引》(国科发火[2016]195号)有关规定,经过企业申报、地方推荐、专家评审、部级评审、媒体公示等环节,达到标准后,最终认定的。
高新技术企业的获评标志着沈阳市勘察测绘研究院正式迈人国家高新技术企业行列,也意味着该院的经营发展又跨越了一个 新的里程碑。
一直以来,沈阳院不断加大培养和引进人才力度,坚持走科技兴院的道路,强化校企合作,逐年增加科研投人,大力推进科技战 略与品牌战略,不断提高自主创新能力,优化管理机制,严控勘测成果质量,逐步提高全员素质,在多年的勘察测绘及基础地理信息 服务中口碑卓著,成绩斐然,得到了国家、省和市行业主管部门的多次表彰与认可。
沈阳市勘察测绘研究院将坚持以“立足沈阳、着眼辽宁、面向全国”为发展方向,以过硬技术产品为依托,以打造一流勘测服务 品牌为愿景,一如既往地为勘测事业、规划服务保驾护航丨
(来源:http ://www .024gis /sykcy /)