分析AutoCAD二次開發(fā)方法的研究

2014-12-07 劉永波 瀘州職業(yè)技術學院

  CAD 技術對于實現我國產業(yè)信息化具有重要的推動作用,它能夠有效地體現一個國家的技術設計水平。然而由于技術的不斷更新與完善,其功能的需求也會隨之產生巨大變化,這就要求CAD 軟件也要不斷更新,因此有必要加強對AutoCAD 的二次開發(fā)。本文主要從當前AutoCAD 五種較為典型的開發(fā)工具及其優(yōu)缺點、應用特點等方面分析AutoCAD 二次開發(fā)的方法。

  引言

  為了達到繪圖工作更加規(guī)范、準確,減小計算繪圖工作量,有效避免其重復性,使CAD 技術發(fā)揮出積極效用的目標,在通用CAD 軟件的基礎上,進行各種程度不同的本地開發(fā),即AutoCAD 二次開發(fā)。它對于豐富CAD 附加功能,提升軟件的操作速度,促進技術轉化為較為先進的生產力等多方面都具有積極的意義,加強對AutoCAD 二次開發(fā)的方法研究至關重要。實現AutoCAD 的環(huán)境客戶化的最為有效的途徑即為AutoCAD 開發(fā)系統, 它主要提供了ADS、Visual LISP、VBA、Object ARX 以及AutoLisP 等五種非常典型的開發(fā)工具。僅將這五種開發(fā)工具視作AutoCAD 的使用功能,他們各自的特點及應用情況具體如下:

1、ADS 開發(fā)系統

  ADS 是以C 語言為基礎的高級語言開發(fā)系統,它實質上是一個函數庫,用戶可通過C 語言進行程序編寫,然后可直接調用ADS 開發(fā)系統中的函數庫,運用用戶熟知的C 語言編譯器,實現應用程序向可執(zhí)行的文件轉化,并在AutoCAD 環(huán)境中運行,這類可執(zhí)行的文件就被稱作ADS 應用程序。ADS 非常適合于處理高強度的數據,例如,二次開發(fā)的土木工程CAD、建筑結構CAD 等。

  1.ADS 開發(fā)系統優(yōu)點:(1)對于讀取程序源代碼而言,ADS 具有較好的可讀性;(2)ADS 具備超大規(guī)模的處理能力;(3)在編譯過程中還能同時檢查程序的設計語言是否存在邏輯錯誤;(4)運用C 語言編譯器編程代碼之后,ADS 具備高速的執(zhí)行能力。

  2. ADS 開發(fā)系統缺點:ADS 是以C 語言為基礎,難以熟練地掌握與運用,程序源代碼非常長,代碼的效果難以體現;同時隱藏在ADS 中的邏輯錯誤容易造成操作系統整體崩潰。但由于ADS 運行較為快速、簡單、穩(wěn)定,仍是許多大型項目廣泛采用的二次開發(fā)技術。

2、Visual LISP

  VisuaI LISP 本質上是一種代碼編輯工具,它能夠最大程度地縮短Auto LisP 程序開發(fā)的時間,且源代碼的保密性非常好。在VisuaI LISP 中新增了部分函數,如調試工具與有色代碼編輯器,具有面向事件與對象的特征。

3、VBA 語言

  VBA 的最大優(yōu)勢在于非常容易掌握,而且具有較高的代碼運行效率。在AutoCAD 中,VBA 語言主要通過ActiveX 技術進行二次開發(fā)。ActiveX 控件通過動態(tài)鏈接庫與其他的應用程序進行互易活動,它是ActiveX 技術的關鍵與核心,在保證合法操作的前提下,避免了開發(fā)過程中出現重復開發(fā)的現象。當AutoCAD 與VBA 結合運行時,就會形成一種新型的AutoCAD模型,此時可將AutoCAD 系統視作一個服務器端,而開發(fā)的程序則可視作為一個客戶端,兩者間利用Activex Automation 服務器進行相互協調,并利用Activex Automation 技術實現兩者間的消息傳遞。但同時,運用VBA 進行程序的設計,AutoCAD的操作技巧不能夠充分地體現出來,且不能夠向AutoCAD 進行命令的注冊,而且在執(zhí)行過程中必須運用加載應用程序加載對應的dvb 文件,再通過工具菜單執(zhí)行,比較復雜。

表一 AutoCAD 各種開發(fā)工具的性能及特點比較

分析AutoCAD二次開發(fā)方法的研究

4、Object ARX 應用程序

  Object ARX 實質上一個動態(tài)鏈接庫程序(DLL)。ObjectARX 是以c++ 語言為基礎,專門進行AutoCAD 二次開發(fā)的應用程序接口與開發(fā)環(huán)境,現階段,大多企業(yè)多采用該技術進行AutoCAD 二次開發(fā)。Object ARX 運用DLL, 實現與AutoCAD 的地址空間的共享,并能夠直接訪問CAD 圖形系統、數據庫結構等,從而達到擴展AutoCAD 功能的目的。運用該技術進行二次開發(fā)的AutoCAD 軟件具有較強的代碼重用性,且模塊化非常強,在開發(fā)時能最大限度地運用Windows 資源。但該程序存在著內存泄露的問題,會對AutoCAD 的安全造成直接影響。

5、Auto LisP

  Auto LisP 實質上是一種AutoCAD 內部的編程的表處理語言,對于任何語句都能夠快速地執(zhí)行,非常利于開發(fā)交互式程序。它的優(yōu)點在于能夠直接調用AutoCAD 的多數命令,同時能夠實現繪圖程序設計的參數化。但Auto LisP 效率較低,且速度慢。由此可見,除Object ARX 掌握較為困難之外,它的其余指標都比較具有優(yōu)勢。AutoCAD 開發(fā)人員在二次開發(fā)中可參考各類開發(fā)工具優(yōu)缺點,根據實際情況擇優(yōu)選取。各種開發(fā)工具性能與特點比較如表一所示。

  綜上所述,在大型專業(yè)且對性能、速度要求較高的應用程序中,Object ARX 應用程序以其可讀性好、對AutoCAD 具有較好的控制能力以及系統智能性等優(yōu)勢,是AutoCAD 二次開發(fā)過程中的首要選擇。同時,隨著開發(fā)平臺的不斷完善,.net 開發(fā)平臺在將來的AutoCAD 二次開發(fā)中具有廣泛的應用前景。