牛秋麗
(唐山市水利規(guī)劃設(shè)計(jì)研究院,河北 唐山 063000)
橫斷面測(cè)量指的是測(cè)量中樁處垂直于中線方向的地表起伏形態(tài)的作業(yè)。在重大項(xiàng)目規(guī)劃、工程建設(shè)上,橫斷面圖能展示更多的信息,為后續(xù)的決策提供重要的依據(jù)。比如修建水庫(kù)、公路等,都需要進(jìn)行橫斷面分析,以優(yōu)化修建方案;在水利工程、管線工程、道路工程等帶狀工程的施工設(shè)計(jì)中,斷面數(shù)據(jù)是指導(dǎo)施工和計(jì)算土方的重要依據(jù)。
隨著測(cè)繪技術(shù)和測(cè)量設(shè)備的發(fā)展,斷面測(cè)量外業(yè)數(shù)據(jù)的采集在保證高精度的同時(shí),實(shí)現(xiàn)了高效、便捷。因此,斷面測(cè)量的內(nèi)業(yè)數(shù)據(jù)處理的精度和效率將直接影響工程的建設(shè)進(jìn)度和質(zhì)量。傳統(tǒng)的斷面測(cè)量?jī)?nèi)業(yè)數(shù)據(jù)處理方法主要靠作業(yè)人員手工錄入外業(yè)測(cè)量數(shù)據(jù),由于數(shù)據(jù)量較大,數(shù)據(jù)錄入不僅效率低而且容易出錯(cuò),不利于成果的整理與檢查。尤其是面對(duì)時(shí)間緊、任務(wù)急的工程,內(nèi)業(yè)處理的效率成為制約工程進(jìn)度的主要因素。因此,迫切需要改進(jìn)內(nèi)業(yè)數(shù)據(jù)處理方式,提高作業(yè)效率和精度。本文配合南方CASS軟件和濟(jì)南百圖水利土石方設(shè)計(jì)軟件,利用AutoCAD強(qiáng)大的Visual LISP 語(yǔ)言進(jìn)行二次開(kāi)發(fā),根據(jù)斷面線及縱向偏差范圍內(nèi)的特征點(diǎn)提取斷面數(shù)據(jù)文件,同時(shí)生成提取斷面的高程點(diǎn)檢查圖層,最后,利用斷面軟件自動(dòng)繪制斷面圖,簡(jiǎn)化工作流程,提高效率和精度。
在日常生產(chǎn)中,AutoCAD作為主流的繪圖軟件,廣泛應(yīng)用于各個(gè)行業(yè)。AutoCAD開(kāi)放式的體系結(jié)構(gòu),決定了其強(qiáng)大的二次開(kāi)發(fā)空間及潛力[1]。目前AutoCAD二次開(kāi)發(fā)工具主要有VBA、ObjectARX、Visual LISP、Visual C++等。其中,Visual LISP使用方便、開(kāi)發(fā)速度快、方便調(diào)試,用戶可以利用Visual LISP語(yǔ)言實(shí)現(xiàn)對(duì)AutoCAD當(dāng)前圖形的數(shù)據(jù)庫(kù)的直接訪問(wèn)和修改,增加AutoCAD新命令和開(kāi)發(fā)參數(shù)化繪圖程序等,為AutoCAD提供了快速簡(jiǎn)潔開(kāi)發(fā)編程的途徑,使得用戶能充分利用對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā)且不受CAD版本限制,通用性好[2]。
首先,結(jié)合工程實(shí)際需要或設(shè)計(jì)中心線,確定橫斷成果的中心線、斷面間隔、斷面寬度、斷面方向,可利用CASS軟件自帶的“生成里程文件”命令完成。然后,在CASS圖形中選擇中心線、斷面線,通過(guò)代碼實(shí)現(xiàn)自動(dòng)計(jì)算樁號(hào)的功能[3]。
(setq zxx (entsel " 請(qǐng)選擇中心線"))[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))
;計(jì)算橫斷面線與中心線交點(diǎn)(樁號(hào))
(setq jd(list (nth 0 jdj)(nth 1 jdj)(nth 2 jdj)))
由于在外業(yè)數(shù)據(jù)采集時(shí),橫斷測(cè)量存在偏離斷面線的情況,所以內(nèi)業(yè)處理時(shí)結(jié)合工程現(xiàn)場(chǎng)綜合考慮。用戶可以根據(jù)實(shí)際情況,自定義斷面特征點(diǎn)提取的寬度(默認(rèn)為橫斷線左右兩端各5 m),同時(shí)在CASS圖形中顯示自動(dòng)提取高程點(diǎn)的位置和范圍線,利于用戶檢查,直觀、便捷。
(setq s1 (ssname e 0))[5]
(setq d (getreal " 高程提取寬度<5>" ))
;高程點(diǎn)提取的寬度
(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")
;高程點(diǎn)提取范圍畫(huà)線計(jì)算
(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"))))
;高程點(diǎn)提取
位于斷面線上的高程點(diǎn)可直接計(jì)算到中心點(diǎn)的距離;偏于斷面線的離散點(diǎn)應(yīng)首先把離散點(diǎn)投影到斷面線,求解離散點(diǎn)的垂足,然后計(jì)算離散點(diǎn)的垂足到中心點(diǎn)的距離。
(repeat (sslength ss)[6]
(setq si (ssname ss m))
(setq pt(cdr (assoc 10 (entget si))))
(setq pcz (vlax-curve-getClosestPointTo s1 pt t));求解高程點(diǎn)到斷面線的垂足
(setq cz_dist (-(distance p1 pcz )(distance p1 jd))));計(jì)算距離中心點(diǎn)平距
按照中心線的前進(jìn)方向,以左負(fù)右正的原則,把所有提取的斷面特征點(diǎn)進(jìn)行分組。
(( ((>cz_dist 0)(setq lst_y (cons (cons cz_dist z)lst_y))) ((=cz_dist 0)(setq zx_h z)) 把分組后的斷面特征點(diǎn),按照樁號(hào)從小到大的順序排列。 (setq dmsj(sort-pt (append (cons lst_zx lst_z)lst_y)"x" 0.001))[8];斷面數(shù)據(jù)排序 (write-line hdm_zh fw);輸出樁號(hào) (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)) 按照濟(jì)南百圖水利土石方軟件批量繪制橫斷面圖的格式要求,將自動(dòng)提取的橫斷面數(shù)據(jù)進(jìn)行整理并輸出,格式如下: 0+000 (橫斷面樁號(hào)) -50.000 10.000 ;(左側(cè)樁平距) (高程) …… …… 0.000 10.000 ; (中心樁) (高程) …… …… 50.000 10.000 ; (右側(cè)樁平距) (高程) 2019年全域治水清水潤(rùn)城今冬明春主城區(qū)河道水系清淤工程是按照市委、市政府的統(tǒng)一部署,重點(diǎn)實(shí)施河湖水系連通、河道綜合治理、水源涵養(yǎng)及供水、鄉(xiāng)村振興水環(huán)境綜合整治、傍河坑塘整治和智慧水務(wù)系統(tǒng)建設(shè)等的重點(diǎn)工程。其中,160 km的河道橫斷面測(cè)量時(shí)間最緊、任務(wù)最重,利用開(kāi)發(fā)的Visual LISP程序自動(dòng)提取橫斷數(shù)據(jù),生成橫斷文件,大大提高了作業(yè)精度和效率,保質(zhì)保量完成工作任務(wù)。 運(yùn)行南方CASS9.1數(shù)字成圖軟件,展繪外業(yè)采集的高程點(diǎn),高程點(diǎn)圖層必須為GCD圖層;按照樁號(hào)從大到小的方向繪制中心線;斷面間隔100 m,斷面寬度100 m[9],斷面線必須為直線。圖形準(zhǔn)備如圖1所示。 命令行輸入“APPLOAD”,選擇程序“ZHDM.lsp”。提示加載成功后,調(diào)用橫斷面數(shù)據(jù)提取對(duì)話框,如圖2所示,按照界面顯示[10],依次選擇文件保存路徑及名稱—選擇中心線、線路起點(diǎn)里程樁號(hào)、橫斷面間距、橫斷面寬度—選擇數(shù)據(jù)提取寬度(斷面允許偏差距離),前進(jìn)方向、高程注記位數(shù)及中心樁高程內(nèi)插均為默認(rèn)值,最后生成完整的橫斷成果文件,橫斷成果文件類型為“*.txt”文本格式。 以陡河河道為例,程序自動(dòng)生成某斷面數(shù)據(jù)如下。利用濟(jì)南百圖水利土石方軟件,根據(jù)生成的橫斷面成果文件,批量繪制橫斷面圖,橫斷面圖如圖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年全域治水清水潤(rùn)城今冬明春主城區(qū)河道水系清淤工程中的陡河河道為例,將開(kāi)發(fā)的Visual LISP程序自動(dòng)提取的斷面點(diǎn)與外業(yè)實(shí)測(cè)的斷面點(diǎn)進(jìn)行精度分析,如表1所示,△X最大誤差90 mm,△Y最大誤差90 mm,△H最大誤差83 mm,結(jié)果表明程序自動(dòng)提取的斷面點(diǎn)在大大提高效率的前提下,平面精度和高程精度滿足《水電水利工程施工測(cè)量規(guī)范》[11]中關(guān)于橫斷面測(cè)量限差要求。 表1 Visual LISP程序自動(dòng)提取斷面點(diǎn)精度統(tǒng)計(jì)/m 筆者利用Visual LISP的二次開(kāi)發(fā),實(shí)現(xiàn)長(zhǎng)距離帶狀斷面測(cè)量數(shù)據(jù)的自動(dòng)提取,且具備提取數(shù)據(jù)的檢查功能,僅用幾分鐘就輕松完成了160 km的河道橫斷面測(cè)量的內(nèi)業(yè)數(shù)據(jù)處理工作。實(shí)踐證明,該方法切實(shí)可行,能大幅降低人工勞動(dòng)強(qiáng)度,提高作業(yè)精度和效率,具有較高的應(yīng)用價(jià)值和推廣意義。 同時(shí),通過(guò)實(shí)踐工程應(yīng)用,還發(fā)現(xiàn)幾點(diǎn)不足之處需要改進(jìn)和完善:(1)在運(yùn)行的CASS9.1數(shù)字成圖軟件中,展繪的高程點(diǎn)必須在“GCD”圖層,且高程點(diǎn)不能人工編輯和修改;(2)程序僅僅依靠斷面線的起點(diǎn)和終點(diǎn)來(lái)判斷左右、計(jì)算樁號(hào),不能按照線路的前進(jìn)方向自動(dòng)左右分組。2.5 高程離散點(diǎn)排序輸出
2.6 斷面成果文件輸出
3 程序的實(shí)現(xiàn)與應(yīng)用
3.1 圖形準(zhǔn)備
3.2 程序加載
3.3 成果輸出
3.4 精度統(tǒng)計(jì)
4 結(jié) 語(yǔ)