APP下载

基于VLISP对地形图中横断面的提取并生成横断面图的研究

2012-04-29高华峰

科技资讯 2012年12期
关键词:三角网内业横断面

高华峰

摘要:对已有的1∶1000或者更大比例尺数字地形图进行一定的内业处理,将使放线工作中的横断面测量得到很大简化,本文通过AUTOCAD使用自带程序语言VLISP命令的应用,在地形图的内业工作中,直接提取横断面数据,并生成横断面图。

关键词:测量地形图横断面VLISP

中圖分类号:TP399 文献标识码:A 文章编号:1672-3791(2012)04(c)-0016-02

在实际放线工作中经常要测量横断面并生成横断面图,在测量横断面资料时按照传统的方法,在线路桩点处沿线路垂直方向进行左右测量,记录下来,然后在内业中按照各专业需求生成相应格式的横断面数据,继而生成横断面图。如果在工作中对这种传统的方法改进,会很大地节约外业时间。随着RTK等数字化仪器的广泛使用,其误差可完全满足规范有关横断面的10的限差要求,在测量横断面工作过程中,可不用考虑线路的走向,直接按测地形图的方法沿线路两侧需要的宽度范围内测量地形,然后内业中进行横断面的提取,且可利用程序直接生成横断面图脚本文件。当然如果已有工作区域内的1∶1000或1∶500数字化大比例地形图,我们也可直接从数字化图上进行横断面的内业提取。我们在工作中利用VLISP程序做了个小命令可以直接在内业中实现该需求。下面我们就该命令的实现结合实际放线工作进行阐述。

1地形图中的应用

1.1 关键地形点及特殊地物的处理

在外业工作中按地形走势测取关键地形点,在内业中将外业散点及纵断面面数据展于AUTOCAD中,然后生成三角网。在实际工作中经常遇到路基,堤坝,沟渠等特殊地物,在内业中可根据地形点单独生成三角网,将其颜色改成不同于普通地形点的三角网。

1.2 横断面提取格式设定

在生成的三角网图上开始横断面数据的提取,在本文中我们选取的横断面面格式如下。

桩号,高程。

左侧最远距离,高程。

桩位处距离(0),高程。

右侧最近处距离,高程。

当然也可根据各种需要生成不同的格式文件,将生成横断面数据存储于所测的地形展点图形文件的相应文件夹中。

1.3 对该VLISP命令的简要说明

在实现该功能中利用AUTOCAD自带程序语言VLISP进行了命令的编写。具体命令如下。

ln(strlen wjm)

wjm (substr wjm 1 (- ln 4)))

(setq wjm1 (strcat wjmlj wjm "横断面.txt"))

(setq wjm2 (strcat wjmlj wjm "横断面图.scr"))

(setq zg (getint " 输入横断图间隔: "))

(setq zg1 (rtos zg 2 2))

(setq zh (cdr (assoc 1 (entget (car (entsel " 拾取里程桩号:"))))))

(setq pp1 (getpoint " 拾取该里程点位:"))

(setq y1 (car pp1)

x1 (cadr pp1)

h1 (caddr pp1))

(setq zhgc (rtos h1 2 2))

(setq zhgc1 (rtos (+ h1 zg)))

(setqzhgcw1 (rtos (+ h1 zg 2) 2 2)

zhgcw2 (rtos (+ 0 10) 2 1))

(command "osnap" "nod,nea,center" "")

(setq i 1)

(setq fn1 (open wjm1 "a"))

(setq fn2 (open wjm2 "a"))

(setq zhc " ")

(write-line (strcat zh "," zhgc ) fn1)

(write-line "layer m 横断面左侧 " fn2)

(write-line "layer c 5" fn2)

(write-line(strcat "text m " "-10" "," zhgcw1 " " "2.5" " " zh ) fn2)

(write-line(strcat "text m " zhgcw2 "," zhgcw1 " " "2.5" " " zhgc ) fn2)

(write-line "pline" fn2)

(command "-layer" "m" "横断面左侧" "c" "red" "" "" "")

(while (and (< rq 20111018) (progn (initget 8 "x")

(setq pp2 (getpoint " 从最远点依次指定左侧点:"))

(command pp2)

(if (= ''''list (type pp2))

(progn

(setq yp1 (car pp2))

(setq xp1 (cadr pp2))

(setq hp1 (caddr pp2))

(setq dys (- y1 yp1)

dxs (- x1 xp1)

dhs (- hp1 h1))

(setq s1 (sqrt (+ (* dys dys) (* dxs dxs))))

(setq ss1 (rtos s1 2 2)

gc1 (rtos hp1 2 2))

(setq sss1 (rtos (+ s1 zg) 2 2)

gcc1 (rtos (+ hp1 zg) 2 2))

(setq sjj (strcat ss1 "," gc1))

(setq zsj (strcat sjj ","))

(write-line zsj fn1)

(write-line (strcat "-" ss1 "," gcc1) fn2)

(setq i (+ i 1))

) ) ) ) )

(write-line (strcat "0" "," zhgc) fn1)

(write-line (strcat "0" "," zhgc1 " ") fn2)

(write-line "layer m 橫断面右侧 " fn2)

(write-line "layer c 3" fn2)

(write-line "pline" fn2)

(write-line (strcat "0" "," zhgc1) fn2)

(setq ii 1)

(setq zhc "")

(command "-layer" "m" "横断面右侧" "c" "blue" "" "" "")

(command "pline" pp1 "w" "0""0")

(while (progn (initget 8 "x")

(setq pp3 (getpoint " 从第一点依次指定右侧点:"))

(princ (strcat " ") fn2)

(setq zjwz (list yp2 xp2))

(command "-layer" "m" "间隔注记" "c" "red" "" "" "")

(command "text" "j" "c" zjwz 5 0 zg)

(CLOSE fn1)

(close fn2)

(command "-layer" "s" 0 "" "")

(setvar "cmdecho" oce)

(PRINC)

1.4 横断面数据及横断面图的生成

调试无误后编译为shdm.fas文件,在打开AUTOCAD后执行APPLOAD命令,将shdm.fas文件加载,在加载完成后,直接输入shdm。根据提示先输入成横断面图的间隔,然后依照提示点取要提取的桩号,再选取桩位对应的点位,然后依次从线路左侧最远处开始提取横断面,在左侧数据提取完成后,再按鼠标右键,开始从线路右侧最近点依次提取线路右侧横断面,右侧横断面提取完成后,按右键,开始下一个桩位的提取。在提取中直接选取垂直于线路的三角网的边就行了。我们为了区分,在每个桩位提取完成后,在右侧用蓝色多义线进行了标示。在完成提取后,在AUTOCAD下新建一个横断面图的文件,具体生成横断面文件txt格式如下。

1180+100,1073.25 (桩号,高程)

32.00,1074.02,(左距离,高程)

23.73,1073.76,

10.39,1073.47,

0,1073.25

8.57,1073.12, (右距离,高程)

27.09,1073.25,

再执行“工具-运行脚本”,选取地形展点图形文件所在路径文件夹下相应的脚本文件*.scr,自动生成横断面图。

2结语

通过在地形图中直接提取横断面及生成横断面图,使地形图的测量与横断面的测量一体完成,自动化程度高,节约了外业测量的重复劳动,提高了工作效率。对目前广泛进行的公路水利放线测量具有一定的实用性。

参考文献

[1] GPS-RTK高效横断面测量技术研究[J].重庆交通大学学报(自然科学版).

猜你喜欢

三角网内业横断面
公路施工项目内业资料管理探讨
应用地表覆盖数据估算LiDAR内业工作量的方法研究
城市道路横断面设计研究
高速公路机电系统内业资料管理思考
建筑工程内业资料管理探讨
针对路面建模的Delaunay三角网格分治算法
广州市健康体检人群种植修复情况的横断面研究
2014年某院医院感染横断面调查
中医院医院感染横断面调查分析
清华山维在地形图等高线自动生成中的应用