分析AutoCAD二次開發(fā)方法的研究
CAD 技術(shù)對于實現(xiàn)我國產(chǎn)業(yè)信息化具有重要的推動作用,它能夠有效地體現(xiàn)一個國家的技術(shù)設(shè)計水平。然而由于技術(shù)的不斷更新與完善,其功能的需求也會隨之產(chǎn)生巨大變化,這就要求CAD 軟件也要不斷更新,因此有必要加強對AutoCAD 的二次開發(fā)。本文主要從當前AutoCAD 五種較為典型的開發(fā)工具及其優(yōu)缺點、應(yīng)用特點等方面分析AutoCAD 二次開發(fā)的方法。
引言
為了達到繪圖工作更加規(guī)范、準確,減小計算繪圖工作量,有效避免其重復(fù)性,使CAD 技術(shù)發(fā)揮出積極效用的目標,在通用CAD 軟件的基礎(chǔ)上,進行各種程度不同的本地開發(fā),即AutoCAD 二次開發(fā)。它對于豐富CAD 附加功能,提升軟件的操作速度,促進技術(shù)轉(zhuǎn)化為較為先進的生產(chǎn)力等多方面都具有積極的意義,加強對AutoCAD 二次開發(fā)的方法研究至關(guān)重要。實現(xiàn)AutoCAD 的環(huán)境客戶化的最為有效的途徑即為AutoCAD 開發(fā)系統(tǒng), 它主要提供了ADS、Visual LISP、VBA、Object ARX 以及AutoLisP 等五種非常典型的開發(fā)工具。僅將這五種開發(fā)工具視作AutoCAD 的使用功能,他們各自的特點及應(yīng)用情況具體如下:
1、ADS 開發(fā)系統(tǒng)
ADS 是以C 語言為基礎(chǔ)的高級語言開發(fā)系統(tǒng),它實質(zhì)上是一個函數(shù)庫,用戶可通過C 語言進行程序編寫,然后可直接調(diào)用ADS 開發(fā)系統(tǒng)中的函數(shù)庫,運用用戶熟知的C 語言編譯器,實現(xiàn)應(yīng)用程序向可執(zhí)行的文件轉(zhuǎn)化,并在AutoCAD 環(huán)境中運行,這類可執(zhí)行的文件就被稱作ADS 應(yīng)用程序。ADS 非常適合于處理高強度的數(shù)據(jù),例如,二次開發(fā)的土木工程CAD、建筑結(jié)構(gòu)CAD 等。
1.ADS 開發(fā)系統(tǒng)優(yōu)點:(1)對于讀取程序源代碼而言,ADS 具有較好的可讀性;(2)ADS 具備超大規(guī)模的處理能力;(3)在編譯過程中還能同時檢查程序的設(shè)計語言是否存在邏輯錯誤;(4)運用C 語言編譯器編程代碼之后,ADS 具備高速的執(zhí)行能力。
2. ADS 開發(fā)系統(tǒng)缺點:ADS 是以C 語言為基礎(chǔ),難以熟練地掌握與運用,程序源代碼非常長,代碼的效果難以體現(xiàn);同時隱藏在ADS 中的邏輯錯誤容易造成操作系統(tǒng)整體崩潰。但由于ADS 運行較為快速、簡單、穩(wěn)定,仍是許多大型項目廣泛采用的二次開發(fā)技術(shù)。
2、Visual LISP
VisuaI LISP 本質(zhì)上是一種代碼編輯工具,它能夠最大程度地縮短Auto LisP 程序開發(fā)的時間,且源代碼的保密性非常好。在VisuaI LISP 中新增了部分函數(shù),如調(diào)試工具與有色代碼編輯器,具有面向事件與對象的特征。
3、VBA 語言
VBA 的最大優(yōu)勢在于非常容易掌握,而且具有較高的代碼運行效率。在AutoCAD 中,VBA 語言主要通過ActiveX 技術(shù)進行二次開發(fā)。ActiveX 控件通過動態(tài)鏈接庫與其他的應(yīng)用程序進行互易活動,它是ActiveX 技術(shù)的關(guān)鍵與核心,在保證合法操作的前提下,避免了開發(fā)過程中出現(xiàn)重復(fù)開發(fā)的現(xiàn)象。當AutoCAD 與VBA 結(jié)合運行時,就會形成一種新型的AutoCAD模型,此時可將AutoCAD 系統(tǒng)視作一個服務(wù)器端,而開發(fā)的程序則可視作為一個客戶端,兩者間利用Activex Automation 服務(wù)器進行相互協(xié)調(diào),并利用Activex Automation 技術(shù)實現(xiàn)兩者間的消息傳遞。但同時,運用VBA 進行程序的設(shè)計,AutoCAD的操作技巧不能夠充分地體現(xiàn)出來,且不能夠向AutoCAD 進行命令的注冊,而且在執(zhí)行過程中必須運用加載應(yīng)用程序加載對應(yīng)的dvb 文件,再通過工具菜單執(zhí)行,比較復(fù)雜。
表一 AutoCAD 各種開發(fā)工具的性能及特點比較
4、Object ARX 應(yīng)用程序
Object ARX 實質(zhì)上一個動態(tài)鏈接庫程序(DLL)。ObjectARX 是以c++ 語言為基礎(chǔ),專門進行AutoCAD 二次開發(fā)的應(yīng)用程序接口與開發(fā)環(huán)境,現(xiàn)階段,大多企業(yè)多采用該技術(shù)進行AutoCAD 二次開發(fā)。Object ARX 運用DLL, 實現(xiàn)與AutoCAD 的地址空間的共享,并能夠直接訪問CAD 圖形系統(tǒng)、數(shù)據(jù)庫結(jié)構(gòu)等,從而達到擴展AutoCAD 功能的目的。運用該技術(shù)進行二次開發(fā)的AutoCAD 軟件具有較強的代碼重用性,且模塊化非常強,在開發(fā)時能最大限度地運用Windows 資源。但該程序存在著內(nèi)存泄露的問題,會對AutoCAD 的安全造成直接影響。
5、Auto LisP
Auto LisP 實質(zhì)上是一種AutoCAD 內(nèi)部的編程的表處理語言,對于任何語句都能夠快速地執(zhí)行,非常利于開發(fā)交互式程序。它的優(yōu)點在于能夠直接調(diào)用AutoCAD 的多數(shù)命令,同時能夠?qū)崿F(xiàn)繪圖程序設(shè)計的參數(shù)化。但Auto LisP 效率較低,且速度慢。由此可見,除Object ARX 掌握較為困難之外,它的其余指標都比較具有優(yōu)勢。AutoCAD 開發(fā)人員在二次開發(fā)中可參考各類開發(fā)工具優(yōu)缺點,根據(jù)實際情況擇優(yōu)選取。各種開發(fā)工具性能與特點比較如表一所示。
綜上所述,在大型專業(yè)且對性能、速度要求較高的應(yīng)用程序中,Object ARX 應(yīng)用程序以其可讀性好、對AutoCAD 具有較好的控制能力以及系統(tǒng)智能性等優(yōu)勢,是AutoCAD 二次開發(fā)過程中的首要選擇。同時,隨著開發(fā)平臺的不斷完善,.net 開發(fā)平臺在將來的AutoCAD 二次開發(fā)中具有廣泛的應(yīng)用前景。