劉俊萍 甘 俊
(鐵道第三勘察設計院集團有限公司,天津 300251)
地形圖制作主要由采集和編輯兩部分組成,在地形圖編輯過程中,準確繪制示坡線是編輯的內容之一。示坡線就是垂直于等高線的短線,用以指示斜坡降低的方向。不同比例尺的地形圖,示坡線長度是不一樣的。
目前鐵路帶狀地形圖制作的數據源主要有兩種,基于傳統攝影測量方式獲取航拍影像和基于機載激光雷達獲取的點云數據,通過相應的處理后可獲取待編輯的AutoCAD矢量數據。在傳統作業模式下,對兩種類型的AutoCAD矢量文件進行示坡線繪制的方法如下:基于高程點與等高線的關系或線的屬性值來判斷地形峰值,獲取需要繪制示坡線的等高線對象,憑借經驗確定封閉等高線對象的內徑最大處位置,在該位置根據不同比例尺的地形圖,繪制相應長度的示坡線,并置于相應的圖層中。
該方法的缺點在于:作業人員只能憑借熟練程度和作業經驗來完成示坡線繪制,其效率和精確度都比較低下,往往造成圖層植入錯誤、繪制長度不準確、示坡線漏打等情況,嚴重影響地形圖質量。因此,結合示坡線與等高線及圖形比例的關系,應用CAD二次開發一種批處理方式的示坡線自動繪制程序。
該方法主要利用ObjectARX技術,在AutoCAD平臺下自主開發完成。ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,提供了以C++為基礎,面向對象的開發環境及應用程序接口,能真正快速的訪問AutoCAD圖形數據庫。
示坡線批量自動繪制的基本思路為:首先需要獲得一張地形圖文件的等高線實體,進一步獲取需要進行示坡線處理的對象集合。其次,依次判斷對象集合中的每個對象實體,找到示坡線的繪制位置。最后,結合輸入地形圖的比例尺信息,確定每個對象實體示坡線的長度和方向,并繪制示坡線,進而實現整張地形圖示坡線的批量自動繪制。
在ObjectARX語言實現過程中,可利用acutBuild-List函數方便實現框選或通選獲取示坡線處理的對象ID集合,后逐個對象進行示坡線繪制處理。在對單個對象進行處理時,先開辟一個點集合數組AcGePoint3dArray,裝載當前處理對象的頂點,依據兩點間距離最大準則,通過循環運算,確定需要繪制示坡線的兩個端點位置;以該兩端點位置連線方向為示坡線方向;基于成圖比例尺確定示坡線的長度,綜合位置、方向和長度繪制單個對象的示坡線,最后將示坡線歸化至相應的圖層中,即完成單個對象的示坡線繪制工作。
基于上述方法和ObjectARX技術實現的示坡線批量自動繪制功能,直接以DLL或ARX方式加載到以CAD平臺環境搭建的程序中,能夠實現與其他CAD功能的很好整合,運行效率較高,使用方便,很好地彌補了傳統手工繪制示坡線的不足,大大提高了制圖效率。通過示坡線繪制探索,基于ObjectArx開發包,進行了如圖1所示的開發流程設計。

圖1 批量處理示坡線內業流程


在CAD界面下,加載程序生成的ARX格式批量示坡線繪制程序,然后打開待處理的地形圖文件,直接在命令窗口給出相應的CAD命令,即可以將需要生成示坡線的等高線上,全部自動繪制上相應比例尺的示坡線。除批處理方式外,亦可選擇制定待生成示坡線的等高線,執行即可,效果如圖2所示。

圖2 加載示坡線程序后CAD界面截圖
實踐表明,該方法結果正確,速度快,保證了示坡線符號均勻、美觀。
采用AutoDesk CAD平臺,運用Visual C++編譯環境結合,完成了軟件的開發利用。試運行成功后,筆者定制了批處理程序,最終實現了等高線上全部自動繪制相應比例尺的示坡線。在生產中多次使用證明其正確性,僅示坡線這一部分的工作效率提高了80%。作業程序化,不僅大大減少了工作量,而且工作內容也簡化了許多,從而減少了人的因素對質量的影響。地形圖的質量更加標準化,減輕了作業人員的勞動強度。
[1]GBT20257.1—2007 國家基本比例尺地圖圖示[S]
[2]GB/T 13923—2006 基礎地理信息要素分類與代碼[S]
[3]GB/T20257.1—2007 國家基本比例尺地圖圖式第1部分:1∶500、1∶1000、1∶2000 地形圖圖式[S]
[4]GBT20257.2—2006 國家基本比例尺地圖圖式第2部分[S]
[5]《測量學》編輯委員會.測量學:下冊[M].北京:測繪出版社,1985