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

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

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

  引言

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

1、ADS 開(kāi)發(fā)系統

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

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

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

2、Visual LISP

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

3、VBA 語(yǔ)言

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

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

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

4、Object ARX 應用程序

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

5、Auto LisP

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

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