王傳江
(上海市測繪院,上海 200063)
市政道路工程測量中需要根據設計線位進行地形、縱橫斷面測量。縱斷面測量目的是測定線路中樁處的高程,為線路設計提供基礎資料。橫斷面測量是測定中樁處垂直于中線方向的地形起伏形態,繪制橫斷面圖,為路基設計、計算土石方數量以及施工放邊樁之用。目前縱橫斷面野外測量方法包括全站儀和水準儀法等。
通常提供給設計單位的縱橫斷面數據是對應每一里程的距離、高程的文本格式,縱橫斷面數據通常如下:
里程1 高程1
左側:與中樁距離1高程1與中樁距離2 高程2……
右側:與中樁距離1高程1與中樁距離2 高程2……
里程2高程2
左側:與中樁距離1高程1與中樁距離2 高程2……
右側:與中樁距離1高程1與中樁距離2 高程2……
……
根據縱橫斷面數據可轉換生成設計所要求各種格式的橫斷面和縱斷面數據。
在斷面數據檢查時,特別是結合地形圖對斷面數據文本進行對照判讀檢查時,如路頭散點、路面方格水準點、管線的井蓋高程點,斷面數據與這些特征點數據是否矛盾,不直觀。本文基于這一問題,編寫了斷面數據處理的ARX程序,根據地形圖上給定的設計線位,將文本格式的斷面數據讀入到地形圖中,即將各斷面高程點展點到地形圖上,實現斷面點與相應的設計線位相互位置關系一一對應,從而實現每個斷面點在地形圖中的絕對定位,為斷面數據檢查提供一種直觀方便的方法。
本軟件用AutoCAD的二次開發工具ObjectARX開發,ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,它提供了以C++為基礎的面向對象的開發環境及應用程序接口,能真正快速的訪問AutoCAD圖形數據庫。ObjectARX應用程序是一個動態鏈接庫,共享AutoCAD的地址空間,對AutoCAD進行直接函數調用。所以,使用ARX編程的函數的執行速度得以大大提高。ARX類庫采用了標準的C++類庫的封裝形式,這也大大提高了程序的可靠度和效率。
在AutoCAD中將設計線位中線連成為一個PLINE線,加載ARX程序,選擇線位中線,根據提示選擇要讀入的斷面數據文件,程序根據斷面數據文件中每一里程逐點將斷面高程點展點在線位中線DWG文件中。利用AcDb庫提供的應用類查詢和管理Auto-CAD實體的實體對象。
由于ARX提供的acedEntSel()函數返回的點不一定是線位的起點,本程序用AcDb庫提供的應用類函數AcDbCurve通過以下方法獲得設計線位的起點坐標。程序如下:

通過比較DIST1與DIST2大小來確定所選擇的線位的起始點。
由于PLINE線的復雜性,根據其函數表達式來計算每一點切線將比較復雜,根據里程通過AcDb庫函數得到該里程處的坐標,再將里程加上一個微小量,得到該里程處的另一坐標,由兩點坐標,可確定該里程處的切線方向。具體程序如下:

在AutoCAD中加載本程序后界面如圖1、圖2,讀入斷面數據后的展點圖見圖3,疊加地形圖的展點圖見圖4。

圖1 加載本程序后啟動界面

圖2 加載本程序后界面

圖3 讀入斷面數據后的展點圖

圖4 疊加地形圖后的展點圖
在道路工程測量中,高程測量包括地形散點、路面方格水準、管井標高、縱橫斷面測量等。縱橫斷面數據測量是其中工作量很大的一項工作,一條 10 km的道路,涉及縱橫斷面數據近上萬點,由于數據量大,如何保證縱橫斷面數據與地形散點、路面方格水準、管井標高等匹配,給數據錄入和檢查帶來很大工作量。
利用本程序可以實現縱橫斷面數據在線位圖上的快速展點,結合縱橫斷面圖形,可以直觀地了解各斷面的走勢及數據中的異常點,在道路工程的斷面數據檢查中,及時發現數據中的錯誤,給斷面數據檢查工作帶來了方便,本程序已經在中環線浦東段等一些道路工程中進行了應用,收到了較好的效果,在道路工程的數據檢查中比較實用。
[1]黃維通.Visual C++面向對象與可視化程序設計[M].北京:清華大學出版社,2000.
[2]李世國.Auto CAD高級開發技術ARX編程及應用[M].北京:機械工業出版社,1999.
[3]梁雪春,崔洪斌,吳義忠.Autolisp實用教程[M].北京:人民郵電出版社,1998.
[4] 余承飛,方勇.AutoCAD2000二次開發技術(ObjectARX)[M].北京:人民郵電出版社,1999.
[5] 張正祿.工程測量學[M].武漢:武漢大學出版社,2002.
[6]CJJ8-99.城市測量規范[S].