解析AutoCAD軟體道路斷面圖繪製技術論文

解析AutoCAD軟體道路斷面圖繪製技術論文

  1 CAD常見的二次開發手段

  CAD 軟體二次開發是指在現有的軟體基礎上,各使用者為提高軟體的使用效率,讓軟體更加貼合用戶的實際需求,而進行功能定製化的開發工作。其主要目的是為讓CAD 軟體的功能最大化利用起來,實現使用者的個性化需求。CAD 軟體為使用者提供的常見二次開發手段有以下幾種:

  1) 函式庫形式,主要是利用CAD 提供的程式設計環境和基於函式庫的API 介面,使用者透過編寫程式來實現對AutoCAD 開發的方法,可實現在無CAD 環境下執行,但該法具有一定的侷限性,無法充分發揮CAD 的系統性能。另外,可以實現介面定製,擴充CAD功能,但只能在CAD 系統內執行。

  2) ActiveX Automation 形式,它是建立在COM 基礎之上,由OLE Automation 發展而來的,其核心技術是允許一個應用程式操作另一個應用程式,是一種比較成熟方便且實用的技術,在實際開發中得到了廣泛的運用。

  2 CAD 開發模式

  AutoCAD 公司為了滿足廣大使用者對軟體功能的定製功能要求,針對各類客戶的需求提供了多種形式的二次開發工具,如AutoLISP,VBA,Object ARX 等開發工具。使用者可根據自己的實際情況選擇合適的開發工具進行二次開發,以滿足設計生產的需要,實現圖形繪製的快速化提高工作效率。針對道路勘測階段對設計的重要性,確保斷面圖繪製的快速和高效十分必要。下面介紹幾種常用的二次開發模式,並結合測繪行業的需求特點進行總結。

  1) VBA( Visual Basic for Applications) 開發模式,它被整合到AutoCAD 2000 中,打通了使用者訪問CAD 中豐富技術框架的全新通道。VBA 可用透過ActiveX 介面實現與CAD 的通訊,並能夠訪問和控制CAD 所有圖形物件和非圖形物件,包括這些物件的方法和屬性等。由於VBA 是由VB 發展而來,都是面向物件程式設計,與其他程式語言相比,具有更簡單,更易學等特點。因此,在測繪行業內運用較為廣泛,二次開發的測繪案例較多。但VBA 開發具有互動性差,不能直接編譯等缺點。

  2) Object ARX 開發模式,Object ARX 是Autodesk 公司針對AutoCAD 平臺上的二次開發而推出的一個開發軟體包,它提供了以C + + 為基礎的面向物件的開發環境及應用程式介面,能真正快速的訪問AutoCAD 圖形資料庫。與以往的AutoCAD 二次開發工具Auto LISP 和ADS 不同,Object ARX 應用程式是一個DLL( 動態連結庫) ,共享AutoCAD 的地址空間,對AutoCAD 進行直接函式呼叫。所以使用ARX 程式設計的函式的執行速度得以大大提高。

  ARX 類庫採用了標準的C + + 類庫的封裝形式,這也大大提高了程式設計師程式設計的可靠度和效率。透過ARX 定義的外部命令,可以像CAD 內部命令一樣執行,LISP 所呼叫,具有可封裝性、可繼承性、多型性等特點。因此,廣泛被專業軟體開發公司用於模組定製與升級等商業開發。但只有具備了相關專業軟體開發知識和系統的學習才能掌握這一開發技術,對於普通測繪工作者來講具有相當大的難度。

  3) Auto LISP 開發模式,LISP 語言是一種針對擴充及自訂AutoCAD函式機能而產生的,它擅於處理序列文字,於20 世紀50 年代末期出現。隨著Autodesk 公司不斷改進,推出了新的版本VisualLISP( VLISP) ,它是Auto LISP 的換代版本,與老式LISP 語言相比,具有更加快速便捷的優點。本身提供了一個完整的開發環境,擁有一個互動式的編譯平臺,使使用者在編寫程式時更加便捷高效。作為通用LISP 語言小子集,它為使用者提供了眾多的功能函式,使用者只需直接呼叫函式即可實現大部分的CAD 圖形繪製功能,編寫時按照其語法慣例和規則,即可實現靈活的程式開發。另外,VLISP 還提供了用於釋出獨立應用程式的工具,保障了程式的安全性和密封性。基於VLISP 開發出的應用程式具有相對獨立性的特點,與Object ARX 應用程式共享CAD 地址空間不同,當程式執行一旦出現錯誤或失敗等問題,不會對CAD 自身程序造成影響。加之具有開發週期短,語言簡單易學,十分受廣大測繪工作者的歡迎,尤其是程式開發的初學者。

  3 道路斷面繪製程式開發

  測繪行業與設計行業的聯絡十分緊密,基於CAD 在設計行業的廣泛應用,CAD 對於測繪行業人員來說十分重要。尤其是在勘測單位,地形圖與道路斷面資料是設計的基礎性資料。道路的縱橫斷面圖主要是由外業採集的地面線組成,各斷面按照樁號的大小一一對應,斷面形態直接反映現場道路走向的地形變化情況。為了能夠準確反映出現場的'地形狀況,在斷面採集時,除了對整數樁號( 一般整20 m) 的斷面進行採集外,還需要對地形起伏較大的地段進行一定加樁,這樣造成經過不同地形的斷面數量差距往往很大。由於每個斷面的資料都不一樣,要完成一個道路勘測專案的斷面繪製內業任務將十分繁重。

  3. 1 開發工具的選擇

  針對斷面圖繪製開發自動化繪製程式十分必要,根據上述CAD 提供的幾種開發模式優缺點,結合道路斷面圖繪製的特點,本文認為採用VLISP 和VBA 的開發工具進行二次開發具有優勢。主要原因有兩個:

  1) 根據測繪行業自身屬於基礎服務性的特點,尤其是在勘測領域,主要任務是提供基礎資料,功能相對單一,這就決定了不需要大型的專業程式,在道路斷面繪製程式上更是如此,要求程式具備按照規範要求能夠自動化完成斷面圖繪製即可。

  2) 測繪從業者大多沒有接受過專業的軟體開發培訓,尤其是在一線的測量人員,Object ARX 的開發模式往往需要更系統的軟體開發知識儲備,VBA 和VLISP 的開發工具更為簡單,語言基礎要求較低,透過自學即可掌握相關的開發技術。

  3. 2 技術要點分析

  雖然根據工程性質的不同,對斷面圖繪製要求會有所不同,但在基本框架和整體要求上基本一致,原理性的東西並沒有變,通常一個完整的斷面圖包括: 座標軸、斷面線、基本座標格網、輔助座標格網、比例尺、工程資訊等內容。按照規範規定,線路縱斷面採用直角座標法繪製,以里程為橫座標,以高程為縱座標。里程比例尺常採用1∶ 2 000 和1∶ 1 000,為突出地形起伏,高程比例尺通常為里程比例尺的10 倍~ 20 倍。橫斷面一般選在里程樁和線路橫向地形變化明顯處,在大中小橋頭、隧道洞口等地適當加密,線路的縱橫比例尺一般採用1∶ 100 或1∶ 200。在CAD 平臺下繪製時首先是要建立相應的圖層,分別用不同顏色和線型加以區分,以便於使用者對斷面線、格網線、圖框線等資訊判斷。然後是建立相應的圖框和格網,格網的作用是為了方便使用者能夠在圖紙上直接量取斷面的距離和高程資訊。接著就是要將專案的基本資訊進行錄入,主要是專案的人員資訊和單位資訊。最後,要完成斷面線的繪製,將地面特徵點逐一展現在圖上並連線,即繪出斷面圖。

  斷面圖繪製程式設計主要技術難點在於如何根據地面特徵點高程的變化來確保合理容納適量的斷面線。因為,通常一張斷面圖只能容納有限的斷面線,要確保斷面線既不超出圖框範圍又不造成空間浪費,需要採取合理的演算法來進行約束。根據本文的研究和實驗,可採用計算每個斷面最大高差的形式來確定每條斷面的佔用空間,這樣就可準確計算出各斷面圖容納的斷面梳理。

  4 結語

  道路斷面圖繪製是道路勘測的基本任務,目前對斷面圖繪製程式的開發案例也比較多,但多數只侷限於單位的內部利用,各單位開發的繪圖程式只針對本單位所涉及的業務種類,並不具有通用性,如何開發出具通用性的繪圖程式將是日後的一個方向。作者也在積極做這方面的嘗試,嘗試用C# 語言和指令碼技術結合的方法進行程式開發,使得程式功能更加完善,能夠脫離CAD 環境執行,已有初步成果,將在日後的論文中發表。

最近訪問