机场地形图20米方格网点的自动生成
2010-08-14张立刚刘甫斌
张立刚,刘甫斌
(黑龙江省水利水电勘测设计研究院,哈尔滨150080)
在新建机场的地形图测量工作中,机场建设规范要求地形图施测20 m×20 m方格网角点高程,如果按其要求在外业实测这个方格网,效率慢,因此这个工作可以考虑用计算机来自动实现。
1 实现的原理
南方CASS绘图软件能够根据所测的高程点生成三角网,利用这个三角网可以自动生成等高线,考虑能否利用CASS的功能实现方格网点的自动生成。CASS自动生成等高线时利用这个三角网三个顶点高程值进行插值计算,本程序正是利用这个想法,首先让CASS生成三角网,三角网中每个三角形作为一个CAD中的实体,三个顶点都带高程,然后判断方格网点在不在三角形内,如果在三角形内,进行插值计算,求出方格网点的高程,如果不在就跳过,寻找下一个三角形。本程序针对CASS7.0程序中的高程点,CASS5.0程序中的高程点与7.0的稍有不同,CASS5.0中点与文本是分开的,CASS7.0中文本作为点的属性与点是一体的。
2 程序的流程图
本程序利用CAD二次开发程序AutoLisp语言编制,见图1。
图1 程序流程图
3 程序的实现
;;;本程序针对CASS7.0的高程点形式,自动计算20 m方格网交叉点高程
;;;出错处理程序,
(defun clerr(s)
(if(/=s ″console break″)
(princ(strcat″ 错误:″s))
)
(setq*error* olderr)
(princ)
)
;;;主程序
(defun c:Qjd(/olderr clay sblip scmde sgrid)
(setq olderr*error*
*error*clerr
)
(setq ms 2)
(while(=ms 2)
(setq ms 1)
(setq ms(getint″ 单个处理(0)/批量处理(1):″))
(if(and(/=ms 0)(/=ms 1))
(alert″ 请选择单个或批量处理方式!″)
)
)
(if(=ms 0)
(singleCMP);;单个处理程序
)
(if(=ms 1)
(manyCMP);;批量处理程序
)
;;;删除多余的高程点
(setq si(ssget″X″'((0. ″INSERT″)(8. ″JDH″))))
;;;恢复系统环境
(setvar″blipmode″sblip)
(setvar″gridmode″sgrid)
;(command ″_.layer″″_s″clay ″″)
(command ″_.undo″″_e″)
(setvar″cmdecho″scmde)
(setq*error* olderr)
(princ)
(princ″ 所有高程点均已处理完毕!″)
(princ)
;;;;--------------------------------------------------------------------;
4 程序的不足
运行此程序之前,首先根据机场地形图绘制出以以机场跑道方向为H方向,垂直跑道方向为P方向的20 m×20 m方格网,并在所有方格网交叉点上设置空高程点(高程值为0的高程点),然后利用CASS软件生成三角网,这些工作完成后就可以运行本程序了。笔者施测的机场跑道约2 km,施测地形图的比例尺为1∶500,所需求解的方格网点约1万个左右,运行时间大约30 s。
由于此程序为解释型程序,所以程序运行速度根据地形图高程点的多少来决定,同时方格网点的高程值是根据周围高程点来求解的,如果点距过大则求出来的高程值会与实地有出入。
5 结束语
通过此程序的编制,笔者认识到运用程序软件可以解决许多繁重的重复工作,由于本人能力之限,编制的程序尚有许多不足,望各位同仁多多指正。
[1]郭秀娟.AutoLISP语言程序设计[M].北京:化学工业出版社,2008.