你當前的位置>>主頁>>AutoCAD知識>>AutoCAD二次開發(fā)
 
           AutoCAD二次開發(fā)工具概述及特點

1)Visual LISP

適于描述人機交互操作的過程,善于編寫模擬設計師思路的專業(yè)設計程序。對于各種用戶輸入的接收、錯誤識別與恢復等操作具有相當優(yōu)秀的功能,尤其是善于充分發(fā)揮CAGD功能的巨大作用。

過去AutoLISP 最大的不足是不能編譯,現(xiàn)在已經(jīng)被 VLISP 圓滿解決了,編譯成VLX 的老的AutoLISP 程序,其效率比解釋運行條件下提高了5~8倍。

2)ADS

曾經(jīng)是在 AutoLISP 之后的一種用戶程序,在 R14 之前的AutoLISP 程序雖然是解釋運行,仍比 ADS 程序快一些,因為實際上ADS是用AutoLISP與AutoCAD交互。自AutoCAD R14已經(jīng)不再支持和發(fā)展 ADS程序設計模式,同時卻增加了Visual LISP,以進一步提高AutoLISP 的整體性能。

3)VBA

自 R14開始嵌套在AutoCAD 之中的程序設計方法,VBA是根據(jù)微軟公司的規(guī)則,在每一個 Windows 下的應用 都必須具有的功能。

其優(yōu)點是可以很容易地使用 Windows 系統(tǒng)資源,使AutoCAD能容易地與其他Windows下的應用 交互。VBA 對話框設計能力比 DCL 好得多,多圖檔環(huán)境下的應用程序也比也比VLISP提供了更多的支持。由于它是使用ActiveX與AutoCAD交互,程序設計比較復雜。會成為與VLISP并列的另一種專業(yè)用戶程序設計語言,不太容易學會。

在設計過程模擬類的程序設計中,VBA明顯不如 AutoLISP那樣順利,畢竟 AutoLISP 脫胎于人工智能語言。另外,如果 VBA 作者因為“疏忽”,沒有提供相應的方法和屬性,老的AutoLISP能夠訪問的對象數(shù)據(jù)、能夠激活的某些AutoCAD對話框,VBA卻不能。VBA雖然不是編譯運行,數(shù)據(jù)結構和程序?qū)懛▍s像ARX一樣相當嚴格,這對于工程師來說,需要有一個適應過程,你只能按照VBA的可能去組織自己的數(shù)據(jù),而不能像VLISP那樣按照專業(yè)設計要求去創(chuàng)建數(shù)據(jù)結構。

比較明顯的幾個缺憾是:VBA中不能像VLISP那樣幾乎隨心所欲地使用AutoCAD命令,只能象腳本文件的模式,以字串方式向AutoCAD命令行發(fā)送一串響應,這個字串的內(nèi)容也只好在自己的程序中生成和進行數(shù)據(jù)轉(zhuǎn)換。另外,由于VBA是以對象作為數(shù)據(jù)處理的基本單元,在VLISP中堪稱特色的CAGD程序編法,VBA則很難實現(xiàn)。因此像Trim、Extend、Dim-Diameter之類的命令都不能真正實施,要想完成這樣的操作,相關數(shù)據(jù)只能在程序中自己計算。這樣,程序設計就不能充分利用AutoCAD的操作技巧,必然復雜和羅嗦。放著AutoCAD優(yōu)秀的數(shù)據(jù)庫,卻不能充分發(fā)揮它的作用,本來能用AutoCAD完成的動作,卻要自己編程實現(xiàn)。這就是VBA最大的缺憾。VBA 另外的問題是不能編譯,源程序始終以相當容易接近的方式,暴露在最終用戶面前。很容易由于用戶的誤操作,使曾經(jīng)正常的應用程序出錯甚至崩潰。這正好是老的 AutoLISP 的致命缺點,使用 VLISP 2000的程序包編譯功能,目前還不能將 VBA 包裝進去之后解決源代碼加密的問題。VBA的源代碼加密目前只有使用 PassWord。另外,VBA與Visual LISP 之間僅有比較簡單的內(nèi)部數(shù)據(jù)通道,例如處理簡單的點位表。從這方面說,VBA的作者好像不太了解AutoCAD的特色功能和用戶們將會怎樣使用AutoCAD進行自己的設計。

擴充VBA的功能可以用 VC++ / ARX 程序,但是相當復雜,對于一般工程師來說,很難掌握。對VBA的完善和擴充,只能等待Autodesk的工作結果。

4)ObjectARX

一般是在Autodesk內(nèi)部或增值 開發(fā)商中使用。由于ARX是使用Visual C++作為基本程序設計語言,無論其效率、數(shù)據(jù)處理和軟硬件的控制能力都是最好的,是唯一圓滿地針對多圖檔環(huán)境的程序設計方法。是從根本上擴展 VLISP / VBA 的程序設計方法。

但是,與AutoCAD命令交互的功能,ARX與VBA并沒有實質(zhì)性的區(qū)別,就是說,同樣很難借用AutoCAD強大的CAGD功能。另外,要想真正發(fā)揮這種開發(fā)模式的作用,對于程序設計者的要求(計算機專業(yè)知識、 專業(yè)知識等等)也較高,而且程序運行風險較大。要求程序自己做好各種數(shù)據(jù)的測試,自己設計好各種條件下的出錯處理和恢復,否則ARX 程序的崩潰常常會連帶 AutoCAD、甚至Windows9x一起崩潰。因此,這種開發(fā)模式不適于在專業(yè)設計工程師中間普及。
粗略地說:ARX/VBA的特點在于以對象為基本操作數(shù)據(jù),適合于充當“編寫”ACAD的工具,而VLISP則是靈活而充分地使用AutoCAD的現(xiàn)有功能,適合于充當“使用”ACAD的工具。

作為 CAD 系統(tǒng),通常由三個層次的 組合而成:

a)設計 的底臺:提供界面、環(huán)境、核心算法、數(shù)據(jù)庫等基礎設施,F(xiàn)在我們是在 AutoCAD 2000這個底臺上進行工作。

b)設計支持 ,提供與設計需要相關的,比較專業(yè)的支持 :國標圖庫、通用設計工具、設計手冊等等。這些 多數(shù)是由增值 開發(fā)商完成的。

c)專業(yè)設計 ,提供窄范圍、大深度的專業(yè)設計自動化或者輔助系統(tǒng):例如:發(fā)動機裝配工具設計、膠印機控制凸輪設計、組合機主軸箱設計等等。
民眾工作室.制作      版權所有