楊雙富
(云南省一九八煤田地質(zhì)勘探隊(duì),云南昆明 650208)
CASS軟件在交叉口豎向設(shè)計(jì)高程放樣中的運(yùn)用
楊雙富?
(云南省一九八煤田地質(zhì)勘探隊(duì),云南昆明 650208)
針對(duì)道路交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程手工獲取過程煩瑣、效率及精度低下、容易出錯(cuò)等問題,在目前較為流行的地形地籍成圖軟件南方CASS環(huán)境中,利用Visual LISP語言編程進(jìn)行二次開發(fā),調(diào)用CASS軟件“查詢指定點(diǎn)高程”的命令,實(shí)現(xiàn)了交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程值的快速計(jì)算,達(dá)到了化繁為簡(jiǎn)、降低工作強(qiáng)度的目的,提高了獲取數(shù)據(jù)的精度和效率。
CASS軟件;交叉口豎向設(shè)計(jì);Visual LISP;查詢指定點(diǎn)高程
交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程值的獲取是城市道路工程設(shè)計(jì)和施工中常遇到的問題,其處理效率和精度將直接影響工程的進(jìn)度和工程量的計(jì)算。目前,施工單位一般是根據(jù)交叉口豎向設(shè)計(jì)控制性高程點(diǎn),在CASS軟件中以較小的等高距繪出等高線圖,再將施工放樣網(wǎng)格疊加上面,然后根據(jù)網(wǎng)格點(diǎn)所在最近的等高線手工內(nèi)插出豎向設(shè)計(jì)高程值。針對(duì)道路交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程獲取的煩瑣、效率及精度低下、容易出錯(cuò)等問題,在CASS軟件環(huán)境中,利用Visual LISP編程調(diào)用其“查詢指定點(diǎn)高程”命令,快速計(jì)算出交叉口豎向設(shè)計(jì)網(wǎng)格點(diǎn)的高程值,提高了施工放樣數(shù)據(jù)獲取的精度和工作效率。
2.1 高程值計(jì)算公式
在道路交叉口豎向設(shè)計(jì)中,通常是先根據(jù)交叉口范圍內(nèi)路中線上、邊界線上的各控制性高程點(diǎn)組成Delaunay三角網(wǎng),然后根據(jù)施工放樣網(wǎng)格點(diǎn)所在的三角形進(jìn)行雙線性內(nèi)插求出其高程值。設(shè)三角形的三個(gè)頂點(diǎn)的坐標(biāo)為A(xa,ya,ha)、B(xb,yb,hb)、C(xc,yc, hc),網(wǎng)格點(diǎn)P的坐標(biāo)為(x,y,h),則P點(diǎn)的高程內(nèi)插計(jì)算公式為式(1):
2.2 程序?qū)崿F(xiàn)
在CASS軟件環(huán)境中,其“查詢指定點(diǎn)高程height”命令恰好能完成Delaunay三角網(wǎng)組成、內(nèi)插計(jì)算指定點(diǎn)高程的功能,并且能夠被Visual LISP的command函數(shù)調(diào)用,因此采用Visual LISP編程調(diào)用該命令可快速計(jì)算出交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)的高程值。交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程值計(jì)算程序保存于名為“SxSGc.lsp”文件中,它由一個(gè)主控函數(shù)“c:sxsjgc”,三個(gè)子函數(shù)“tqkzxgc”、“ckfwntyqjd”、“l(fā)czhzbpx”組成,限于篇幅,以下僅給出主控函數(shù)。其中函數(shù)“tqkzxgc”用于提取"JCK-KZXGC"圖層上所有控制性高程點(diǎn)的平面坐標(biāo)及高程值,并存入與當(dāng)前圖形文件相同路徑且名為“交叉口豎向設(shè)計(jì)控制性高程.dat”的文件中;函數(shù)“ckfwntyqjd”用于求取窗口范圍內(nèi)圖層" JCK-Wgx"上直線、圓弧、二維多線相互間的所有交點(diǎn);函數(shù)“l(fā)czhzbpx”用于將計(jì)算結(jié)果按指定的起點(diǎn)及方向排序、注記高程值及編號(hào),并將豎向設(shè)計(jì)網(wǎng)格點(diǎn)的編號(hào)、平面坐標(biāo)和高程寫入到與當(dāng)前圖形文件相同路徑且名為“交叉口豎向設(shè)計(jì)網(wǎng)格點(diǎn)高程值表.csv”的文件中,方便用Excel軟件打開后編輯、排版和打印,然后交付外業(yè)交叉口豎設(shè)計(jì)高程放樣。
(defun c:sxsjgc()
(vl-load-com)
(setq xtblm'("cmdecho""osmode")
xtblz(mapcar'getvar xtblm);獲取系統(tǒng)變量的原始值
)
(mapcar'setvar xtblm'(0 33));對(duì)系統(tǒng)變量初始化
(command"_undo""be");設(shè)置撤銷命令的起點(diǎn)
(if(=(tblsearch"style""stz0.7")nil)
(command"style""stz0.7""宋體"""0.7"""""")
)
(if(setq p1(getpoint" 范圍左上角點(diǎn):"))
(if(setq p2(getcorner p1" 范圍右下角點(diǎn):"))
(if(setq p3(getpoint" 排序起點(diǎn):"))
(if(setq p4(getpoint p3" 排序方向點(diǎn):"))
(if(tqkzxgc p1 p2);提取控制性高程點(diǎn)坐標(biāo)及高程值,并存入指定文件中
(if(setq wgjdb(ckfwntyqjd p1 p2));求得豎向設(shè)計(jì)網(wǎng)格線的所有交點(diǎn)
(progn
(setq jgb nil)
(mapcar'setvar xtblm'(1 0))
;調(diào)用CASS的查詢指定點(diǎn)高程命令,取得交叉口網(wǎng)格線所有交點(diǎn)的高程值
(command"_height"pause)
(foreach pt wgjdb
(command pt)
(setq dxf(entget(entlast))
pt (cdr(assoc 10 dxf))
jgb(cons pt jgb);提取坐標(biāo)及高程值
)
(entdel(entlast));刪除新生成的高程點(diǎn)圖元
)
(command"");結(jié)束命令
(mapcar'setvar xtblm'(0 0))
(if jgb(lczhzbpx p3 p4 jgb));計(jì)算結(jié)果排序、注記和寫入指定文件中
)
)
)
)
)
)
)
(command"_undo""e");設(shè)置撤銷命令的止點(diǎn)
(mapcar'setvar xtblm xtblz);恢復(fù)系統(tǒng)變量的原始值
(princ)
)
某市政道路主路行車道半幅寬9 m,與之相交叉的支路行車道半幅寬7 m,兩道路中線交點(diǎn)的設(shè)計(jì)高程為311.50 m,主路由西向東在交叉點(diǎn)兩側(cè)的縱坡分別為1.013%、0.798%,支路由北向南的縱坡為-2.138%,兩條道路的橫坡均為1.5%,以不大于5 m的間距劃分出交叉口施工放樣網(wǎng)格,以路中設(shè)計(jì)高程及道路縱、橫坡計(jì)算出中線上、邊線上施工放樣網(wǎng)格點(diǎn)的高程作為該交叉口豎向設(shè)計(jì)的控制性高程點(diǎn)如圖1,其他各網(wǎng)格點(diǎn)的高程如下所述。
3.1 計(jì)算圖準(zhǔn)備
(1)在CASS軟件中新建一圖形文件;
(2)分別建立名為“JCK-Wgx”、“JCK-KZXGC”的兩個(gè)圖層,圖層的顏色以自己的習(xí)慣設(shè)置;
(3)在圖層JCK-Wgx上,根據(jù)設(shè)計(jì)文件的平面參數(shù),用直線段、圓弧、二維多段線畫出交叉口的邊界線和網(wǎng)格線,其中邊界線有圓弧部分的線用二維多段線畫為一根線,或者用直線段+圓弧+直線段畫出后再合并一根線,畫線時(shí)用設(shè)計(jì)文件中給出的絕對(duì)坐標(biāo)輸入,且要將X坐標(biāo)、Y坐標(biāo)互換后輸入,網(wǎng)格線可以超出邊界線1個(gè)單位長(zhǎng),這樣做是為了避免因Visual LISP的“intersectwith”方法有Bug而致使個(gè)別交點(diǎn)不能求出的問題出現(xiàn)。
(4)在圖層JCK-KZXGC上,根據(jù)設(shè)計(jì)文件的縱、橫斷面設(shè)計(jì)參數(shù),以單行文本左對(duì)齊方式注記出控制性高程點(diǎn)各點(diǎn)的高程值。
(5)在上面(3)、(4)步完成,經(jīng)檢查無誤后存盤,完成后的圖形如圖1所示。
圖1 交叉口豎向設(shè)計(jì)網(wǎng)格線圖
3.2 交叉口豎向設(shè)計(jì)網(wǎng)格點(diǎn)的高程值計(jì)算與輸出
交叉口豎向設(shè)計(jì)網(wǎng)格點(diǎn)的高程值計(jì)算與輸出步驟如下:
(1)啟動(dòng)CASS軟件,打開準(zhǔn)備好的交叉口豎向設(shè)計(jì)網(wǎng)格線圖;
(2)將SxSjGc.lsp加載;
(3)在命令行鍵入SxSjGc并回車,按照提示指定能夠包含交叉豎向設(shè)計(jì)網(wǎng)格線的左上角點(diǎn)、右下角點(diǎn),排序起點(diǎn)及排序方向點(diǎn),當(dāng)出現(xiàn)輸入高程點(diǎn)數(shù)據(jù)文件對(duì)話框時(shí)選取“交叉口豎向設(shè)計(jì)控制性高程.dat”,其他則用“Enter”來回應(yīng)即完成交叉口豎向設(shè)計(jì)高程注的計(jì)算、注記和數(shù)據(jù)寫入到文件中。
圖2、圖3給出了交叉口豎向設(shè)計(jì)高程注記圖和部分計(jì)算結(jié)果圖。
圖2 交叉口豎向設(shè)計(jì)高程注記圖
圖3 交叉口豎向設(shè)計(jì)網(wǎng)格點(diǎn)高程值表
這種充分利用安裝于AutoCAD 2006平臺(tái)上的CASS 7.0軟件現(xiàn)有的功能,以Visual LISP編程調(diào)用方式實(shí)現(xiàn)了道路交叉口豎向設(shè)計(jì)施工放樣網(wǎng)格點(diǎn)高程值的快速計(jì)算出,已在多個(gè)市政道路工程進(jìn)行了實(shí)際應(yīng)用,提高了施工放樣數(shù)據(jù)獲取精度和工作效率,具有一定的參考價(jià)值。值得注意是:由于CASS軟件只提供了命令行方式功能調(diào)用,而沒給出相應(yīng)函數(shù)接口,兩者的銜接和操作上都略顯生硬。而當(dāng)點(diǎn)不在由交叉口豎向設(shè)計(jì)控制性高程點(diǎn)組成的最小凸多邊形內(nèi)時(shí),CASS軟會(huì)給出相應(yīng)提示信息并中斷,不能得到所有點(diǎn)的高程,應(yīng)在程序中增加點(diǎn)在多邊形中的判斷來避免這種情況的發(fā)生。
[1] 孫江宏,丁立偉,米潔.Visual LISP R14~2000編程與應(yīng)用[M].北京:科學(xué)出版社,1999.
[2] 吳永進(jìn),林美櫻.AutoLISP&DCL基礎(chǔ)篇[M].北京:中國(guó)鐵道出版社,2002.
[3] 陳伯雄,馮偉.Visual LISP程序設(shè)計(jì)—技巧與范例[M].北京:人民郵電出版社,2002.
[4] 劉偉,徐慶元.交叉口立面計(jì)算機(jī)輔助設(shè)計(jì)[J].山西建筑,2004(9):200~200.
[5] 謝剛生,范軸,倪曉東.數(shù)字化地形地籍成圖系統(tǒng)CASS 7.0用戶手冊(cè).廣州:南方測(cè)繪儀器有限公司.2006.
[6] 張國(guó)權(quán),孫全黨,徐久成.AutoCAD 2006應(yīng)用教程[M].北京:電子工業(yè)出版社,2007.
AutoCAD Drawing for the New Arc Three Kinds of Ways
Yang Shuangfu
(198 Coal Geological Exploration Teams in Yunnan,Kunming 650208,China)
The vertical design of road construction layout grid intersection point elevation tedious manual process for obtaining,efficiency and accuracy is low,prone to error and other issues,more popular in the current cadastral mapping software terrain south CASS environment,using Visual LISP programming language secondary development,calling CASS software“query specified point elevation”order to achieve a quick calculation of vertical design and construction stakeout grid intersection point elevation values,reaching to simplify and reduce the work intensity of purpose to improve the Get the accuracy and efficiency of the data.
CASS software;intersection vertical design;visual LISP;queries specified point elevation
2014—05—09
楊雙富(1967—),男,高級(jí)工程師,主要從事工程測(cè)量工作。