張博



【摘 要】本文簡述了利用VB編程語言對AutoCAD進行二次開發的原理和方法,并結合筆者的實踐,以編制水文斷面繪圖程序為例探討了VB與AutoCAD的連接、繪制縱斷面的數據格式、數據轉換,以實現快速繪制縱斷面。
【關鍵詞】AutoCAD;二次開發;VB
0 概述
AutoCAD是由美國Autodesk公司于20世紀80年代初為微機上應用CAD技術而開發的繪圖程序軟件包,經過不斷地完善,現已經成為國際上廣為流行的繪圖工具。由于它具有完善的繪圖功能、良好的用戶界面、易學易用等特點,因而被廣泛地應用于測繪、規劃、設計、土地管理等行業,AutoCAD為用戶提供了多種二次開發工具,其中主要有AutoLISP、ObjectARX和VBA。
AutoLISP是一種解釋性的表結構處理語言,具有語言結構簡單、開發周期短、不依賴于操作平臺的特點,但是作為解釋語言,其運行速度和保密性方面有一定的缺陷,并且不適合開發有復雜運算的軟件。
ObjectARX是一種較新的開發AutoCAD應用程序的工具,它以C++為編程語言,采用先進的面向對象的編程原理,提供可與AutoCAD直接交互的開發環境,能使用戶方便快捷地開發出高效簡潔的AutoCAD應用程序。但是C++語言較復雜,開發ARX應用程序需要較多的軟件開發經驗,也不適合作為非軟件開發專業人員的測繪工作者的開發工具。
Visual Basic(VB)是美國微軟公司推出的程序開發工具,它簡單易學,適用面廣,在Windows平臺上被廣泛使用。為此,可以作為測繪工作者進行程序設計的首選工具。
1 ActiveX Automation技術與VB
1.1 ActiveX Automation技術
ActiveX Automation是微軟公司的一個技術標準,其宗旨是在Windows系統的統一管理下協調不同的應用程序,允許這此應用程序之間相互溝通、相互控制,但兩個應用程序間的溝通不是對等的,其中,一個程序稱為客戶程序(Client),另一個程序稱為服務程序(Server),一般情況下,由客戶程序提出需要進行什么操作,服務程序針對操作申請,完成相應的命令。AutoCAD R14后的版本中就引入了ActiveX Automation技術,利用AutoCAD ActiveX技術,可以從其它外部應用程序(如VB)或AutoCAD內部(AutoCAD VBA)操作AutoCAD對象。VB是最為常用的支持ActiveX Automation技術的開發工具,它可以編制出ActiveX的客戶程序,用來操作AutoCAD。即利用VB編制能與AutoCAD相溝通的應用程序,以此來實現AutoCAD的二次開發。
2 開發AutoCAD2004應用程序實例
筆者用VB6.0編制了水文斷面機助制圖程序,程序設計流程圖、界面及部分源代碼見下圖。該程序通過讀取野外采集的縱斷面數據文件,自動計算和提取完成制圖所需的亙長和高程數據并寫成文件,然后完成縱斷面的繪制,并可通過對界面的操作來控制制圖的橫向比例尺及縱向比例尺。
2.1 程序設計整體流程
2.2 數據預處理
外業采集數據時有時一天可能采集多個轉角之間的斷面數據,本段程序主要就是根據已知的轉角坐標、把外業采集的數據自動進行分類,不同轉角耐張之間的數據生成一個文件。下面以一個耐張之間的數據簡單介紹一下:
首先把新建一個轉角坐標文件,本例中命名為ZUO.TXT。運行程序的數據預處理,點擊原始數,在提示窗口中選擇外業采集的數據,本例中命名為斷面數據.TXT。在點擊轉角數據,提示窗口中選擇已經建好的ZUO.TXT。最后點擊預處理命令,生成數據文件如圖5,在點擊程序中的生成斷面數據命令,即生成數據文件如圖6。主要代碼如下:
3 結束語
本文以編制水文斷面繪圖程序為例探討了VB與AutoCAD的連接、繪制縱斷面的數據格式、數據轉換,以實現快速繪制縱斷面。如今,計算機科學的飛速發展和數字化測繪的日益普及,對我們測繪工作者也提出了更高的要求,如果測繪工作者能夠掌握一種編程語言,會對自己的工作大有裨益。而VB由于其簡單易學,功能強大,應該成為我們測繪工作者學習編程語言的首選工具。
【參考文獻】
[1]段興.Visual Basic6.0控件實用程序設計100例[M].人民郵電出版社,2002,10.
[2]申石磊,季超.Visual Basic程序設計基礎[M].高等教育出版社,2010,03.
[責任編輯:薛俊歌]