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