- 相關推薦
利用VBA程序語言繪制公路縱斷面圖
摘要:VBA作為一個集成的開發環境,能夠使AutoCAD數據與其它的VBA應用程序,如Microsoft Excel軟件,直接共享,實現無縫連接,交換數據。本文介紹如何利用VBA編程建立AutoCAD2000與Excel2000的通信,實現數據交換,快速繪制公路縱斷面地面線。
關鍵詞:公路縱斷面設計 地面線 VBA AutoCAD與Excel的通信
1 前言
縱斷面設計圖是道路縱斷面設計的主要成果,也是道路設計的重要技術文件之一。在縱斷面設計圖上有兩條主要的線:一條是地面線,它是根據中線上各樁點的高程而點繪的一條不規則的折線,反映了沿著中線地面的起伏變化;另一條是設計線,它是經過技術上、經濟上以及美學上等多方面比較后定出的一條規則形狀的幾何線。
公路設計中,在沒有專業設計軟件輔助的情況下,繪制公路縱斷面圖是很繁瑣的事,需要進行大量的、重復的操作,既勞神,又容易出錯。特別在公路外業勘測階段,需要在短時間內將所測量的中樁高程轉化成縱斷面圖上的地面線,才可以進行路線縱坡設計,分析測量成果(選線)是否合理。
如何快速繪制公路縱斷面地面線呢?答案是:利用Microsoft Excel、AutoCAD都提供的VBA功能,編制程序進行繪制,即把Microsoft Excel表格中的樁號、地面高程等信息讀取出來,在AutoCAD文件里以文字、線條的方式寫出來,就可繪出中樁地面線。
2 VBA簡介
Visual Basic for Application(VBA)是Microsoft面向最終用戶的應用軟件編程語言。它最早出現于Microsoft的Excel和Project中,如今VBA已成為VB和所有Office產品的組件。常用的繪圖軟件AutoCAD也已支持VBA作為二次開發工具。
VBA最大特點和最大優點是利用面向對象(OOP)的ActiveX Automation技術,使語言的引擎在技術上與開發環境分離。它的功能在很大程度上依賴于它的客戶顯露的Automation接口。同時,由于VBA是基于ActiveX Automation技術,它可以使用任何Automation技術的應用程序共同工作。
基于AutoCAD的VBA應用程序就是高級程序語言的計算功能與AutoCAD的繪圖功能結合,使用VBA程序語句來控制對AutoCAD圖形的操作。
VBA作為一個集成的開發環境,它提供了高質量的用戶化編程能力,能夠使AutoCAD數據與其它的VBA應用程序,如Microsoft Excel軟件,直接共享,實現無縫連接,交換數據非常方便。
3 工作機理分析
在Microsoft Excel中,與表對應的對象是工作表(Sheet或Worksheet),與每一個表格方格對應的對象是單元格區域(range),它可以僅包括一個單元格(cell),也可以由多個單元格合并而成。工作表對象中的cells屬性,在單元格的選擇方面可以達到與range相同的效果,它是以行(row)和列(gol)作為參數的,對于行和列的選擇可以采用變量的形式。在本例中,可設定工作表(Worksheet)的每一行第一列(cells(i,1))為中樁樁號,每一行第二列(cells(i,2))為對應的地面高程。
在AutoCAD中,沒有與表對應的對象,但可以根據表中前后樁號定義水平距離,根據地面高程定義垂直距離,將表中數據理解為線條與文字對象的集合。這樣,通過讀取Microsoft Excel文件中的最小對象—單元格區域(cells(i,j))的主要信息,利用VBA建立AutoCAD與Excel的通信,然后在AutoCAD文件里指定的圖層、位置畫線條,書寫文字。通過循環,遍歷所有單元格區域(cells(i,j)),邊讀邊寫,最終完成縱斷面地面線的繪制及樁號、地面高程的書寫。
4 具體實現方法
4.1 在AutoCAD中創建Excel應用程序
要編寫存取Excel的應用程序,必須通過VBA將Excel中的對象能夠讓用戶使用,這就需要參考Excel對象的數據庫。其步驟如下:
4.1.1 打開AutoCAD的VBA編輯器(命令:VBAIDE);
4.1.2 選擇“工具”\“引用”項,在彈出的“引用”對話框的“可使用的引用”列表框內,選擇“Microsoft Excel 8.0 Object Library”項;
4.1.3 單擊“確定”按鈕;
4.1.4 接下來使用下列代碼可創建完整的應用程序對象實例:
Dim Excel As Excel.Application
'激活要與之通信的Excel應用程序
On Error Resume Next
Set Excel = GetObject(, "Excel.Application")
If Err
【利用VBA程序語言繪制公路縱斷面圖】相關文章:
淺談利用VBA對word操作自動評分提高課堂實效性研究03-01
論測繪地圖的繪制03-14
西方 “陌生化” 理論縱讀06-07
縱折磨牙保存治療的臨床療效觀察03-18
電子檔案利用與紙質檔案利用的需求比較探討11-14
CAD快速繪制電路圖的方法和技巧02-28
分部報告的分析與利用12-08
論知識管理與利用03-23
機械摩擦的利用及限制11-21