第二章 AutoCAD VBA項(xiàng)目管理

說(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編程三要素:

  1. AutoCAD本身?yè)碛胸S富的對(duì)象封裝了AutoCAD實(shí)體(圖元)、數(shù)據(jù)和命令。
  2. AutoCAD ActiveX自動(dòng)化接口與AutoCAD對(duì)象建立通信浴栽。
  3. 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管理器

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”一死。
  2. 在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)目的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“加載工程”抱既。在“打開(kāi)VBA工程”對(duì)話框中职烧,選擇要加載的項(xiàng)目文件。
  2. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”中蚀之,單擊“加載”選擇要加載的項(xiàng)目文件蝗敢。
  3. 在AutoCAD命令行輸入vbaload。顯示“打開(kāi)VBA工程”對(duì)話框足删,選擇要加載的項(xiàng)目文件寿谴。
  4. 將dvb文件從文件資源管理器拖放到AutoCAD窗口打開(kāi)的圖形中。
  5. 使用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)目的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”中辖试,選擇要卸載的VBA項(xiàng)目卸載辜王。
  2. 在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)目的方法:

  1. 功能區(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)目的方法:

  1. 功能區(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)目的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板(展開(kāi)的)→“VBA管理器”。在“VBA管理器”**中艾恼,單擊新建住涉。
  2. 在AutoCAD命令輸入vbanew。

保存項(xiàng)目

保存項(xiàng)目的方法:

  1. 功能區(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)方法:

  1. 通過(guò)單擊“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”俩功。
  2. 在AutoCAD命令行幻枉,輸入vbarun。

關(guān)于創(chuàng)建宏

創(chuàng)建宏的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”诡蜓。在“宏位置”選擇位置熬甫,在宏名稱中,輸入新宏的名稱蔓罚,然后單擊創(chuàng)建椿肩。

關(guān)于刪除宏

刪除宏的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”。在“宏位置”選擇位置豺谈,在宏列表中郑象,選擇“刪除”宏。

關(guān)于運(yùn)行宏

運(yùn)行宏的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”茬末。在“宏位置”選擇位置扣唱,在宏列表中選擇宏,單擊“運(yùn)行”团南。
  2. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“Visual Basic 編輯器”。在VBA IDE的代碼窗口中炼彪,將光標(biāo)放在要執(zhí)行的函數(shù)或子過(guò)程上吐根,從“運(yùn)行”菜單中,單擊“運(yùn)行宏”辐马。
  3. 在AutoCAD命令提示符拷橘,輸入vbarun。

關(guān)于編輯宏

編輯宏的方法:

  1. 功能區(qū)“管理”選項(xiàng)卡→“應(yīng)用程序”面板→“運(yùn)行VBA宏”。在“宏位置”選擇位置冗疮,在宏列表中選擇宏萄唇,單擊“編輯”。

關(guān)于單步執(zhí)行宏

單步執(zhí)行宏的方法:

  1. 功能區(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)方法:

  1. 功能區(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宏椿争。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市熟嫩,隨后出現(xiàn)的幾起案子秦踪,更是在濱河造成了極大的恐慌,老刑警劉巖掸茅,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椅邓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡昧狮,警方通過(guò)查閱死者的電腦和手機(jī)景馁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逗鸣,“玉大人合住,你說(shuō)我怎么就攤上這事∪鲨担” “怎么了透葛?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)卿樱。 經(jīng)常有香客問(wèn)我僚害,道長(zhǎng),這世上最難降的妖魔是什么殿如? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任贡珊,我火速辦了婚禮,結(jié)果婚禮上涉馁,老公的妹妹穿的比我還像新娘门岔。我一直安慰自己,他們只是感情好烤送,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布寒随。 她就那樣靜靜地躺著,像睡著了一般帮坚。 火紅的嫁衣襯著肌膚如雪妻往。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天试和,我揣著相機(jī)與錄音讯泣,去河邊找鬼。 笑死阅悍,一個(gè)胖子當(dāng)著我的面吹牛好渠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播节视,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拳锚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了寻行?” 一聲冷哼從身側(cè)響起霍掺,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拌蜘,沒(méi)想到半個(gè)月后杆烁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拦坠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年连躏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贞滨。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡入热,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晓铆,到底是詐尸還是另有隱情勺良,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布骄噪,位于F島的核電站尚困,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏链蕊。R本人自食惡果不足惜事甜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一谬泌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逻谦,春花似錦掌实、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至滋将,卻和暖如春邻悬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背随闽。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工父丰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人橱脸。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓础米,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親添诉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屁桑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容