說(shuō)明:本篇內(nèi)容由SudoMe根據(jù)AutoCAD官方開(kāi)發(fā)文檔整理修改而來(lái)左腔,如有內(nèi)容表述不準(zhǔn)確或理解錯(cuò)誤的崩掘,請(qǐng)及時(shí)反饋誉结。
AutoCAD VBA
使用AutoCAD VBA有以下優(yōu)點(diǎn):
- VBA及其環(huán)境易于學(xué)習(xí)和使用昂验。
- VBA與AutoCAD一起在進(jìn)程中運(yùn)行,這意味著程序執(zhí)行非晨裘鳎快速艰毒。
- 快速構(gòu)建對(duì)話框,開(kāi)發(fā)人員能夠快速設(shè)計(jì)應(yīng)用程序原型并接收對(duì)設(shè)計(jì)的反饋搜囱。
- 項(xiàng)目可以獨(dú)立丑瞧,也可以嵌入到圖形中,應(yīng)用程序分發(fā)極具靈活性犬辰。
VBA通過(guò)AutoCAD ActiveX Automation接口與AutoCAD通信嗦篱。AutoCAD、ActiveX Automation和VBA的耦合不僅可以操作AutoCAD對(duì)象幌缝,還可以將數(shù)據(jù)發(fā)送到其他應(yīng)用程序或從其他應(yīng)用程序返回?cái)?shù)據(jù)灸促。
AutoCAD的ActiveX和VBA編程三要素:
- AutoCAD本身?yè)碛胸S富的對(duì)象封裝了AutoCAD實(shí)體(圖元)、數(shù)據(jù)和命令。
- AutoCAD ActiveX自動(dòng)化接口與AutoCAD對(duì)象建立通信浴栽。
- VBA編程環(huán)境荒叼,它有自己的一組對(duì)象、關(guān)鍵字典鸡、常量等被廓,用于提供程序流、控制萝玷、調(diào)試和執(zhí)行嫁乘。
注意:在使用前請(qǐng)下載安裝AutoCAD的VBA模塊,才可以使用相關(guān)的功能球碉。
鏈接地址:下載適用于AutoCAD的Microsoft VBA模塊 (autodesk.com.cn)
使用VBA管理器
VBA管理器是一個(gè)AutoCAD工具蜓斧,可以加載、卸載睁冬、保存挎春、創(chuàng)建、嵌入和提取VBA項(xiàng)目豆拨。
關(guān)于嵌入式和全局VBA項(xiàng)目
嵌入項(xiàng)目存儲(chǔ)在AutoCAD圖形中直奋。每當(dāng)在AutoCAD中打開(kāi)包含這些項(xiàng)目的圖形時(shí),都會(huì)自動(dòng)加載這些項(xiàng)目施禾,從而使項(xiàng)目的分發(fā)非常方便脚线。嵌入項(xiàng)目受到無(wú)法打開(kāi)或關(guān)閉AutoCAD圖形的限制,因?yàn)樗鼈儍H在其所在的文檔中起作用弥搞。全局項(xiàng)目存儲(chǔ)在單獨(dú)的文件中殉挽,它們可以打開(kāi)和關(guān)閉AutoCAD圖形,但在打開(kāi)圖形時(shí)不會(huì)自動(dòng)加載拓巧,全局項(xiàng)目更容易與其他用戶共享。
打開(kāi)VBA管理器
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”一死。
- 在AutoCAD命令行輸入vbaman肛度。
加載項(xiàng)目
加載項(xiàng)目有以下注意:
- 當(dāng)加載項(xiàng)目時(shí),自動(dòng)加載第一個(gè)項(xiàng)目引用的其他項(xiàng)目投慈。
- AutoCAD在啟動(dòng)時(shí)自動(dòng)加載名為acad.dvb的項(xiàng)目文件承耿。
- 通過(guò)文件資源管理器拖動(dòng)dvb文件到AutoCAD窗口圖形來(lái)加載項(xiàng)目的方式,不會(huì)顯示病毒警報(bào)伪煤。
- 每當(dāng)打開(kāi)圖形時(shí)加袋,都會(huì)自動(dòng)加載在圖形中的嵌入項(xiàng)目。
加載VBA項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“加載工程”抱既。在“打開(kāi)VBA工程”對(duì)話框中职烧,選擇要加載的項(xiàng)目文件。
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”中蚀之,單擊“加載”選擇要加載的項(xiàng)目文件蝗敢。
- 在AutoCAD命令行輸入vbaload。顯示“打開(kāi)VBA工程”對(duì)話框足删,選擇要加載的項(xiàng)目文件寿谴。
- 將dvb文件從文件資源管理器拖放到AutoCAD窗口打開(kāi)的圖形中。
- 使用AutoLISP vl-vbaload函數(shù)失受。
注意:若要訪問(wèn)“打開(kāi)VBA項(xiàng)目”對(duì)話框讶泰,在命令行中輸入VBALOAD,對(duì)話框?qū)⒋蜷_(kāi)拂到。如果看不到“打開(kāi)VBA項(xiàng)目”對(duì)話框痪署,則很可能是因?yàn)橄到y(tǒng)變量FILEDIA已關(guān)閉。若要顯示對(duì)話框谆焊,將其設(shè)置為1惠桃。
引用參考:AutoCAD 2024 幫助 | FILEDIA(系統(tǒng)變量)
卸載項(xiàng)目
卸載VBA項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”中辖试,選擇要卸載的VBA項(xiàng)目卸載辜王。
- 在AutoCAD命令行輸入vbaunload。
嵌入項(xiàng)目
嵌入項(xiàng)目時(shí)罐孝,會(huì)將項(xiàng)目的副本放入圖形數(shù)據(jù)庫(kù)中呐馆。每當(dāng)打開(kāi)或關(guān)閉包含該項(xiàng)目的圖形時(shí),都會(huì)加載或卸載項(xiàng)目莲兢。如果圖形已包含嵌入項(xiàng)目汹来,則必須先提取該項(xiàng)目,然后才能將其他項(xiàng)目嵌入到圖形中改艇。
嵌入項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”收班。在“VBA管理器”中,選擇要嵌入的項(xiàng)目谒兄,單擊嵌入摔桦。
提取項(xiàng)目
提取項(xiàng)目時(shí),將從圖形數(shù)據(jù)庫(kù)中刪除該項(xiàng)目承疲,提取會(huì)提醒是否項(xiàng)目文件保存到本地邻耕,不保存則將刪除項(xiàng)目數(shù)據(jù)。
提取項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”燕鸽。在“VBA管理器”中兄世,單擊“提取”。在“AutoCAD”消息框中啊研,單擊“是”將VBA項(xiàng)目導(dǎo)出到DVB文件并刪除嵌入的項(xiàng)目文件御滩。單擊“否”僅刪除嵌入的項(xiàng)目文件鸥拧。
創(chuàng)建項(xiàng)目
創(chuàng)建項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”**中艾恼,單擊新建住涉。
- 在AutoCAD命令輸入vbanew。
保存項(xiàng)目
保存項(xiàng)目的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”钠绍。在“VBA管理器”中舆声,選擇要保存的項(xiàng)目保存。
注意:在保存項(xiàng)目之前柳爽,默認(rèn)保存為project.dvb媳握。如果使用默認(rèn)文件名project.dvb保存項(xiàng)目,將無(wú)法再創(chuàng)建新的空項(xiàng)目磷脯。每次創(chuàng)建新項(xiàng)目時(shí)蛾找,都會(huì)加載名為project.dvb的已保存項(xiàng)目。
使用宏對(duì)話框
宏對(duì)話框允許運(yùn)行赵誓、編輯打毛、刪除和創(chuàng)建宏以及設(shè)置VBA項(xiàng)目選項(xiàng)。
打開(kāi)宏對(duì)話框
宏對(duì)話框打開(kāi)方法:
- 通過(guò)單擊“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”俩功。
- 在AutoCAD命令行幻枉,輸入vbarun。
關(guān)于創(chuàng)建宏
創(chuàng)建宏的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”诡蜓。在“宏位置”選擇位置熬甫,在宏名稱中,輸入新宏的名稱蔓罚,然后單擊創(chuàng)建椿肩。
關(guān)于刪除宏
刪除宏的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”。在“宏位置”選擇位置豺谈,在宏列表中郑象,選擇“刪除”宏。
關(guān)于運(yùn)行宏
運(yùn)行宏的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”茬末。在“宏位置”選擇位置扣唱,在宏列表中選擇宏,單擊“運(yùn)行”团南。
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“Visual Basic 編輯器”。在VBA IDE的代碼窗口中炼彪,將光標(biāo)放在要執(zhí)行的函數(shù)或子過(guò)程上吐根,從“運(yùn)行”菜單中,單擊“運(yùn)行宏”辐马。
- 在AutoCAD命令提示符拷橘,輸入vbarun。
關(guān)于編輯宏
編輯宏的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”。在“宏位置”選擇位置冗疮,在宏列表中選擇宏萄唇,單擊“編輯”。
關(guān)于單步執(zhí)行宏
單步執(zhí)行宏的方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”术幔。在“宏位置”選擇位置另萤,在宏列表中選擇宏,單擊“逐語(yǔ)句”诅挑,在“調(diào)試”工具欄或“調(diào)試”菜單上四敞,單擊“逐語(yǔ)句”以繼續(xù)執(zhí)行宏,一次一行拔妥。單擊“繼續(xù)”以恢復(fù)宏的正常執(zhí)行忿危。
關(guān)于設(shè)置項(xiàng)目選項(xiàng)
AutoCAD VBA項(xiàng)目選項(xiàng)設(shè)置如下:
選項(xiàng) | 說(shuō)明 |
---|---|
啟用自動(dòng)嵌入 | 打開(kāi)圖形時(shí),自動(dòng)嵌入功能會(huì)自動(dòng)為所有圖形創(chuàng)建嵌入的VBA項(xiàng)目没龙。 |
允許在錯(cuò)誤時(shí)中斷 | 啟用此選項(xiàng)后铺厨,執(zhí)行宏期間發(fā)現(xiàn)的未處理錯(cuò)誤將暫停宏的執(zhí)行,并在VBE中顯示宏的錯(cuò)誤點(diǎn)硬纤。禁用此選項(xiàng)后解滓,執(zhí)行宏期間發(fā)現(xiàn)的未處理錯(cuò)誤將顯示消息框,提醒您注意該錯(cuò)誤咬摇,然后結(jié)束宏的執(zhí)行伐蒂。 |
啟用宏病毒防護(hù) | 每當(dāng)打開(kāi)可能包含宏病毒的圖形時(shí),病毒防護(hù)機(jī)制都會(huì)顯示內(nèi)置警告消息肛鹏。 |
設(shè)置項(xiàng)目選項(xiàng)方法:
- 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”逸邦。在宏對(duì)話框中,單擊“選項(xiàng)”在扰,在“選項(xiàng)”對(duì)話框中選擇需要的選項(xiàng)缕减,單擊“確定”。
AutoCAD VBA術(shù)語(yǔ)芒珠、命令
VBA術(shù)語(yǔ)參考
術(shù)語(yǔ) | 說(shuō)明 |
---|---|
全局項(xiàng)目 | 存儲(chǔ)在dvb文件中的VBA項(xiàng)目桥狡。 |
嵌入項(xiàng)目 | 存儲(chǔ)在AutoCAD圖形中的VBA項(xiàng)目。 |
當(dāng)前項(xiàng)目 | 當(dāng)前在VBA IDE中選擇的項(xiàng)目皱卓。 |
ThisDrawing | 表示當(dāng)前繪圖裹芝,全局項(xiàng)目:當(dāng)前活動(dòng)文檔。嵌入項(xiàng)目:包含嵌入項(xiàng)目的文檔娜汁。 |
VBA集成開(kāi)發(fā)環(huán)境 | VBA交互式開(kāi)發(fā)環(huán)境嫂易,允許編輯代碼和窗體、設(shè)置對(duì)象模型的引用掐禁。 |
VBA管理器 | 允許管理項(xiàng)目怜械,可以創(chuàng)建颅和、刪除、嵌入或提取項(xiàng)目缕允。 |
宏對(duì)話框 | 允許運(yùn)行峡扩、刪除和創(chuàng)建宏,并提供對(duì)VBA項(xiàng)目選項(xiàng)的訪問(wèn)障本。 |
VBA命令參考
命令 | 說(shuō)明 |
---|---|
VBAIDE | 啟動(dòng)VBA IDE教届,VBA IDE允許您以交互方式編輯、運(yùn)行和調(diào)試程序彼绷。 |
VBALOAD | 將VBA項(xiàng)目加載到當(dāng)前AutoCAD會(huì)話中巍佑。 |
VBAMAN | 顯示VBA管理器。 |
VBANEW | 創(chuàng)建新項(xiàng)目寄悯。 |
VBAPREF | 顯示“選項(xiàng)”對(duì)話框萤衰,設(shè)置特定于VBA的選項(xiàng)。 |
VBARUN | 從宏對(duì)話框或AutoCAD命令行運(yùn)行VBA宏猜旬。 |
VBASTMT | 在AutoCAD命令行執(zhí)行VBA語(yǔ)句脆栋。 |
VBAUNLOAD | 從當(dāng)前AutoCAD會(huì)話中卸載VBA項(xiàng)目。 |
VBA AutoLISP函數(shù)參考
函數(shù) | 說(shuō)明 |
---|---|
VL-VBAload | 加載VBA項(xiàng)目洒擦。 |
VL-VBArun | 運(yùn)行VBA宏椿争。 |