中文名 | CAD二次開發(fā) | 外文名 | Two development of CAD |
---|---|---|---|
開發(fā)工具 | VisualLisp、VBA、ObjectARX |
當前AutoCAD的二次開發(fā)工具主要有:VisualLisp、VBA、ObjectARX和.NET API等。其中,VisualLisp與VBA較為簡單,特別是VBA,使用方便且開發(fā)速度較快,但其功能相比ObjectARX有所不足,尤其是對面向?qū)ο蟮墓δ苤С植缓谩6鳲bjectARX基于VC平臺,在C 的支持下,其功能非常強大,可以很好地運用各種面向?qū)ο蠹夹g(shù),但其缺點是開發(fā)速度比較慢,同時對開發(fā)人員的能力要求較高。
.NET是微軟新推出的開發(fā)平臺,具有眾多優(yōu)點。
基于.NET平臺對AutoCAD進行二次開發(fā),可充分利用.NET 的各種優(yōu)勢,在保證功能強大的前提下大大提高開發(fā)速度。
1 AutoLISP
AutoLISP的全名是LIST Processing Language,它出現(xiàn)于1985年推出的AutoCAD R2.18中,是一種嵌入在AutoCAD內(nèi)部的編程語言,是LISP原版的一個子集,它一直是低版本AutoCAD的首選編程語言。它是一種表處理語言,是被解釋執(zhí)行的,任何一個語句鍵入后就能馬上執(zhí)行,它對于交互式的程序開發(fā)非常方便。其缺點是繼承了LISP語言的編程規(guī)則而導致繁多的括號。
2 ADS
ADS的全名是AutoCAD Development System,它是AutoCAD的C語言開發(fā)系統(tǒng),ADS本質(zhì)上是一組可以用C語言編寫AutoCAD應(yīng)用程序的頭文件和目標庫,它直接利用用戶熟悉的各種流行的C語言編譯器,將應(yīng)用程序編譯成可執(zhí)行的文件在AutoCAD環(huán)境下運行,這種可以在AutoCAD環(huán)境中直接運行的可執(zhí)行文件叫做ADS應(yīng)用程序。ADS由于其速度快,又采用結(jié)構(gòu)化的編程體系,因而很適合于高強度的數(shù)據(jù)處理,如二次開發(fā)的機械設(shè)計CAD、工程分析CAD、建筑結(jié)構(gòu)CAD、土木工程CAD、化學工程CAD、電氣工程CAD等。
3 ObjectARX
ObjectARX是一種嶄新的開發(fā)AutoCAD應(yīng)用程序的工具,它以C 為編程語言,采用先進的面向?qū)ο蟮木幊淘?,提供可與AutoCAD直接交互的開發(fā)環(huán)境,能使用戶方便快捷地開發(fā)出高效簡潔的Auto CAD應(yīng)用程序。ObjectARX并沒有包含在AutoCAD中,可在AutoDESK公司網(wǎng)站中去下載,其最新版本是ObjectARX for AutoCAD 2000,它能夠?qū)utoCAD的所有事務(wù)進行完整的、先進的、面向?qū)ο蟮脑O(shè)計與開發(fā),并且開發(fā)的應(yīng)用程序速度更快、集成度更高、穩(wěn)定性更強。ObjectARX從本質(zhì)上講,是一種特定的C 編程環(huán)境,她包括一組動態(tài)鏈接庫(DLL),這些庫與AutoCAD在同一地址空間運行并能直接利用AutoCAD核心數(shù)據(jù)結(jié)構(gòu)和代碼,庫中包含一組通用工具,使得二次開發(fā)者可以充分利用AutoCAD的開放結(jié)構(gòu),直接訪問AutoCAD數(shù)據(jù)庫結(jié)構(gòu)、圖形系統(tǒng)以及CAD幾何造型核心,以便能在運行期間實時擴展AutoCAD的功能,創(chuàng)建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關(guān)鍵的API,即AcDb(Auto CAD數(shù)據(jù)庫)和AcEd(Auto CAD編譯器),另外還有其它的一些重要庫組件,如AcRX(Auto CAD實時擴展)、AcGi(Auto CAD圖形接口)、AcGe(Auto CAD幾何庫)、ADSRX(Auto CAD開發(fā)系統(tǒng)實時擴展)。ObjectARX 還可以按需要加載應(yīng)用程序;使用ObjectARX進行應(yīng)用開發(fā)還可以在同一水平上與Windows系統(tǒng)集成,并與其它Windows應(yīng)用程序?qū)崿F(xiàn)交互操作。
4 VisualLISP
VisualLISP已經(jīng)被完整地集成到AutoCAD 2000中,她為開發(fā)者提供了嶄新的、增強的集成開發(fā)環(huán)境,一改過去在AutoCAD中內(nèi)嵌AtuoLISP運行引擎的機制,這樣開發(fā)者可以直接使用AutoCAD中的對象和反應(yīng)器,進行更底層的開發(fā)。其特點為自身是AutoCAD 2000中默認的代碼編輯工具;用它開發(fā)AutoLISP程序的時間被大大地縮短,原始代碼能被保密,以防盜版和被更改;能幫助大家使用ActiveX對象及其事件;使用了流行的有色代碼編輯器和完善的調(diào)試工具,使大家很容易創(chuàng)建和分析LISP程序的運行情況。在VisualLISP中新增了一些函數(shù):如基于AutoLISP的ActiveX/COM自動化操作接口;用于執(zhí)行基于Auto CAD內(nèi)部事件的LISP程序的對象反應(yīng)器;新增了能夠?qū)Σ僮飨到y(tǒng)文件進行操作的函數(shù)。
5 VBA
VBA 即Microsoft office中的Visual Basic for Applications,它被集成到AutoCAD 2000中。VBA為開發(fā)者提供了一種新的選擇,也為用戶訪問AutoCAD 2000中豐富的技術(shù)框架打開一條新的通道。VBA和AutoCAD 2000中強大的ActiveX自動化對象模型的結(jié)合,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應(yīng)用程序,使之相互之間發(fā)生互易活動。
《深入淺出AutoCAD .NET二次開發(fā)》教程(含光盤)中介紹了這幾種開發(fā)方式,并且介紹了常用開發(fā)方式的混合開發(fā)方法 。
(1)編寫各種用戶自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2)建立符合自己要求的菜單文件,一般可在AutoCAD原菜單文件內(nèi)添加自己的內(nèi)容,對于 AutoCAD200x版本還可增加部分菜單文件,然后經(jīng)交互方式加入到系統(tǒng)中去。
(3)在系統(tǒng)的AutoCAD.LSP或類似文件中加入某些內(nèi)容以便進行各種初始化操作,如在啟動時立即裝入一些文件等。
(4)通過系統(tǒng)對話框設(shè)置某些路徑。這些操作在程序開發(fā)成功后向其它AutoCAD系統(tǒng)上安裝應(yīng)用,特別是需要大批安裝時,需要進行很多文件檢索、內(nèi)容增刪、子目錄創(chuàng)建、文件拷貝、系統(tǒng)設(shè)置等繁瑣工作,如能令上述工作全部自動進行,使整個二次開發(fā)程序在無人干預(yù)的情況下嵌入系統(tǒng),將大大提高工作效率
(5)面向?qū)ο?,讓用戶能夠根?jù)自己的需要編寫相關(guān)程序,進行二次開發(fā)。2100433B
機械設(shè)計中一般都采用AutoCAD設(shè)計軟件,在復(fù)雜 CAD問題或特殊用途的設(shè)計中,依據(jù)原有軟件的功能往往難以解決問題,在此情況下,只是會使用軟件的基本功能是不夠的
AutoCAD的二次開發(fā)主要涉及以下內(nèi)容:(1)編寫各種用戶自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜單文件,一般可在AutoCAD原菜單...
主要是有兩種方式 :一種是通過VBA,不過基本已經(jīng)過時了,另外一種就是達索公司提供的CAAT,專門針catia進行二次開發(fā)的工具,不過比較貴,新版的破解版基本找不到
就是 cad插件,輔助功能,例如工具,燕秀工具之類的
格式:pdf
大?。?span id="6muwelt" class="single-tag-height">9KB
頁數(shù): 4頁
評分: 4.4
利用 VBA 二次開發(fā) CAD 筆記 一 開發(fā)環(huán)境和準備工作 1. 開發(fā)環(huán)境: windowsXP 系統(tǒng)(其他系統(tǒng)未測試) 2.編程語言: VBA 語言 3.CAD 版本: 安裝 CAD2004 ,2006,2007 版本,可直接運行。 安裝 2010 以上版本需要單獨安裝 VBA ,由于 2010 以上版本的 VBA ,官方已經(jīng)不再綁定安裝 VBA ,因此需要安裝獨立的 VBA 。 4. 打開一個 CAD 文件,打開 菜單》工具》宏, Visual Basic 編輯器,添加對象,窗體等等, 保存工程文件,文件名 .dvb,其中 dvb 是后綴。把該文件放在 CAD 的安裝目錄下。 5. 自動加載 dvb 文件, 大約有如下幾種方法: (1)vba 自己加載法。將你的 vba工程文件改名為 acad.dvb,放在 cad的安裝 目錄下, vba 初始 化后自動加載。 (2)startup
格式:pdf
大小:9KB
頁數(shù): 2頁
評分: 4.3
本文主要針對CAD的二次開發(fā)平臺進行研究,在此基礎(chǔ)上開發(fā)出一個關(guān)于壩下箱涵自動化設(shè)計的軟件,目的是促使基層人員設(shè)計效率的提高。
書 名: CAD二次開發(fā)技術(shù)及其工程應(yīng)用
作 者:王玉琨
出版社: 清華大學出版社
出版時間: 2008
ISBN: 9787302167990
開本: 16
定價: 31.00 元
第1章 AutoCAD定制與開發(fā)概述
1.1 AutoCAD二次開發(fā)特性
1.2 設(shè)置繪圖環(huán)境
1.3 用戶系統(tǒng)配置
本章小結(jié)
練習
第2章 形定義與圖形符號庫開發(fā)
2.1 形的創(chuàng)建
2.2 圖形符號庫開發(fā)
2.3 字體定義
本章小結(jié)
練習
第3章 線開園與圖案文件的擴充
3.1 線型的定制
3.2 填充圖案
本章小結(jié)
練習
第4章 菜單和工具欄的開發(fā)
4.1 菜單及菜單文件
4.2 菜單文件的開發(fā)方法
4.3 定制工具欄
本章小結(jié)
練習
第5章 VisualLISP程序設(shè)計
5.1 VisualLISP概述
5.2 VisualLISP基礎(chǔ)
5.3 VisualLISP內(nèi)部函數(shù)
5.4 VisualLISP應(yīng)用程序開發(fā)實例
5.5 VisualLISP程序開發(fā)環(huán)境
本章小結(jié)
練習
第6章 圖形轉(zhuǎn)換接口文件
6.1 命令組文件格式及實現(xiàn)
6.2 DXF文件格式及實現(xiàn)
本章小結(jié)
練習
第7章 對話框的設(shè)計與制作
7.1 概述
7.2 對話框管理程序設(shè)計
7.3 對話框應(yīng)用舉例
本章小結(jié)
練習
第8章 工程圖的二次開發(fā)基礎(chǔ)
8.1 繪圖環(huán)境的設(shè)定
8.2 程序化繪圖過程
8.3 常用繪圖程序的編制
8.4 可視化圖庫建立方法
本章小結(jié)
練習
第9章 CAD開發(fā)技術(shù)在機械設(shè)計中的應(yīng)用
9.1 視圖標注程序設(shè)計
9.2 常用尺寸標注程序設(shè)計
9.3 標準件圖庫設(shè)計
9.4 參數(shù)化圖形繪制
9.5 三維造型設(shè)計實例
本章小結(jié)
練習
第10章 CAD開發(fā)技術(shù)在建筑設(shè)計中的應(yīng)用
10.1 常用建筑設(shè)計應(yīng)用程序
10.2 墻體設(shè)計程序設(shè)計
10.3 樓梯程序設(shè)計
本章小結(jié)
練習
第11章 CAD開發(fā)技術(shù)在礦圖設(shè)計中的應(yīng)用
11.1 坐標方格網(wǎng)繪制
11.2 邊界線程序設(shè)計
11.3 鉆孔符號繪制
11.4 斷層符號繪制
11.5 回采工作面及采空區(qū)處理
本章小結(jié)
練習
附錄AAutoCAD2004的系統(tǒng)變量一覽表
附錄B AutoCAD2004的尺寸標注系統(tǒng)變量表
附錄C VisualLISP內(nèi)部函數(shù)
參考文獻
……2100433B
比較各種開發(fā)AutoCAD的編程接口,需要從以下幾個方面進行考慮:
1. 速度:直接與AutoCAD通訊的API比利用IPC進行通訊的API在速度方面要快。編譯型的API比解釋型的API速度要快。因此,ObjectARX的速度最快,Com接口開發(fā)的外部程序速度最慢。
2. 穩(wěn)定性:運行穩(wěn)定性反映出因程序可能出現(xiàn)的嚴重錯誤所導致的危險。采用LISP開發(fā)的程序一旦失敗或崩潰,并不危害AutoCAD自身進程;而由于ObjectARX應(yīng)用程序共享AutoCAD的地址空間,所以其一旦運行失敗,AutoCAD進程隨之崩潰。
3. 性能:ObjectARX的應(yīng)用程序能在運行期間實時擴展AutoCAD,共享AutoCAD地址空間,甚至為所欲為,因此性能無比強大,以至于AutoCAD自身的許多功能模塊都是由ObjectARX進行制作。相反,解釋型API如AutoLISP僅被限用于使用靜態(tài)的AutoCAD命令集提供結(jié)構(gòu)化函數(shù)庫
4. 技術(shù)難度:AutoLISP和VBA均是解釋型語言,方便易學,開發(fā)周期短。許多程序員或一些技術(shù)人員都在使用它們。相比之下ObjectARX依賴于C 語言,它必須經(jīng)過嚴格控制的編譯、鏈接才能生成應(yīng)用程序。這就需要編程人員需要積累經(jīng)驗,這樣才能去發(fā)現(xiàn)問題從而解決問題。
5. 保密性:編譯型程序要比解釋型保密性要好,保護了開發(fā)人員的著作權(quán),解釋型語言往往保密性能不高。導致用戶誤操作源碼造成不應(yīng)有的錯誤。
另外:雖然.NET開發(fā)出來的DLL文件是編譯后的程序,但是由于其程序可以反編譯回源碼造成了代碼的保密性差,也是不容忽視的問題。
相比之下,如果以前已熟悉使用LISP語言的朋友,則可選用VisualLISP。
如果用戶只想利用開發(fā)一些簡單的周期性短的應(yīng)用程序,則可以依個人愛好和經(jīng)驗選擇Visual Basic和VisualLISP。若用戶有較好的C 基礎(chǔ)和AutoLISP函數(shù)基礎(chǔ),同時又要開發(fā)速度和性能要求都很高的應(yīng)用程序或大型CAD應(yīng)用軟件,則要使用ObjectARX。2100433B