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