高華峰
摘要:對已有的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].重慶交通大學學報(自然科學版).