牛秋丽
(唐山市水利规划设计研究院,河北 唐山 063000)
横断面测量指的是测量中桩处垂直于中线方向的地表起伏形态的作业。在重大项目规划、工程建设上,横断面图能展示更多的信息,为后续的决策提供重要的依据。比如修建水库、公路等,都需要进行横断面分析,以优化修建方案;在水利工程、管线工程、道路工程等带状工程的施工设计中,断面数据是指导施工和计算土方的重要依据。
随着测绘技术和测量设备的发展,断面测量外业数据的采集在保证高精度的同时,实现了高效、便捷。因此,断面测量的内业数据处理的精度和效率将直接影响工程的建设进度和质量。传统的断面测量内业数据处理方法主要靠作业人员手工录入外业测量数据,由于数据量较大,数据录入不仅效率低而且容易出错,不利于成果的整理与检查。尤其是面对时间紧、任务急的工程,内业处理的效率成为制约工程进度的主要因素。因此,迫切需要改进内业数据处理方式,提高作业效率和精度。本文配合南方CASS软件和济南百图水利土石方设计软件,利用AutoCAD强大的Visual LISP 语言进行二次开发,根据断面线及纵向偏差范围内的特征点提取断面数据文件,同时生成提取断面的高程点检查图层,最后,利用断面软件自动绘制断面图,简化工作流程,提高效率和精度。
在日常生产中,AutoCAD作为主流的绘图软件,广泛应用于各个行业。AutoCAD开放式的体系结构,决定了其强大的二次开发空间及潜力[1]。目前AutoCAD二次开发工具主要有VBA、ObjectARX、Visual LISP、Visual C++等。其中,Visual LISP使用方便、开发速度快、方便调试,用户可以利用Visual LISP语言实现对AutoCAD当前图形的数据库的直接访问和修改,增加AutoCAD新命令和开发参数化绘图程序等,为AutoCAD提供了快速简洁开发编程的途径,使得用户能充分利用对AutoCAD进行二次开发且不受CAD版本限制,通用性好[2]。
首先,结合工程实际需要或设计中心线,确定横断成果的中心线、断面间隔、断面宽度、断面方向,可利用CASS软件自带的“生成里程文件”命令完成。然后,在CASS图形中选择中心线、断面线,通过代码实现自动计算桩号的功能[3]。
(setq zxx (entsel " 请选择中心线"))[4]
(setq zxx_vla(vlax-ename->vla-object (car zxx)))
(prompt " 拾取横断面线:")
(setq e (ssget ":S" '((0 ."LINE"))))
(setq jdj(list))
(setq jdj(vlax-invoke zxx_vla 'IntersectWith (vlax-ename->vla-object (ssname e 0))0))
;计算横断面线与中心线交点(桩号)
(setq jd(list (nth 0 jdj)(nth 1 jdj)(nth 2 jdj)))
由于在外业数据采集时,横断测量存在偏离断面线的情况,所以内业处理时结合工程现场综合考虑。用户可以根据实际情况,自定义断面特征点提取的宽度(默认为横断线左右两端各5 m),同时在CASS图形中显示自动提取高程点的位置和范围线,利于用户检查,直观、便捷。
(setq s1 (ssname e 0))[5]
(setq d (getreal " 高程提取宽度<5>" ))
;高程点提取的宽度
(setq p1 (vlax-curve-getstartPoint s1)
p2 (vlax-curve-getendPoint s1)
r (+ (angle p1 p2)(* pi 0.5)))
(command "pline" (polar p1 r (-d))(polar p2 r (-d))(polar p2 r d)(polar p1 r d)"c")
;高程点提取范围画线计算
(setq ss (ssget "cp" (list (polar p1 r (-d))(polar p2 r (-d))(polar p2 r d)(polar p1 r d))
(list (cons 8 "GCD")(cons 2 "GC200"))))
;高程点提取
位于断面线上的高程点可直接计算到中心点的距离;偏于断面线的离散点应首先把离散点投影到断面线,求解离散点的垂足,然后计算离散点的垂足到中心点的距离。
(repeat (sslength ss)[6]
(setq si (ssname ss m))
(setq pt(cdr (assoc 10 (entget si))))
(setq pcz (vlax-curve-getClosestPointTo s1 pt t));求解高程点到断面线的垂足
(setq cz_dist (-(distance p1 pcz )(distance p1 jd))));计算距离中心点平距
按照中心线的前进方向,以左负右正的原则,把所有提取的断面特征点进行分组。
(( ((>cz_dist 0)(setq lst_y (cons (cons cz_dist z)lst_y))) ((=cz_dist 0)(setq zx_h z)) 把分组后的断面特征点,按照桩号从小到大的顺序排列。 (setq dmsj(sort-pt (append (cons lst_zx lst_z)lst_y)"x" 0.001))[8];断面数据排序 (write-line hdm_zh fw);输出桩号 (repeat (length dmsj) (setq dm_jl (rtos (car (nth i dmsj))2 3));输出 (setq dm_h (rtos (cdr (nth i dmsj))2 3)) (while (<(strlen dm_jl)12) (setq dm_jl (strcat " " dm_jl))) (while (<(strlen dm_h)12) (setq dm_h (strcat " " dm_h))) (write-line (strcat dm_jl dm_h )fw)) 按照济南百图水利土石方软件批量绘制横断面图的格式要求,将自动提取的横断面数据进行整理并输出,格式如下: 0+000 (横断面桩号) -50.000 10.000 ;(左侧桩平距) (高程) …… …… 0.000 10.000 ; (中心桩) (高程) …… …… 50.000 10.000 ; (右侧桩平距) (高程) 2019年全域治水清水润城今冬明春主城区河道水系清淤工程是按照市委、市政府的统一部署,重点实施河湖水系连通、河道综合治理、水源涵养及供水、乡村振兴水环境综合整治、傍河坑塘整治和智慧水务系统建设等的重点工程。其中,160 km的河道横断面测量时间最紧、任务最重,利用开发的Visual LISP程序自动提取横断数据,生成横断文件,大大提高了作业精度和效率,保质保量完成工作任务。 运行南方CASS9.1数字成图软件,展绘外业采集的高程点,高程点图层必须为GCD图层;按照桩号从大到小的方向绘制中心线;断面间隔100 m,断面宽度100 m[9],断面线必须为直线。图形准备如图1所示。 命令行输入“APPLOAD”,选择程序“ZHDM.lsp”。提示加载成功后,调用横断面数据提取对话框,如图2所示,按照界面显示[10],依次选择文件保存路径及名称—选择中心线、线路起点里程桩号、横断面间距、横断面宽度—选择数据提取宽度(断面允许偏差距离),前进方向、高程注记位数及中心桩高程内插均为默认值,最后生成完整的横断成果文件,横断成果文件类型为“*.txt”文本格式。 以陡河河道为例,程序自动生成某断面数据如下。利用济南百图水利土石方软件,根据生成的横断面成果文件,批量绘制横断面图,横断面图如图3所示,横轴s表示距离,比例尺为1:300,纵轴h表示高程,比例尺为1:200。 图3 5+050横断面图 5+050 -45.497 22.730 - 43.670 22.660 - 16.772 17.820 - 15.752 17.740 - 13.751 17.100 0.000 15.720 12.047 15.720 30.384 17.150 31.275 17.800 31.869 17.910 45.471 23.480 47.820 23.940 48.000 23.940 以2019年全域治水清水润城今冬明春主城区河道水系清淤工程中的陡河河道为例,将开发的Visual LISP程序自动提取的断面点与外业实测的断面点进行精度分析,如表1所示,△X最大误差90 mm,△Y最大误差90 mm,△H最大误差83 mm,结果表明程序自动提取的断面点在大大提高效率的前提下,平面精度和高程精度满足《水电水利工程施工测量规范》[11]中关于横断面测量限差要求。 表1 Visual LISP程序自动提取断面点精度统计/m 笔者利用Visual LISP的二次开发,实现长距离带状断面测量数据的自动提取,且具备提取数据的检查功能,仅用几分钟就轻松完成了160 km的河道横断面测量的内业数据处理工作。实践证明,该方法切实可行,能大幅降低人工劳动强度,提高作业精度和效率,具有较高的应用价值和推广意义。 同时,通过实践工程应用,还发现几点不足之处需要改进和完善:(1)在运行的CASS9.1数字成图软件中,展绘的高程点必须在“GCD”图层,且高程点不能人工编辑和修改;(2)程序仅仅依靠断面线的起点和终点来判断左右、计算桩号,不能按照线路的前进方向自动左右分组。2.5 高程离散点排序输出
2.6 断面成果文件输出
3 程序的实现与应用
3.1 图形准备
3.2 程序加载
3.3 成果输出
3.4 精度统计
4 结 语