AutoCAD榮登全球繪圖軟件的龍頭寶座,主要是因?yàn)樗哂虚_(kāi)放的體系結(jié)構(gòu)。它允許用戶和開(kāi)發(fā)者采用高級(jí)編程語(yǔ)言對(duì)其進(jìn)行擴(kuò)充和修改,即二次開(kāi)發(fā),能最大限度地滿足用戶的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前大家廣泛使用的是AutoCAD 2000或2002,最新版本是AutoCAD 2004,其二次開(kāi)發(fā)語(yǔ)言及工具也在不斷地涌現(xiàn),本文做了一些介紹。

    1 AutoLISP

    AutoLISP的全名是LIST Processing Language,她出現(xiàn)于1985年推出的AutoCAD R2.18中,是一種嵌入在AutoCAD內(nèi)部的編程語(yǔ)言,是LISP原版的一個(gè)子集,她一直是低版本AutoCAD的首選編程語(yǔ)言。它是一種表處理語(yǔ)言,是被解釋執(zhí)行的,任何一個(gè)語(yǔ)句鍵入后就能馬上執(zhí)行,它對(duì)于交互式的程序開(kāi)發(fā)非常方便。其缺點(diǎn)是繼承了LISP語(yǔ)言的編程規(guī)則而導(dǎo)致繁多的括號(hào)。

    3 ADS

    ADS的全名是AutoCAD Development System,它是AutoCAD的C語(yǔ)言開(kāi)發(fā)系統(tǒng),ADS本質(zhì)上是一組可以用C語(yǔ)言編寫AutoCAD應(yīng)用程序的頭文件和目標(biāo)庫(kù),它直接利用用戶熟悉的各種流行的C語(yǔ)言編譯器,將應(yīng)用程序編譯成可執(zhí)行的文件在AutoCAD環(huán)境下運(yùn)行,這種可以在AutoCAD環(huán)境中直接運(yùn)行的可執(zhí)行文件叫做ADS應(yīng)用程序。ADS由于其速度快,又采用結(jié)構(gòu)化的編程體系,因而很適合于高強(qiáng)度的數(shù)據(jù)處理,如二次開(kāi)發(fā)的機(jī)械設(shè)計(jì)CAD、工程分析CAD、建筑結(jié)構(gòu)CAD、土木工程CAD、化學(xué)工程CAD、電氣工程CAD等。

    4 ObjectARX

    ObjectARX是一種嶄新的開(kāi)發(fā)AutoCAD應(yīng)用程序的工具,她以C++為編程語(yǔ)言,采用先進(jìn)的面向?qū)ο蟮木幊淘,提供可與AutoCAD直接交互的開(kāi)發(fā)環(huán)境,能使用戶方便快捷地開(kāi)發(fā)出高效簡(jiǎn)潔的Auto CAD應(yīng)用程序。ObjectARX并沒(méi)有包含在AutoCAD中,可在AutoDESK公司網(wǎng)站中去下載,其最新版本是ObjectARX for AutoCAD 2000,它能夠?qū)utoCAD的所有事務(wù)進(jìn)行完整的、先進(jìn)的、面向?qū)ο蟮脑O(shè)計(jì)與開(kāi)發(fā),并且開(kāi)發(fā)的應(yīng)用程序速度更快、集成度更高、穩(wěn)定性更強(qiáng)。ObjectARX從本質(zhì)上講,是一種特定的C++編程環(huán)境,她包括一組動(dòng)態(tài)鏈接庫(kù)(DLL),這些庫(kù)與AutoCAD在同一地址空間運(yùn)行并能直接利用AutoCAD核心數(shù)據(jù)結(jié)構(gòu)和代碼,庫(kù)中包含一組通用工具,使得二次開(kāi)發(fā)者可以充分利用AutoCAD的開(kāi)放結(jié)構(gòu),直接訪問(wèn)AutoCAD數(shù)據(jù)庫(kù)結(jié)構(gòu)、圖形系統(tǒng)以及CAD幾何造型核心,以便能在運(yùn)行期間實(shí)時(shí)擴(kuò)展AutoCAD的功能,創(chuàng)建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關(guān)鍵的API,即AcDb(Auto CAD數(shù)據(jù)庫(kù))和AcEd(Auto CAD編譯器),另外還有其它的一些重要庫(kù)組件,如AcRX(Auto CAD實(shí)時(shí)擴(kuò)展)、AcGi(Auto CAD圖形接口)、AcGe(Auto CAD幾何庫(kù))、ADSRX(Auto CAD開(kāi)發(fā)系統(tǒng)實(shí)時(shí)擴(kuò)展)。ObjectARX 還可以按需要加載應(yīng)用程序;使用ObjectARX進(jìn)行應(yīng)用開(kāi)發(fā)還可以在同一水平上與Windows系統(tǒng)集成,并與其它Windows應(yīng)用程序?qū)崿F(xiàn)交互操作。

    5 VisualLISP

    VisualLISP已經(jīng)被完整地集成到AutoCAD 2000中,她為開(kāi)發(fā)者提供了嶄新的、增強(qiáng)的集成開(kāi)發(fā)環(huán)境,一改過(guò)去在AutoCAD中內(nèi)嵌AtuoLISP運(yùn)行引擎的機(jī)制,這樣開(kāi)發(fā)者可以直接使用AutoCAD中的對(duì)象和反應(yīng)器,進(jìn)行更底層的開(kāi)發(fā)。其特點(diǎn)為自身是AutoCAD 2000中默認(rèn)的代碼編輯工具;用它開(kāi)發(fā)AutoLISP程序的時(shí)間被大大地縮短,原始代碼能被保密,以防盜版和被更改;能幫助大家使用ActiveX對(duì)象及其事件;使用了流行的有色代碼編輯器和完善的調(diào)試工具,使大家很容易創(chuàng)建和分析LISP程序的運(yùn)行情況。在VisualLISP中新增了一些函數(shù):如基于AutoLISP的ActiveX/COM自動(dòng)化操作接口;用于執(zhí)行基于Auto CAD內(nèi)部事件的LISP程序的對(duì)象反應(yīng)器;新增了能夠?qū)Σ僮飨到y(tǒng)文件進(jìn)行操作的函數(shù)。

    6 VBA

    VBA 即Mcrosoft office中的Visual Basic for Applications,它被集成到AutoCAD 2000中。VBA為開(kāi)發(fā)者提供了一種新的選擇,也為用戶訪問(wèn)AutoCAD 2000中豐富的技術(shù)框架打開(kāi)一條新的通道。VBA和AutoCAD 2000中強(qiáng)大的ActiveX自動(dòng)化對(duì)象模型的結(jié)合,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過(guò)VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應(yīng)用程序,使之相互之間發(fā)生互易活動(dòng)。