從AutoCAD 2.18開始推出AutoLISP開始到現(xiàn)在,我們所能使用的開發(fā)工具主要有:AutoLISP、VisualLISP、VBA、COM外部接口、ObjectARX、ObjectARX.NET等開發(fā)方式供用戶選擇。下面開始對上述開發(fā)方式進行簡要介紹:
AutoLISP是進行對AutoCAD二次開發(fā)最早的API,它是人工智能語言LISP的一個分支.主要用來自動完成重復性任務,進行客戶化開發(fā)和編制AutoCAD菜單以及通過簡單機制為AutoCAD擴充命令,能夠有機的和AutoCAD結合在一起,它語法簡單容易上手,到仍有很多的活躍開發(fā)用戶。但是由于它是解釋型API而不是面向對象的編程語言,使它的效率低下,由于執(zhí)行的是源代碼文件所以導致保密性能不高很難用它開發(fā)大型的應用程序。
在AutoCAD R14.01中,Autodesk公司首次提供了一種新的LISP編程工具:Visual LISP,它是一種面向對象的開發(fā)環(huán)境,是AutoLISP的擴展和延伸。
在AutoCAD2000中,Visual LISP被集成到了AutoCAD環(huán)境之中。Visual LISP是一種半編譯的API。由于可以被編譯所以大大提高了運行效率和安全性。同時它又與AutoLISP完全兼容,又提供了AutoLISP的所有功能,同時它又能夠訪問AutoCAD的多文檔環(huán)境,以及對COM/ActiveX技術的支持和反應器等。VisualLISP
IDE同時提供了完整的編輯環(huán)境使得用戶可以對代碼進行調試跟蹤、源碼語法檢查、括號匹配、函數(shù)提示等工具,方便創(chuàng)建和調試LISP程序。由于VLISP集成于AutoCAD內(nèi)部,而且隨AutoCAD升級而升級所以兼容性比較好,這也是LISP深受廣大編程愛好者使用的原因。
但在進行大數(shù)據(jù)的計算處理方面,Visual LISP不能很好的勝任這項任務,這使得開發(fā)大型數(shù)據(jù)運算的程序仍有一定困難。
ADS(AutoCAD Development System)是Autodesk公司最早在AutoCAD R11中提供的C語言編程環(huán)境。ADS除可使用標準C的函數(shù)外,又增加了一組專用于對AutoCAD進行操作的函數(shù)。由于ADS程序具有C語言的一切優(yōu)點,因而它曾是開發(fā)AutoCAD R11、AutoCAD R12應用程序的主要工具。用C寫就的ADS程序,可在所有支持AutoCAD平臺上進行源代碼移植。只需使用普通的C語言編譯器就可以編譯生成ADS模塊,與ADS庫和標準C庫鏈接后生成可執(zhí)行文件,裝入AutoCAD后即可運行。但是ADS和AutoLISP一樣,內(nèi)在結構不是面向對象的,用AutoLISP解釋器加載和調用,利用IPC與AutoCAD通訊。
ARX(AutoCAD Runtime eXtension)是在ADS基礎上發(fā)展起來的一種面向對象的C語言編程環(huán)境。由ADS到ARX的變遷就像C到C 的轉變。ARX與老式的ADS及AutoLISP的最大差異在于ARX應用程序是動態(tài)鏈接庫,共享AutoCAD地址空間,可以對AutoCAD進行直接函數(shù)調用,避免了IPC的系統(tǒng)開銷和由此引起的性
能下降。因此那些頻繁與AutoCAD通訊的應用程序在ARX環(huán)境下的運行效率明顯優(yōu)于老式ADS或AutoLISP環(huán)境。
ARX最早是在AutoCAD R13中提供的,但在AutoCAD R14中,ARX就被ObjectARX所代替。同時原來的ADS庫函數(shù)全部被包含在ObjectARX中,將ADS函數(shù)合為單一的庫就形成了ADSRX。ADSRX庫已納入到AutoCAD的總體結構中,因此它與其他ObjectARX庫一樣,能共享AutoCAD地址空間。
到了新世紀,傳統(tǒng)意義上的ADS開發(fā)環(huán)境的概念已經(jīng)不復存在,且ADSRX已成為了ObjectARX的一個子集,因此,ObjectARX是包含了ADS、ARX和ADSRX的一種綜合的C/C 開發(fā)環(huán)境。ObjectARX的最大特點是引入了面向對象的編程機制,用戶可以根據(jù)規(guī)則定制實體也是ObjectARX的一大亮點。
自AutoCAD R14起,提供了ActiveX Automation形式的API。ActiveX技術可將各種二進制應用程序組件集成一體。它可采用多種編程方式例如:VBA構造一種或多種與應用程序獨立的宏編程。提供Automation服務的軟件組件通過標準接口能夠對外開放它的特定功能。
正是由于AutoCAD擁有ActiveX接口,因此,用戶可以容易的用各種AciveX編程語言來定制開發(fā)AutoCAD。
AutoCAD包含的VBA能在進程內(nèi)訪問AutoCAD的對象模型。亦可以通過獨立
的VB進行編程,但是VB與ActiveX的接口需要通過IPC驅動AutoCAD,所以作為ActiveX控件的VBA比VB具有明顯的性能優(yōu)勢。
特別要強調的是,ActiveX與AutoCAD交互操作很慢,若需要在外部程序中一邊運算一邊交互操作的重復迭代,將耗費大量時間,如同死機
值得注意的是,從AutoCAD 2010版本開始,VBA不在隨AutoCAD一起安裝。如果想要在機器中運行VBA程序必須登錄下面的網(wǎng)址進行下載方可運行。
在AutoCAD 2005 版本中Autodesk公司推出了用.NET開發(fā)AutoCAD的編程接口。它的實質是通過Managed C /CLR技術對VC 的ObjectARX進行封裝。到AutoCAD 2015十年來Autodesk公司已經(jīng)完成對大部分ObjectARX編程接口的封裝。這種編程方式難度適中,能夠訪問大部分的編程接口(除了自定義實體);但是,由于AutoCAD的.NET接口是在不斷的完善過程中導致了在低版本上不能夠使用新增的功能。
AutoCAD是在Windows和MAC系統(tǒng)中應用最為廣泛、使用人數(shù)最多的CAD軟件。但它只給我們提供了基礎的CAD功能,如果我們想完成具體項目設計,就必須根據(jù)數(shù)據(jù)一筆筆繪制出圖形,這樣一旦在設計完成之后,要更改局部圖形則需要重復原來的全部內(nèi)容。造成了大量工作量的浪費。
如果使用AutoCAD的開發(fā)系統(tǒng),我們就可以將以上的過程用程序編制出來,在需要設計時,只需一個命令就可以運行這個程序,自動完成繪圖過程。顯而易見,這不僅大大提高了設計效率,而且,還可以通過定制來完成某些專業(yè)化的模塊,甚至大型設計軟件,比如測繪行業(yè)的南方CASS軟件、建筑行業(yè)的天正CAD軟件等均是用AutoCAD開發(fā)系統(tǒng)實現(xiàn)的。
因此,要想讓AutoCAD真正使用于某一具體領域,或讓其經(jīng)常完成一些重復性的工作,則必須利用AutoCAD的開發(fā)系統(tǒng)對其進行二次開發(fā).
比較各種開發(fā)AutoCAD的編程接口,需要從以下幾個方面進行考慮:
1. 速度:直接與AutoCAD通訊的API比利用IPC進行通訊的API在速度方面要快。編譯型的API比解釋型的API速度要快。因此,ObjectARX的速度最快,Com接口開發(fā)的外部程序速度最慢。
2. 穩(wěn)定性:運行穩(wěn)定性反映出因程序可能出現(xiàn)的嚴重錯誤所導致的危險。采用LISP開發(fā)的程序一旦失敗或崩潰,并不危害AutoCAD自身進程;而由于ObjectARX應用程序共享AutoCAD的地址空間,所以其一旦運行失敗,AutoCAD進程隨之崩潰。
3. 性能:ObjectARX的應用程序能在運行期間實時擴展AutoCAD,共享AutoCAD地址空間,甚至為所欲為,因此性能無比強大,以至于AutoCAD自身的許多功能模塊都是由ObjectARX進行制作。相反,解釋型API如AutoLISP僅被限用于使用靜態(tài)的AutoCAD命令集提供結構化函數(shù)庫
4. 技術難度:AutoLISP和VBA均是解釋型語言,方便易學,開發(fā)周期短。許多程序員或一些技術人員都在使用它們。相比之下ObjectARX依賴于C 語言,它必須經(jīng)過嚴格控制的編譯、鏈接才能生成應用程序。這就需要編程人員需要積累經(jīng)驗,這樣才能去發(fā)現(xiàn)問題從而解決問題。
5. 保密性:編譯型程序要比解釋型保密性要好,保護了開發(fā)人員的著作權,解釋型語言往往保密性能不高。導致用戶誤操作源碼造成不應有的錯誤。
另外:雖然.NET開發(fā)出來的DLL文件是編譯后的程序,但是由于其程序可以反編譯回源碼造成了代碼的保密性差,也是不容忽視的問題。
相比之下,如果以前已熟悉使用LISP語言的朋友,則可選用VisualLISP。
如果用戶只想利用開發(fā)一些簡單的周期性短的應用程序,則可以依個人愛好和經(jīng)驗選擇Visual Basic和VisualLISP。若用戶有較好的C 基礎和AutoLISP函數(shù)基礎,同時又要開發(fā)速度和性能要求都很高的應用程序或大型CAD應用軟件,則要使用ObjectARX。2100433B
AutoCAD CAD 二次開發(fā) CAD VBA開發(fā)。
Dim BlockNameSt As StringSub DimDimaligned()On Error GoTo ErrDim Po(0 To 2) As DoubleDim Pr(0 To 2) ...
什么 是 autocadcad 二次開發(fā) (100分)
說白了就是基與autocad的功能再開發(fā)出新的功能,類似升級咯基本AUTOCAD系統(tǒng)的二次開發(fā)基本有兩種模式,一是取得AC授權的商業(yè)開發(fā),二是“民間”私自開發(fā)。經(jīng)過許多年的積累和成熟后,前者如天正等也...
格式:pdf
大?。?span id="nqoztes" class="single-tag-height">683KB
頁數(shù): 5頁
評分: 4.3
由于鍋爐技術的不斷創(chuàng)新,原有設計可借用率不斷下降,導致設計工作量大幅度增加。傳統(tǒng)的手工計算機制圖已無法滿足設計及項目要求,大量的計算工作及制圖工作量導致了出錯率上升。使用C#語言對AutoCAD進行二次開發(fā)并組合前期計算,可以實現(xiàn)自動化繪制鍋爐圖紙,有效的減少計算工作量,并最大程度的降低人為主觀錯誤。
格式:pdf
大?。?span id="vgdkpxm" class="single-tag-height">683KB
頁數(shù): 4頁
評分: 4.4
Auto CAD是目前應用較為廣泛的計算機輔助繪圖軟件,擁有良好的用戶界面,較完善的繪圖功能,操作簡單的特點,但是僅僅基于Auto CAD繪圖是不能滿足測量繪圖中的特殊需要。為此,概述了Auto CAD的一些基本知識,并用VBA對Auto CAD進行二次開發(fā),解決繪圖中一些實際的問題:批量展繪點,批量構造多段線、直線,批量變換點樣式等。實現(xiàn)了水文岸邊地形測量中,自動繪制岸邊道路及建筑物功能。
第1章 AutoCAD定制與開發(fā)概述
1.1 AutoCAD二次開發(fā)特性
1.2 設置繪圖環(huán)境
1.3 用戶系統(tǒng)配置
本章小結
練習
第2章 形定義與圖形符號庫開發(fā)
2.1 形的創(chuàng)建
2.2 圖形符號庫開發(fā)
2.3 字體定義
本章小結
練習
第3章 線開園與圖案文件的擴充
3.1 線型的定制
3.2 填充圖案
本章小結
練習
第4章 菜單和工具欄的開發(fā)
4.1 菜單及菜單文件
4.2 菜單文件的開發(fā)方法
4.3 定制工具欄
本章小結
練習
第5章 VisualLISP程序設計
5.1 VisualLISP概述
5.2 VisualLISP基礎
5.3 VisualLISP內(nèi)部函數(shù)
5.4 VisualLISP應用程序開發(fā)實例
5.5 VisualLISP程序開發(fā)環(huán)境
本章小結
練習
第6章 圖形轉換接口文件
6.1 命令組文件格式及實現(xiàn)
6.2 DXF文件格式及實現(xiàn)
本章小結
練習
第7章 對話框的設計與制作
7.1 概述
7.2 對話框管理程序設計
7.3 對話框應用舉例
本章小結
練習
第8章 工程圖的二次開發(fā)基礎
8.1 繪圖環(huán)境的設定
8.2 程序化繪圖過程
8.3 常用繪圖程序的編制
8.4 可視化圖庫建立方法
本章小結
練習
第9章 CAD開發(fā)技術在機械設計中的應用
9.1 視圖標注程序設計
9.2 常用尺寸標注程序設計
9.3 標準件圖庫設計
9.4 參數(shù)化圖形繪制
9.5 三維造型設計實例
本章小結
練習
第10章 CAD開發(fā)技術在建筑設計中的應用
10.1 常用建筑設計應用程序
10.2 墻體設計程序設計
10.3 樓梯程序設計
本章小結
練習
第11章 CAD開發(fā)技術在礦圖設計中的應用
11.1 坐標方格網(wǎng)繪制
11.2 邊界線程序設計
11.3 鉆孔符號繪制
11.4 斷層符號繪制
11.5 回采工作面及采空區(qū)處理
本章小結
練習
附錄AAutoCAD2004的系統(tǒng)變量一覽表
附錄B AutoCAD2004的尺寸標注系統(tǒng)變量表
附錄C VisualLISP內(nèi)部函數(shù)
參考文獻
……2100433B
書 名: CAD二次開發(fā)技術及其工程應用
作 者:王玉琨
出版社: 清華大學出版社
出版時間: 2008
ISBN: 9787302167990
開本: 16
定價: 31.00 元
掌握AutoCAD穖基本操作后,通過本書可以取得以下收獲。AutoCAD系統(tǒng)的基本定制;AutoCAD系統(tǒng)的形、線型、圖案、菜單和工具欄等項內(nèi)容開發(fā)方法;AutoLOSP語言的基礎知識和編程技巧;AutoCAD對話框的設計及應用;AutoCAD系統(tǒng)命令的擴充方法;工程應用程序的開發(fā)方法與技巧。