本書介紹了根據客戶的特殊用途進行軟體的客戶化定製和二次開發,往往能夠大大提高企業的生產效率和技術水平。
AutoCAD ActiveX技術是目前AutoCAD二次開發中一種比較成熟、方便且實用的技術,在實際開發中得到了廣泛的套用。本書由淺入深,逐層解析,一步步揭開AutoCAD ActiveX的神秘面紗,並結合大量的示例向讀者介紹了AutoCAD ActiveX技術的使用方法。
基本介紹
- 中文名:CAD二次開發
- 外文名:Two development of CAD
- 開發工具:VisualLisp、VBA、ObjectARX
套用背景,開發工具,開發的主要內容,
套用背景
機械設計中一般都採用AutoCAD設計軟體,在複雜 CAD問題或特殊用途的設計中,依據原有軟體的功能往往難以解決問題,在此情況下,只是會使用軟體的基本功能是不夠的
開發工具
當前AutoCAD的二次開發工具主要有:VisualLisp、VBA、ObjectARX和.NET API等。其中,VisualLisp與VBA較為簡單,特別是VBA,使用方便且開發速度較快,但其功能相比ObjectARX有所不足,尤其是對面向對象的功能支持不好。而ObjectARX基於VC平台,在C++的支持下,其功能非常強大,可以很好地運用各種面向對象技術,但其缺點是發開速度比較慢,同時對開發人員的能力要求較高。
.NET是微軟新推出的開發平台,具有眾多優點。
基於.NET平台對AutoCAD進行二次開發,可充分利用.NET 的各種優勢,在保證功能強大的前提下大大提高開發速度。
1 AutoLISP
AutoLISP的全名是LIST Processing Language,她出現於1985年推出的AutoCAD R2.18中,是一種嵌入在AutoCAD內部的程式語言,是LISP原版的一個子集,她一直是低版本AutoCAD的首選程式語言。它是一種表處理語言,是被解釋執行的,任何一個語句鍵入後就能馬上執行,它對於互動式的程式開發非常方便。其缺點是繼承了LISP語言的編程規則而導致繁多的括弧。
2 ADS
ADS的全名是AutoCAD Development System,它是AutoCAD的C語言開發系統,ADS本質上是一組可以用C語言編寫AutoCAD應用程式的頭檔案和目標庫,它直接利用用戶熟悉的各種流行的C語言編譯器,將應用程式編譯成可執行的檔案在AutoCAD環境下運行,這種可以在AutoCAD環境中直接運行的執行檔叫做ADS應用程式。ADS由於其速度快,又採用結構化的編程體系,因而很適合於高強度的數據處理,如二次開發的機械設計CAD、工程分析CAD、建築結構CAD、土木工程CAD、化學工程CAD、電氣工程CAD等。
3 ObjectARX
ObjectARX是一種嶄新的開發AutoCAD應用程式的工具,她以C++為程式語言,採用先進的面向對象的編程原理,提供可與AutoCAD直接互動的開發環境,能使用戶方便快捷地開發出高效簡潔的Auto CAD應用程式。ObjectARX並沒有包含在AutoCAD中,可在AutoDESK公司網站中去下載,其最新版本是ObjectARX for AutoCAD 2000,它能夠對AutoCAD的所有事務進行完整的、先進的、面向對象的設計與開發,並且開發的應用程式速度更快、集成度更高、穩定性更強。ObjectARX從本質上講,是一種特定的C++編程環境,她包括一組動態程式庫(DLL),這些庫與AutoCAD在同一地址空間運行並能直接利用AutoCAD核心數據結構和代碼,庫中包含一組通用工具,使得二次開發者可以充分利用AutoCAD的開放結構,直接訪問AutoCAD資料庫結構、圖形系統以及CAD幾何造型核心,以便能在運行期間實時擴展AutoCAD的功能,創建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關鍵的API,即AcDb(Auto CAD資料庫)和AcEd(Auto CAD編譯器),另外還有其它的一些重要庫組件,如AcRX(Auto CAD實時擴展)、AcGi(Auto CAD圖形接口)、AcGe(Auto CAD幾何庫)、ADSRX(Auto CAD開發系統實時擴展)。ObjectARX 還可以按需要載入應用程式;使用ObjectARX進行套用開發還可以在同一水平上與Windows系統集成,並與其它Windows應用程式實現互動操作。
4 VisualLISP
VisualLISP已經被完整地集成到AutoCAD 2000中,她為開發者提供了嶄新的、增強的集成開發環境,一改過去在AutoCAD中內嵌AtuoLISP運行引擎的機制,這樣開發者可以直接使用AutoCAD中的對象和反應器,進行更底層的開發。其特點為自身是AutoCAD 2000中默認的代碼編輯工具;用它開發AutoLISP程式的時間被大大地縮短,原始代碼能被保密,以防盜版和被更改;能幫助大家使用ActiveX對象及其事件;使用了流行的有色代碼編輯器和完善的調試工具,使大家很容易創建和分析LISP程式的運行情況。在VisualLISP中新增了一些函式:如基於AutoLISP的ActiveX/COM自動化操作接口;用於執行基於Auto CAD內部事件的LISP程式的對象反應器;新增了能夠對作業系統檔案進行操作的函式。
5 VBA
VBA 即Microsoft office中的Visual Basic for Applications,它被集成到AutoCAD 2000中。VBA為開發者提供了一種新的選擇,也為用戶訪問AutoCAD 2000中豐富的技術框架打開一條新的通道。VBA和AutoCAD 2000中強大的ActiveX自動化對象模型的結合,代表了一種新型的定製AutoCAD的模式構架。通過VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應用程式,使之相互之間發生互易活動。
《深入淺出AutoCAD .NET二次開發》教程(含光碟)中介紹了這幾種開發方式,並且介紹了常用開發方式的混合開發方法。
開發的主要內容
(2)建立符合自己要求的選單檔案,一般可在AutoCAD原選單檔案內添加自己的內容,對於 AutoCAD200x版本還可增加部分選單檔案,然後經互動方式加入到系統中去。
(3)在系統的AutoCAD.LSP或類似檔案中加入某些內容以便進行各種初始化操作,如在啟動時立即裝入一些檔案等。
(4)通過系統對話框設定某些路徑。這些操作在程式開發成功後向其它AutoCAD系統上安裝套用,特別是需要大批安裝時,需要進行很多檔案檢索、內容增刪、子目錄創建、檔案拷貝、系統設定等繁瑣工作,如能令上述工作全部自動進行,使整個二次開發程式在無人干預的情況下嵌入系統,將大大提高工作效率
(5)面向對象,讓用戶能夠根據自己的需要編寫相關程式,進行二次開發。