您當(dāng)前的位置:主頁(yè)>>AutoCAD>>AutoCAD二次開(kāi)發(fā)  
                           AutoCAD二次開(kāi)發(fā)技術(shù)的比較

                              高月華
 摘要:介紹了AutoCAD常用的幾種二次開(kāi)發(fā)技術(shù), 并對(duì)它們各自的特點(diǎn)進(jìn)行了分析比較。
 關(guān)鍵詞:AutoCAD; 二次開(kāi)發(fā)
     Abstract: Several kinds of tools for re-development of AutoCAD were presented, and whose characteristics were analyzed and compared with each other.
Key words: AutoCAD, re-development
 1、引言
    AutoCAD作為一種通用計(jì)算機(jī)輔助設(shè)計(jì)軟件, 其二維圖形設(shè)計(jì)功能非常強(qiáng)大, 目前已廣泛應(yīng)用于機(jī)械、電子、電氣、建筑、土木、服裝等領(lǐng)域, 深受國(guó)內(nèi)外眾多工程設(shè)計(jì)人員的喜愛(ài), 成為目前世界上應(yīng)用最廣的計(jì)算機(jī)輔助設(shè)計(jì)工具。盡管如此, 人們?cè)谑褂眠^(guò)程中還是發(fā)現(xiàn)其存在較多的不足之處, 如對(duì)于一些特殊曲線的繪制往往較為困難, 而對(duì)于一些標(biāo)準(zhǔn)件、常用件, 雖然從結(jié)構(gòu)上看它們較為相似, 但卻難以采用AutoCAD提供的復(fù)制、鏡像、旋轉(zhuǎn)等命令來(lái)實(shí)現(xiàn),而必須一筆劃一筆劃的繪制, 顯得費(fèi)時(shí)費(fèi)力。AutoCAD 是一種定位與全球各大領(lǐng)域和各類專業(yè)的通用微機(jī)CAD 平臺(tái)軟件。到目前為止, Autodesk 公司已經(jīng)相繼推出了四代二次開(kāi)發(fā)工具, 主要包括六種二次開(kāi)發(fā)技術(shù): Auto LISP, Visual LISP,ADS,VBA, Object ARX 和Dot NET,本文試圖結(jié)合這幾種二次開(kāi)發(fā)技術(shù)進(jìn)行分析比較。
 2、Auto LISP
    Auto LISP最早出現(xiàn)在AutoCAD R2.17 中, 是一種嵌入在AutoCAD 內(nèi)部的二次開(kāi)發(fā)語(yǔ)言, 它的全名為表處理語(yǔ)言(LIST Processing Language) , 來(lái)源于人工智能語(yǔ)言LISP, 是被解釋執(zhí)行的, 任何一個(gè)語(yǔ)句鍵入后就能馬上執(zhí)行。由于使用方便, 其一直是低版本AutoCAD的首選編程語(yǔ)言。Auto LISP 嚴(yán)格遵循其語(yǔ)法和慣例,但又添加了許多AutoCAD 的功能Auto desk 公司在AutoCAD 2.1 版引入Auto LISP 作為應(yīng)用程序編程接口(API) , 用于擴(kuò)展和自定義AutoCAD 功能,借助Auto LISP , 用戶可以用適合編寫圖形應(yīng)用程序的強(qiáng)大的高級(jí)語(yǔ)言來(lái)編寫宏程序和函數(shù), 并開(kāi)發(fā)各種軟件包。
    Auto LISP 具有以下優(yōu)點(diǎn): (1) 語(yǔ)言規(guī)則十分簡(jiǎn)單,易學(xué)易用; (2) 直接針對(duì)AutoCAD , 易于交互; (3) 解釋執(zhí)行, 立竿見(jiàn)影。Auto LISP 的缺點(diǎn)是: (1) 功能單一, 綜合處理能力差; (2) 解釋執(zhí)行, 程序運(yùn)行速度慢; (3) 缺乏很好的保護(hù)機(jī)制, 源程序保密性差; (4) LISP 用表來(lái)描述一切, 并不能很好地反映現(xiàn)實(shí)世界和過(guò)程, 跟人的思維方式也不一致; (5) 不能直接訪問(wèn)硬件設(shè)備、進(jìn)行二進(jìn)制文件的讀寫。
  3、Visual LISP (VLISP)
    Visual LISP 是Autodesk 公司為Auto LISP 提供的一個(gè)完整的開(kāi)發(fā)環(huán)境, 從R14 版開(kāi)始, AutoCAD 支持Visual LISP 開(kāi)發(fā)工具。Visual LISP 是一個(gè)可視化的LISP 語(yǔ)言開(kāi)發(fā)環(huán)境, 它是Auto LISP 語(yǔ)言的擴(kuò)展和延伸。Visual LISP具有以下特性: (1)在完全可視化的開(kāi)發(fā)環(huán)境下編寫、調(diào)試程序。(2)Visual LISP 程序經(jīng)過(guò)編譯后, 提高了運(yùn)行性能和保密性。(3)LISP 代碼通過(guò)AutoCAD R14的Object ARX 接口,提高了程序的運(yùn)行速度。(4)Visual LISP是一個(gè)被建立并裝載的Object ARX 應(yīng)用程序, 因而可以在AutoCAD外部裝載和更新。
  4、ADS
    ADS(AutoCAD Development System)是AutoCAD 的C 語(yǔ)言開(kāi)發(fā)系統(tǒng), 是繼Auto LISP后的第二代開(kāi)發(fā)工具, 是從AutoCAD R14 開(kāi)始引入的C 語(yǔ)言開(kāi)發(fā)工具, ADS不是C語(yǔ)言的一個(gè)子集, 也不是基于C 而編譯的專用語(yǔ)言( 如Microstation 的MDL) 但它包括了C的全部功能。本質(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)用程序。與Auto LISP 相比, ADS 優(yōu)越之處在于: (1) 具備錯(cuò)綜復(fù)雜的大規(guī)模處理能力; (2) 編譯成機(jī)器代碼后執(zhí)行速度快; (3) 編譯時(shí)可以檢查出程序設(shè)計(jì)語(yǔ)言的邏輯錯(cuò)誤; (4) 程序源代碼的可讀性好于Auto LISP。而其不便之處在于: (1) C 語(yǔ)言比LISP 語(yǔ)言難于掌握和熟練應(yīng)用; (2) ADS 程序的隱藏錯(cuò)誤往往導(dǎo)致AutoCAD , 乃至操作系統(tǒng)的崩潰; (3) 需要編譯才能運(yùn)行, 不易見(jiàn)到代碼的效果; (4) 同樣功能, ADS 程序源代碼比Auto LISP 代碼長(zhǎng)很多。
  5、VBA
    Autodesk 公司自它的AutoCAD R14.01 版開(kāi)始, 內(nèi)置了VBA 開(kāi)發(fā)工具, VBA(Visual Basic for Application)是一種嵌入AutoCAD內(nèi)部基于對(duì)象的集成編程環(huán)境。已經(jīng)被集成到AutoCAD2000 以后所有的版本中。VBA 具有強(qiáng)大的開(kāi)發(fā)能力。(1)VBA 可提供強(qiáng)大的窗體創(chuàng)建功能, 為應(yīng)用程序建立對(duì)話框及其他屏幕界面。(2)可創(chuàng)建自己的工具條。(3)可建立功能強(qiáng)大的模塊級(jí)宏指令。(4)提供建立類模塊的功能。。(5)具備完善的數(shù)據(jù)訪問(wèn)與管理能力。VBA 的不足之處: (1)VBA 不能像Visual LISP 那樣可以隨意使用AutoCAD 命令, 只能像腳本文件的模式, 以字符串的方式向AutoCAD 命令發(fā)送一串響應(yīng), 這個(gè)字符串的內(nèi)容也只要在自己的程序中生成和進(jìn)行數(shù)據(jù)轉(zhuǎn)換。(2)由于VBA 是以對(duì)象作為數(shù)據(jù)處理的基本單元的, 因此像Trim Extend 之類的命令都不能真正實(shí)施, 要想完成這樣的操作, 相關(guān)數(shù)據(jù)只能在程序中自己計(jì)算。(3)源程序始終以相當(dāng)容易接近的方式, 暴露在最終用戶面前, 由于擁護(hù)的誤操作, 很容易使正常的應(yīng)用程序出錯(cuò)甚至崩潰。
  6、Object ARX
     Object ARX最早出現(xiàn)于R13.0 中, 它以C ++為編程語(yǔ)言, 采用先進(jìn)的面向?qū)ο蟮木幊淘? 提供可與AutoCAD直接交互的開(kāi)發(fā)環(huán)境, 能使用戶方便快捷地開(kāi)發(fā)出高效簡(jiǎn)潔的AutoCAD應(yīng)用程序。ARX程序本質(zhì)上為Windows 動(dòng)態(tài)鏈接庫(kù)(DLL) 程序, 這些庫(kù)與AutoCAD 共享地址空間并能直接利用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)行期間擴(kuò)展AutoCAD 固有的類及其功能, 創(chuàng)建能夠全面享受AutoCAD 固有命令特權(quán)的新命令。Object ARX應(yīng)用程序以C + + 為基本開(kāi)發(fā)語(yǔ)言, 具有面向?qū)ο缶幊谭绞降臄?shù)據(jù)可封裝性、可繼承性及多態(tài)性的特點(diǎn), 用其開(kāi)發(fā)的CAD 軟件具有模塊性好、獨(dú)立性強(qiáng)、連接簡(jiǎn)單、使用方便、內(nèi)部功能高效實(shí)現(xiàn)以及代碼可重用性強(qiáng)等特點(diǎn), 并且支持MFC 基本類庫(kù),能簡(jiǎn)潔高效地實(shí)現(xiàn)許多復(fù)雜功能。使用Object ARX 的用戶可以完成各種開(kāi)發(fā)工作。
  7、Dot NET
    Dot NET 是基于Mircosoft.NET 架構(gòu)直接進(jìn)行AutoCAD 二次開(kāi)發(fā)的一種新技術(shù)。目前能支持Dot NET 開(kāi)發(fā)方法的軟件版本為AutoCAD2005 到AutoCAD2008, 但能完全支持Dot NET 開(kāi)發(fā)方法的軟件為AutoCAD2006 到AutoCAD2008。不管開(kāi)發(fā)人員熟悉的語(yǔ)言是Visual Basic.NET 還是Visual C#.NET,使用Dot NET 進(jìn)行AutoCAD 二次開(kāi)發(fā)的基本方法和步驟基本上是一樣的。在新推出的支持Dot NET 開(kāi)發(fā)的AutoCAD 版本中, Autodesk 公司專門為其開(kāi)發(fā)增加了.NETAPI。.NET API 提供了一系列托管的外包類(Managed Wrapper Class) , 使開(kāi)發(fā)人員可在.NET 框架下, 使用任何支持.NET 的語(yǔ)言, 如VB.NET、C 和Managed C++等對(duì)AutoCAD 進(jìn)行二次開(kāi)發(fā)。其優(yōu)點(diǎn)是完全面向?qū)ο? 在擁有與C++相匹配的強(qiáng)大功能的同時(shí), 具有方便易用的特點(diǎn), 是較理想的AutoCAD 二次開(kāi)發(fā)工具。
  8、結(jié)束語(yǔ)
    AutoCAD 提供了豐富的二次開(kāi)發(fā)功能, 各開(kāi)發(fā)工具之間既有區(qū)別又有聯(lián)系, 充分認(rèn)識(shí)和掌握各開(kāi)發(fā)工具的優(yōu)缺點(diǎn)對(duì)構(gòu)建屬于自己的AutoCAD 系統(tǒng), 提高工作效率, 將大有幫助。
  參考文獻(xiàn):
[1] 北京博彥科技發(fā)展有限公司. AutoCAD 綜合提高[M] .北京: 北京大學(xué)出版社, 2001.
[2] 徐凱, 等. CAD 二次開(kāi)發(fā)技術(shù)[J ] . 包裝與食品機(jī)械,2004 , (1) : 16 - 17.
[3] [美] Ellen Finkelstein. AutoCAD 2004 寶典[M] . 羅軍等譯. 北京: 電子工業(yè)出版社, 2004.
[4]李世國(guó)1AutoCAD 高級(jí)開(kāi)發(fā)技術(shù)ARX 編程及應(yīng)用 [M ] .北京: 機(jī)械工業(yè)出版社, 1999.
[5] 郭啟全.AutoCAD 2002 應(yīng)用與開(kāi)發(fā)教程.北京: 機(jī)械工業(yè)出版社,2003.
[6] 孫江宏,丁立偉,米潔.AutoCAD Object ARX 開(kāi)發(fā)工具及應(yīng)用.北京:清華大學(xué)出版社,1999.
[7] 老大中,趙占強(qiáng).AutoCAD 2000 ARX 二次開(kāi)發(fā)實(shí)例精粹.北京:國(guó)防工業(yè)出版社,2001.
[8] 孫海林,陸帥華,趙海峰.設(shè)計(jì)大師AutoCAD 2002 高級(jí)使用篇.北京:清華大學(xué)出版社.
[9] 高成慧,李燕.關(guān)于AutoCAD 二次開(kāi)發(fā)工具的探討.應(yīng)用技術(shù),2002,(2):31- 33。

 
 
 
 
 ☆生活有進(jìn)有退,輸什么也不能輸了心情。
  民眾工作室.制作  版權(quán)所有