利用VBA程序語言繪製公路縱斷面圖

學識都 人氣:2.69W

摘要:VBA作爲一個集成的開發環境,能夠使AutoCAD數據與其它的VBA應用程序,如Microsoft Excel軟件,直接共享,實現無縫連接,交換數據。本文介紹如何利用VBA編程建立AutoCAD2000與Excel2000的通信,實現數據交換,快速繪製公路縱斷面地面線。

利用VBA程序語言繪製公路縱斷面圖

關鍵詞:公路縱斷面設計 地面線 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”項;