版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VBA開發(fā)人員手冊(cè) 姓名:高化奎深圳愛華勘測(cè)工程有限公司第一章:VBA入門本章將為你介紹AutoCAD VBA工程及VBA交互開發(fā)環(huán)境(VBA IDE)。盡管大部分VBA環(huán)境在行為上都是相似的,但AutoCAD VBA IDE還是有些獨(dú)有的特性。在AutoCAD中還有些相關(guān)的命令可以用于裝載工程、運(yùn)行工程,或打開VBA IDE環(huán)境。本章將概要介紹VBA工程、VBA命令和VBA IDE的使用。本章具體內(nèi)容如下:了解嵌入和全局VBA工程、用VBA管理器組織工程、處理宏、用VBA IDE編輯工程、更多的信息、回顧AutoCAD VBA 工程術(shù)語(yǔ)、回顧AutoCAD VBA 命令第一節(jié):了解嵌入和全局
2、VBA工程AutoCAD VBA 工程是代碼模塊、類模塊和窗體的集合,它們組合起來以執(zhí)行給予的功能。工程可保存在AutoCAD圖形中,或作為獨(dú)立的文件保存。嵌入工程是保存在AutoCAD圖形中。當(dāng)包含有這些工程的圖形中AutoCAD打開時(shí),他們可以自動(dòng)地裝載,這種方法可以很方便地分發(fā)工程給用戶。嵌入工程也有它的極限,它不能打開或關(guān)閉AutoCAD圖形,那是由于他們的函數(shù)只存在于工程所在的文檔中。使用嵌入工程不需要在運(yùn)行程序之前查找并裝載工程文件。舉個(gè)含有嵌入工程的圖形的例子,當(dāng)圖形打開時(shí),一個(gè)時(shí)間日志被觸發(fā)。通過這樣一個(gè)宏的應(yīng)用可以登記并記錄用戶在該圖形上所花費(fèi)的時(shí)間。這時(shí)用戶不必去記住在打開
3、圖形之前裝載工程,這就是自動(dòng)操作的一個(gè)很好的例子。全局工程保存在獨(dú)立的文件中,它更加通用,因?yàn)樗麄兡茉贏utoCAD圖形中運(yùn)行,也能打開、關(guān)閉AutoCAD圖形,但它在圖形打開時(shí)不能自動(dòng)裝載。用戶必須知道他們所需要的宏包含在哪個(gè)工程文件中。然而,全局工程非常容易與其它使用者共享,它可以將通用的宏做為很好的庫(kù)而存在。舉個(gè)例子,你保存在一個(gè)工程文件中的宏是有關(guān)多個(gè)圖形的材料清單。這個(gè)宏可以在工作周期的末期由管理員運(yùn)行,這樣就可以收集到所有圖形的信息。在特定的時(shí)間,用戶可以在同個(gè)AutoCAD進(jìn)程中同時(shí)裝載嵌入工程和全局工程。AutoCAD VBA 工程與Visual Basic 工程在二進(jìn)制結(jié)構(gòu)上
4、是不兼容的。然而,其中的窗體、模塊和類可以通過在VBA IDE環(huán)境中使用輸入和輸出VBA命令來在工程之間進(jìn)行轉(zhuǎn)換。關(guān)于VBA IDE的更多信息,可以查看“用VBA IDE編輯工程”第二節(jié):用VBA管理器組織工程你可以使用VBA管理器查看裝載在當(dāng)前AutoCAD進(jìn)程的所有VBA工程。VBA管理器一個(gè)AutoCAD工具,它允許你裝載、卸載、保存、創(chuàng)建、嵌入和分離VBA工程。打開VBA管理器的步驟:1.在工具菜單中選擇宏-VBA管理器。 2.或者,在AutoCAD中調(diào)用VBAMAN命令。 本節(jié)的內(nèi)容:裝載現(xiàn)存的工程、卸載工程、嵌入工程到圖形中、從圖形中分離工程、創(chuàng)建新的工程、保存嵌入工程。裝載現(xiàn)存的
5、工程當(dāng)你裝載工程到AutoCAD中,所有的公用的子程序(也稱為宏)都可以使用。 嵌入于圖形中的工程在圖形打開時(shí)就被裝載。保存在DVB文件中的工程必須單獨(dú)裝載。裝載現(xiàn)存的VBA工程文件1.在VBA管理器中,使用裝載項(xiàng)可彈出打開VBA工程對(duì)話框。 2.在打開VBA工程對(duì)話框中,選擇打開的工程文件。該VBA工程對(duì)話框允許你打開有效的DVB文件。如果你嘗試打開不同類型的文件,你將會(huì)得到出錯(cuò)信息。 3.選擇打開。 你也可以使用VBALOAD命令直接出現(xiàn)打開VBA工程對(duì)話框以裝載工程文件。另外,當(dāng)工程裝載后,該工程所引用的其它工程將會(huì)自動(dòng)地裝載。還有,AutoCAD在啟動(dòng)時(shí)將自動(dòng)裝載名稱為acad.dvb
6、的工程文件。 相關(guān)主題:病毒警告 每次當(dāng)你裝載工程時(shí),你會(huì)看到啟用或禁用工程中的代碼以阻止宏病毒的警告框。如果你選用啟用代碼,如果工程中含有宏病毒時(shí)病毒可能會(huì)發(fā)作。如果你禁用代碼,工程同樣會(huì)裝載,但工程中的所有代碼將不能運(yùn)行。想查看更多關(guān)于病毒保護(hù)的信息,請(qǐng)參考“設(shè)置工程選項(xiàng)”。 卸載工程 卸載工程以釋放內(nèi)存并保持裝載的工程列表的長(zhǎng)度以方便管理。你不能卸載嵌入工程或由其它已裝載工程所引用的工程。卸載VBA工程的操作 1.在VBA管理器中,選擇要卸載的工程。 2.選擇卸載。 或者,使用VBAUNLOAD命令,它將提示你所要卸載的工程。 嵌入工程到圖形中 當(dāng)你嵌入一個(gè)工程時(shí),你是將工程的一個(gè)副本置
7、于圖形數(shù)據(jù)庫(kù)中。無論何時(shí),當(dāng)所包含工程的圖形打開或關(guān)閉時(shí),工程會(huì)同時(shí)被裝載和被卸載。一個(gè)圖形只有在同一時(shí)間包含一個(gè)嵌入工程。如果圖形已經(jīng)包含有一個(gè)嵌入工程,你必須在同樣地入其它工程之前將該嵌入工程分離出。嵌入工程到AutoCAD圖形中的操作 。1.打開VBA管理器并選擇你所要嵌入的工程。 2.選擇嵌入。 從圖形中分離工程 當(dāng)你分離工程時(shí),其實(shí)是將工程從圖形數(shù)據(jù)庫(kù)中刪除,同時(shí)會(huì)提示你將工程保存為外部的工程文件。如果你沒有將其保存為外部工程文件,該工程的數(shù)據(jù)將會(huì)刪除。從AutoCAD圖形中分離工程的操作 1.打開VBA管理器并選擇要從圖形中分離的工程。 2.選擇分離。 3.如果你想保存工程信息為外
8、部工程文件,可以在“你是否想在刪除VBA工程前將其輸出?”的提示下選擇“是”,此時(shí)會(huì)顯示另存為對(duì)話框,允許你保存文件。 如果你不想保存該工程信息到外部文件,可以在“你是否想在刪除VBA工程前將其輸出?”的提示下選擇“否”,此時(shí)工程信息將在沒有保存的情況下從圖形中刪除。 創(chuàng)建新的工程 新的工程將作為未保存的全局工程被創(chuàng)建。當(dāng)工程創(chuàng)建時(shí),你可以將工程嵌入圖形中,或?qū)⑵浔4鏋楣こ涛募?。?chuàng)建新的VBA工程的操作 1.打開VBA管理器。 2.選擇新建。 新創(chuàng)建的工程將使用默認(rèn)的工程名稱ACADproject。你必須到VBA IDE中才可以更改工程名稱。查看更多關(guān)于命名工程的信息,請(qǐng)參考“命名工程”。 保
9、存嵌入工程 嵌入工程是在圖形保存時(shí)同時(shí)保存的。全局工程必須使用VBA管理器或VBA IDE進(jìn)行保存。使用VBA管理器保存工程的操作 1.打開VBA管理器并選擇要保存的工程。 2.選擇另存為,此時(shí)另存為對(duì)話框打開。 3.選擇用于保存工程的文件。 4.選擇保存 第三節(jié):處理宏與設(shè)置VBA工程選項(xiàng)一樣,宏對(duì)話框允許你運(yùn)行、編輯、刪除和創(chuàng)建宏。宏是公用(可執(zhí)行)的子程序。每一工程通常至少一個(gè)宏。打開宏對(duì)話框的操作1.從工具菜單中選擇宏-宏。 2.或在AutoCAD中調(diào)用VBARUN命令。 在對(duì)話框中顯示的是所有在有效范圍內(nèi)的宏名稱。你可通過下拉列表來改變有效范圍。該列表指定所要顯示的宏所在的工程或圖形
10、。你可在以下列表內(nèi)容選擇所要顯示宏范圍所有圖形和工程所有圖形所有工程在當(dāng)前所打開的單獨(dú)圖形在當(dāng)前所裝載的單獨(dú)工程通過限制有效范圍你可控制顯示在列表中的宏名稱的數(shù)量。它可幫助你注意到當(dāng)前有多少宏裝載到圖形中或指定工程中有多少宏。本節(jié)內(nèi)容:運(yùn)行宏編輯宏逐語(yǔ)句運(yùn)行宏創(chuàng)建新的宏刪除宏設(shè)置工程選項(xiàng)運(yùn)行宏運(yùn)行宏就是在當(dāng)前AutoCAD進(jìn)程中執(zhí)行宏代碼。當(dāng)前活動(dòng)圖形指的是當(dāng)宏執(zhí)行開始時(shí)處于打開并處理激活狀態(tài)。所有在全局工程的宏中所涉及的ThisDrawing對(duì)象將指向當(dāng)前活動(dòng)圖形。在嵌入工程中,ThisDrawing對(duì)象通常指向嵌入該宏的圖形。運(yùn)行宏的操作1.打開宏對(duì)話框并選擇要運(yùn)行的宏。 2.選擇運(yùn)行。
11、編輯宏編輯宏將打開VBA IDE并打開所選定宏的代碼窗口。詳細(xì)的介紹請(qǐng)參考“用VBA IDE編輯工程”。編輯宏的操作1.打開宏對(duì)話框并選擇要編輯的宏。 2.選擇編輯。 逐語(yǔ)句運(yùn)行宏逐語(yǔ)句運(yùn)行宏指的是開始運(yùn)行宏并在第一行代碼時(shí)暫停。VBA IDE也隨之打開所選定的宏的代碼窗口并高亮顯示所執(zhí)行宏所在的行。逐語(yǔ)句運(yùn)行宏的操作1.在宏對(duì)話框中,選擇要逐語(yǔ)句運(yùn)行的宏。 2.選擇逐語(yǔ)句。 創(chuàng)建新的宏你可以創(chuàng)建一個(gè)空的新宏。創(chuàng)建新宏的操作1.打開宏對(duì)話框并輸入新宏的名稱。 2.在宏位置下拉列表中選擇所創(chuàng)建宏所要存在的位置。 3.選擇創(chuàng)建。 如果所指定宏的名稱已經(jīng)存在,系統(tǒng)將提示你是否替換現(xiàn)在的宏。如果你在提
12、示下選擇“是”,則現(xiàn)在的宏代碼將被刪除,而一個(gè)新的而沒有內(nèi)容的宏也會(huì)以指定名稱而創(chuàng)建。如果你在提示下選擇“否”,這時(shí)會(huì)返回宏對(duì)話框以輸入另外的宏名稱。如果你在提示下選擇“取消”,宏對(duì)話框?qū)⑾?,宏也沒有創(chuàng)建。刪除宏你可以從工程中刪除宏刪除宏的操作1.打開宏對(duì)話框并選擇要?jiǎng)h除的宏 2.選擇刪除。系統(tǒng)會(huì)提示你是否確認(rèn)刪除。 3.在提示下,選擇“是”而刪除宏,或者選擇“否”以取消刪除的操作。 設(shè)置工程選項(xiàng)在AutoCAD VBA工程中可以設(shè)置三個(gè)選項(xiàng):?jiǎn)⒂米詣?dòng)嵌入出錯(cuò)時(shí)允許中斷啟用宏病毒保護(hù)設(shè)置AutoCAD VBA工程選項(xiàng)的操作1.從工具菜單中選擇宏-宏以打開VBA宏對(duì)話框。 2.從VBA宏對(duì)話框
13、中,選擇選項(xiàng)以打開選項(xiàng)對(duì)話框。 3.從選項(xiàng)對(duì)話框中,選擇你所要設(shè)置的選項(xiàng)。 4.選擇確定。 本節(jié)內(nèi)容:?jiǎn)⒂米詣?dòng)嵌入出錯(cuò)時(shí)允許中斷啟用宏病毒保護(hù)啟用自動(dòng)嵌入自動(dòng)嵌入特性將在打開圖形時(shí)自動(dòng)為所有圖形創(chuàng)建嵌入的VBA工程。出錯(cuò)時(shí)允許中斷在遇到錯(cuò)誤時(shí)允許VBA進(jìn)入中斷模式。中斷模式是在交互開發(fā)環(huán)境中暫時(shí)掛起程序的執(zhí)行。在中斷模式中,你可以檢查、調(diào)試、復(fù)位、跳過或繼續(xù)程序的執(zhí)行。當(dāng)該選項(xiàng)啟用時(shí),在執(zhí)行VBA宏的過程中如發(fā)現(xiàn)的未處理的錯(cuò)誤,將會(huì)掛起執(zhí)行的宏并在VBA IDE中顯示宏的出錯(cuò)點(diǎn)。當(dāng)該選項(xiàng)禁用時(shí),當(dāng)執(zhí)行VBA宏的過程中如發(fā)現(xiàn)出錯(cuò)時(shí),將出現(xiàn)錯(cuò)誤警告提示框,然后結(jié)束宏的執(zhí)行。啟用宏病毒保護(hù)病毒防護(hù)機(jī)
14、制將在你打開可能含有宏病毒的圖形時(shí)顯示內(nèi)建的警告信息。第四節(jié):用VBA IDE編輯工程當(dāng)工程裝載到AutoCAD后,你可以使用VBA交互開發(fā)環(huán)境編輯其代碼、窗體及進(jìn)行引用。你也可以在VBA IDE中調(diào)試和運(yùn)行工程。本節(jié)內(nèi)容:打開VBA IDE查看工程信息定義工程的部件輸入現(xiàn)存的部件編輯部件運(yùn)行宏命名工程保存工程引用其它VBA工程設(shè)置VBA IDE選項(xiàng)打開VBA IDE當(dāng)打開VBA IDE時(shí),它就可以訪問所有已裝載的工程。按需要打開VBA IDE的操作:你可以從命令行或從菜單欄中打開VBA IDE 從命令行,可輸入VBAIDE,或從工具菜單,使用宏-Visual Basic 編輯器。在AutoC
15、AD啟動(dòng)時(shí)自動(dòng)打開VBA IDE的操作:如果你想在每次開始AutoCAD時(shí)自動(dòng)打開VBA IDE,你必須在acad.rx文件中包含以下行:acadvba.arx查看工程信息VBA IDE包含名稱為工程窗口的窗口,其中顯示了所有已裝載VBA工程的列表。它也顯示包含在工程中的代碼、類和窗體模塊,還有關(guān)聯(lián)到該工程的文檔,在該工程所引用的VBA工程,以及工程的物理位置(也稱路徑)。工程窗口有它自己的工具欄,使用其工具欄可打開不同的工程部件進(jìn)行編輯。使用查看代碼按鈕可打開選定模塊的代碼。使用查看對(duì)象按鈕可顯示如窗體之類的選定對(duì)象。VBA IDE工程窗口工程窗口默認(rèn)為可見。如果不可見,可從查看菜單中選擇工
16、程窗口,或按CTRL+R。定義工程的部件每個(gè)工程可包含多個(gè)不同的部件。在工程中包含的不同部件可以是對(duì)象、窗體、標(biāo)準(zhǔn)模塊、類模塊和引用。對(duì)象對(duì)象部件聲稱了VBA代碼可訪問的對(duì)象或文檔的類型。在AutoCAD VBA工程,該對(duì)象聲稱為當(dāng)前AutoCAD圖形。窗體:窗體部件包含了當(dāng)前你在工程中為了使用而建立的自定義對(duì)話框。標(biāo)準(zhǔn)模塊:該代碼部件包含了普通程序和函數(shù)。標(biāo)準(zhǔn)模塊也歸類為代碼模塊或簡(jiǎn)單的模塊。類模塊:類模塊部件包含你所有定義為類的自己的對(duì)象。引用:引用部件包含所有引用其它的工程和庫(kù)。增加新部件增加新的部件是在工程中創(chuàng)建一空白的部件。你可在工程中增加新的模塊、窗體和類模塊。你有責(zé)任更新所有部件
17、的屬性(如部件的名稱)并在其中寫入適當(dāng)?shù)拇a。當(dāng)命名一個(gè)新的部件,請(qǐng)記住可能其它開發(fā)都會(huì)在以后的應(yīng)用程序中用到你的部件。在你的開發(fā)項(xiàng)目中應(yīng)該跟隨適當(dāng)?shù)拿Q約定。增加新的部件到工程的操作1. 在VBA IDE的工程窗口中,選擇你要增加部件的工程。 2. 從插入菜單中,選擇用戶窗體、模塊或類模塊以增加新的部件到你的工程中。 新的模塊將被增加到你的工程中并出現(xiàn)在工程窗口中。輸入現(xiàn)存的部件輸入功能允許你增加現(xiàn)存的部件到工程中。你可以輸入窗體、模塊或類模塊。輸入的窗體文件為FRM文件,輸入的模塊文件為BAS文件,輸入的類模塊文件為CLS文件。當(dāng)你輸入一個(gè)部件文件,文件 的一個(gè)副本將輸入并增加到工程中。而
18、原來的文件也會(huì)保持不變。在輸入部件中所做的 不會(huì)影響到原來的部件文件。如果你用現(xiàn)存的同樣的名稱輸入部件,該文件將添加到工程中相應(yīng)的部件上。從工程中輸入現(xiàn)存的部件的操作1. 在VBA IDE的工程窗口中,選擇你要增加部件的工程。 2. 從文件菜單中,選擇輸入文件以打開輸入文件對(duì)話框。 3. 從輸入文件對(duì)話框中,選擇所要輸入的文件,然后按打開。 該輸入部件將增加到你的工程中并在工程窗口中出現(xiàn)。編輯部件的屬性,可選擇工程窗口的該部件。所選部件的屬性將在屬性窗口中列出并可編輯。編輯部件在工程中編輯工程的操作1. 在VBA IDE的工程窗口中,選擇你要編輯的部件。 2. 選擇工程窗口中的查看代碼按鈕以打
19、開代碼窗口。 3. 選擇工程窗口中的查看對(duì)象按鈕以打開用戶窗體窗口和關(guān)聯(lián)的工具箱。 你可同時(shí)打開你所有模塊中的代碼窗口,所以你可很容易地 不同窗體或模塊中的代碼,并在它們之間進(jìn)行復(fù)制和粘貼。訪問關(guān)聯(lián)在窗體中的代碼的操作在窗體窗口中雙擊任何控件。關(guān)聯(lián)在該控件中的代碼將會(huì)在代碼窗口中打開。使用代碼窗口代碼窗口包含兩個(gè)下拉列表、一個(gè)分隔條、一個(gè)邊界標(biāo)識(shí)條欄和全模塊視圖和過程模塊視圖的圖標(biāo)。在代碼窗口的頂部有兩個(gè)下拉列表,它們顯示當(dāng)前對(duì)象和過程。你可通過更改在此下拉列有中的對(duì)象或過程來在工程中移動(dòng)。在代碼窗口的右側(cè)在一分隔條,它允許你在垂直方向分隔窗口。單獨(dú)拖動(dòng)該分隔條呆創(chuàng)建另外的窗口窗格。該特性允許
20、你同時(shí)查看相同模塊中的兩部分代碼。關(guān)閉窗格時(shí),可將分隔條拖回其原先的位置。邊界標(biāo)識(shí)條欄是在代碼窗口的左側(cè)。它用于顯示在代碼編輯和調(diào)試期間的邊界標(biāo)識(shí)條。全模塊視圖和過程模塊視圖圖標(biāo)位于代碼窗口的左下角,它可在單過程模塊視圖和全模塊視圖之間切換。使用用戶窗體窗口用戶窗體窗口允許你在工程中創(chuàng)建自定義對(duì)話框。增加控件可簡(jiǎn)單地從工具箱中拖動(dòng)想要控件并擺放在窗體中。你可從選項(xiàng)對(duì)話框中的常規(guī)選項(xiàng)卡中設(shè)置控件的對(duì)齊柵格。你可查看窗體柵格并可從選項(xiàng)對(duì)話框的常規(guī)選項(xiàng)卡中設(shè)定柵格線的大小。(參考“設(shè)置VBA IDE選項(xiàng)”以得到更多的信息。)你設(shè)計(jì)的每一窗體都有最大化、最小化和關(guān)閉按鈕。這些按鈕已經(jīng)為你準(zhǔn)備好。將代碼
21、增加到控件中,可簡(jiǎn)單地雙擊擺放在窗體中的控件。此時(shí)將打開相應(yīng)控件的代碼窗口。運(yùn)行宏和在宏對(duì)話框中運(yùn)行宏一樣,你也可以在VBA IDE中運(yùn)行宏。從VBA IDE中運(yùn)行宏的操作從菜單中,使用運(yùn)行宏菜單選項(xiàng)。如果當(dāng)前沒有宏或窗體,將顯示一對(duì)話框允許你選擇所要運(yùn)行的宏。如果當(dāng)前已經(jīng)提供了宏(即光標(biāo)已經(jīng)在一過程中),此時(shí)將直接執(zhí)行宏。命名工程工程名稱和保存工程的.dvb文件名稱是兩個(gè)不同的值。當(dāng)你保存工程時(shí)你所設(shè)定的為保存工程的.dvb文件名稱。而工程名稱是在VBA IDE的屬性窗口中設(shè)置的。如果你沒有設(shè)定工程名稱和文件名稱,AutoCAD將自動(dòng)地以以下默認(rèn)的名稱進(jìn)行分配:工程名稱:ACADProjec
22、t文件名稱:Project.dvb更改工程名稱的操作1. 在VBA IDE的工程窗口中,選擇要更改的工程。 2. 在屬性窗口中,編輯工程的名稱屬性。 更改工程的文件名稱操作1. 在VBA IDE中,從文件菜單中選擇保存項(xiàng)。 2. 在另存為對(duì)話框中,輸入工程文件新的名稱和路徑。 保存工程在AutoCAD的VBA工程中,沒有直接的保存命令。取而代之,保存命令被置于VBA IDE的文件菜單中和VBA管理器中。當(dāng)發(fā)生以下事件時(shí),VBA工程中所進(jìn)行的更改將訪問一標(biāo)準(zhǔn)的保存VBA工程對(duì)話框:你在VBA IDE中拾取了保存命令你在VBA管理器中選擇了另存為項(xiàng)在VBA工程沒有保存的情況下結(jié)束或退出AutoCA
23、D進(jìn)程注意:當(dāng)你保存工程時(shí),它將分配一默認(rèn)的文件名稱project.dvb。尤其重要的是在你保存工程時(shí)你應(yīng)該為工程文件分配一新的名稱。如果你使用默認(rèn)的文件名稱project.dvb保存工程,你將不能再創(chuàng)建新的空工程了。每一次你創(chuàng)建新的工程,你將得到的是裝入已經(jīng)存為project.dvb文件名稱的工程。引用其它VBA工程從其它工程中引用VBA工程可開發(fā)者容易分享代碼。開發(fā)者可使用宏來創(chuàng)建公用的庫(kù),然后在需要時(shí)引用庫(kù)中的內(nèi)容。這樣可將共享代碼公開并讓眾多的開發(fā)利用該代碼。引用其它VBA工程的操作1. 在VBA IDE的工程窗口中,選擇你要增加引用的工程。 2. 從工具菜單中,選擇引用項(xiàng)以打開引用對(duì)
24、話框。 3. 從引用對(duì)話框中,按瀏覽按鈕打開添加引用對(duì)話框。 4. 從添加引用對(duì)話框中,選擇你要引用的工程文件,然后按打開按鈕。 5. 從添加引用對(duì)話框中,選擇確定按鈕完成引用的添加。 當(dāng)另外的工程被成功以引用,你將會(huì)注意到在VBA IDE的工程窗口中有一新的文件夾。該新的文件夾是引用的標(biāo)題,它包含著引用工程的名稱。當(dāng)你引用了一個(gè)工程,你可使用工程中公用的代碼或部件。當(dāng)引用了其它工程的工程被裝載到AutoCAD中,被引用的工程也自動(dòng)地裝載到AutoCAD中。該被引用工程在引用它的工程沒有關(guān)閉之前是不能關(guān)閉的。你不能進(jìn)行循環(huán)引用。也就是說,你不能引用包含第一個(gè)工程的工程。如果你不小心創(chuàng)建了一個(gè)循
25、環(huán)引用,你將會(huì)得到VBA的一個(gè)警告提示。注意:你不能引用嵌入工程或從其它應(yīng)用程序中的VBA工程。設(shè)置VBA IDE選項(xiàng)你可使用選項(xiàng)對(duì)話框更改VBA IDE的特征。可使用工具菜單并選擇選項(xiàng)來打開選項(xiàng)對(duì)話框。選項(xiàng)對(duì)話框包含四個(gè)選項(xiàng)卡:編輯器、編輯器格式、通用和可連接。編輯器編輯器選項(xiàng)卡指定代碼窗口和工程窗口的設(shè)置。代碼設(shè)置包括自動(dòng)語(yǔ)法檢測(cè)要求變量聲明自動(dòng)列出成員自動(dòng)顯示快速信息自動(dòng)顯示數(shù)據(jù)提示自動(dòng)縮進(jìn)Tab寬度窗口設(shè)置包括編輯時(shí)可拖放文本缺省為查看所有模塊過程分隔符顯示編輯器格式編輯器格式選項(xiàng)卡指定Visual Basic代碼的外觀。你可以更改代碼的顏色更改文本列出項(xiàng)更改前景更改背景更改邊界標(biāo)識(shí)條
26、更改文本字體和大小顯示或隱藏邊界標(biāo)識(shí)條顯示或隱藏你設(shè)置的示例文本通用通用選項(xiàng)卡指定當(dāng)前Visual Basic工程的設(shè)置、出錯(cuò)處理和編譯設(shè)置。你可以更改窗體柵格的柵格設(shè)置顯示或隱藏工具提示設(shè)定工程折疊收起時(shí)自動(dòng)隱藏窗口在丟失當(dāng)前狀態(tài)前通知決定出錯(cuò)時(shí)的處理方法設(shè)定工程編譯時(shí)為需要時(shí)編譯或進(jìn)行后臺(tái)編譯??蛇B接的可連接的選項(xiàng)卡允許你選擇要進(jìn)行泊留在主窗口上的窗口(也就是非浮動(dòng)狀態(tài))。進(jìn)行介紹性練習(xí)現(xiàn)在你可能已經(jīng)學(xué)習(xí)了在AutoCAD VBA中進(jìn)行編程的基礎(chǔ)知識(shí),那就試試創(chuàng)建一個(gè)簡(jiǎn)單的“Hello World”的練習(xí)示例。在本練習(xí)中你將創(chuàng)建一個(gè)新的AutoCAD圖形,在圖形中增加一行文本,然后保存圖形
27、,所有的這些操作都在VBA中完成。創(chuàng)建“Hello World”文本對(duì)象1 打開從AutoCAD的命令行中輸入以下命令打開VBA IDE:命令:VBAIDE2 在VBA IDE的視圖菜單中選擇代碼項(xiàng)打開代碼窗口。3 通過從VBA IDE的插入菜單中選擇過程項(xiàng)在工程中創(chuàng)建一個(gè)新的過程。4 當(dāng)提示需要過程信息時(shí),輸入如Hello World這樣的名稱。確定類型選定的是Sub,而范圍選定的是Public。5 選擇確定。6 在行Public Sub Hello World()和行End Sub之間輸入以下代碼(功能是打開新的圖形):ThisDrawing.Application.Documents.A
28、dd7 緊接著第6步輸入以下代碼(它創(chuàng)建文本字符并定義它的插入位置)。Dim insPoint(0 To 2) As Double 定義插入點(diǎn)Dim textHeight As Double 定義文本高度Dim textStr As String 定義文本字符Dim textObj As AcadText 定義文本對(duì)象insPoint(0) = 2 設(shè)定插入點(diǎn)X坐標(biāo)insPoint(1) = 4 設(shè)定插入點(diǎn)Y坐標(biāo)insPoint(2) = 0 設(shè)定插入點(diǎn)Z坐標(biāo)textHeight = 1 設(shè)定文本高度為1.0textStr = Hello World! 設(shè)定文本字符創(chuàng)建文本對(duì)象Set text
29、Obj = ThisDrawing.ModelSpace.AddText _(textStr, insPoint, textHeight)8 緊接著第7步輸入以下代碼(保存圖形)ThisDrawing.SaveAs(Hello.dwg)9 通過從VBA IDE的運(yùn)行菜單中選擇運(yùn)行過程/用戶窗體項(xiàng)運(yùn)行你的程序。當(dāng)程序運(yùn)行完成后,回到AutoCAD應(yīng)用程序中,你可看到在圖形中出現(xiàn)有“Hello World!”的文本。該圖形名稱為Hello.dwg。第五節(jié):更多的信息關(guān)于VBA IDE及Visual Basic編程語(yǔ)言的更多信息可在微軟提供的幫助文件中找到。訪問微軟VBA IDE幫助文件的操作從VB
30、A IDE的幫助菜單中,選擇Microsoft Visual Basic幫助。第六節(jié):回顧AutoCAD VBA 工程術(shù)語(yǔ)常規(guī)工程保存在.dvb文件的VBA工程。嵌入工程保存在AutoCAD圖形中的VBA工程。正常文檔沒有包含VBA嵌入工程的AutoCAD圖形。活躍文檔包含VBA嵌入工程的AutoCAD圖形。當(dāng)前工程在VBA IDE中當(dāng)前選定的工程。ThisDrawingThisDrawing是用于聲稱當(dāng)前圖形的VBA編程項(xiàng)目。在常規(guī)工程中,ThisDrawing通常指向AutoCAD的活動(dòng)文檔。在嵌入的工程中,ThisDrawing通過指向包含該工程的文檔。VBA IDE指的是VBA交互開發(fā)
31、環(huán)境。該應(yīng)用程序允許你編輯工程中的代碼和窗體,或從其它工程中復(fù)制代碼和窗體。它也允許你設(shè)定引用其它應(yīng)用程序的對(duì)象模塊。VBA 管理器VBA管理器允許你管理工程。你可以創(chuàng)建、刪除、嵌入或分離工程。你也可以查看工程是否嵌入于打開的圖形中。宏對(duì)話框宏對(duì)話框允許你運(yùn)行、刪除和創(chuàng)建新的宏,也提供訪問VBA工程選項(xiàng)。第七節(jié):回顧AutoCAD VBA 命令VBAIDE打開VBA IDE。該VBA IDE允許你交互式地編輯、運(yùn)行及調(diào)試程序。盡管VBA IDE只能在AutoCAD運(yùn)行時(shí)才能調(diào)用,但它可獨(dú)立于AutoCAD應(yīng)用程序窗口進(jìn)行最小化、打開和關(guān)閉。VBALOAD在當(dāng)前AutoCAD進(jìn)程中裝載VBA工程
32、。VBARUN從宏對(duì)話框中或從AutoCAD命令行中運(yùn)行VBA宏。VBAUNLOAD從當(dāng)前AutoCAD進(jìn)程中卸載VBA工程。如果VBA工程已被修改但還沒有保存,系統(tǒng)會(huì)彈出保存工程對(duì)話框(或在命令行)提示是否保存。VBAMAN顯示VBA管理器,允許你查看、創(chuàng)建、裝載、關(guān)閉、嵌入和分離工程。VBASTMT從AutoCAD命令行中執(zhí)行VBA語(yǔ)句。第二章:理解ActiveX自動(dòng)操作基礎(chǔ)如果想有效地使用AutoCAD ActiveX自動(dòng)操作,你必須熟悉AutoCAD圖元、對(duì)象和與你用于開發(fā)的應(yīng)用程序類型相關(guān)聯(lián)的特性。對(duì)于對(duì)象的圖形和非圖形屬性認(rèn)識(shí)越深,通過AutoCAD ActiveX自動(dòng)操作對(duì)其進(jìn)行
33、操作就越容易。記住你隨時(shí)都可以調(diào)出AutoCAD ActiveX自動(dòng)操作的幫助文件-只要按一下F1鍵就行。如果你對(duì)對(duì)象、方法或?qū)傩缘募?xì)節(jié)有何不清楚之處,可在VBA IDE中選中相應(yīng)對(duì)象、方法或?qū)傩圆碏1鍵。本章具體內(nèi)容如下:理解AutoCAD對(duì)象模型,訪問對(duì)象層次,通過集合對(duì)象操作,理解屬性和方法,理解父對(duì)象,定位類型庫(kù),在數(shù)據(jù)庫(kù)中返回第一個(gè)圖元,在方法和屬性中使用變體,使用其它程序語(yǔ)言第一節(jié):理解AutoCAD對(duì)象模型一個(gè)對(duì)象就是AutoCAD ActiveX界面的一個(gè)主要組成塊。每一暴露的對(duì)象描繪了AutoCAD的精確部分。在AutoCAD ActiveX界面中有許多不同類型的對(duì)象。例如
34、圖形對(duì)象,如線、弧、文本和標(biāo)注都是對(duì)象樣式設(shè)置,如線型和標(biāo)注樣式均為對(duì)象組織結(jié)構(gòu),如圖層、組合和圖塊也是對(duì)象圖形顯示,如視圖和視口都是對(duì)象甚至圖形和AutoCAD應(yīng)用程序本身也是對(duì)象對(duì)象是通過分層方式來組織的,應(yīng)用程序?qū)ο鬄楦鶎?duì)象。這種分層結(jié)構(gòu)的視圖被歸結(jié)為對(duì)象模型。對(duì)象模型提供了你訪問下一層對(duì)象的途徑。本節(jié)內(nèi)容:簡(jiǎn)要介紹Application(應(yīng)用程序)對(duì)象簡(jiǎn)要介紹Document(文檔)對(duì)象簡(jiǎn)要介紹Collection(集合)對(duì)象簡(jiǎn)要介紹圖形和非圖形對(duì)象簡(jiǎn)要介紹Preferences(參數(shù)選擇)、Plot(打印出圖)和Utility(實(shí)用工具)對(duì)象簡(jiǎn)要介紹Application(應(yīng)用程序)
35、對(duì)象應(yīng)用程序?qū)ο笫茿utoCAD ActiveX自動(dòng)操作對(duì)象模型的根對(duì)象。通過應(yīng)用程序?qū)ο?,你可訪問其它的對(duì)象,或指派對(duì)象的屬性和方法。例如,應(yīng)用程序?qū)ο缶哂蠵references(參數(shù)選擇)屬性,它返回Preferences(參數(shù)選擇)對(duì)象。該對(duì)象提供訪問在選項(xiàng)對(duì)話框中設(shè)定的注冊(cè)信息。(圖形信息設(shè)定包含在DatabasePreferences對(duì)象,它在后面會(huì)介紹到。) 應(yīng)用程序?qū)ο蟮钠渌鼘傩蕴峁┠阍L問應(yīng)用程序指定數(shù)據(jù),如應(yīng)用程序的名稱和版本、還有AutoCAD的窗口大小、位置和可見性等。應(yīng)用程序?qū)ο蟮姆椒▓?zhí)行應(yīng)用程序指定的動(dòng)作,如列出、裝載、卸載ADS和ARX應(yīng)用程序,還有退出AutoCAD
36、。 應(yīng)用程序?qū)ο笠蔡峁┩ㄟ^Documents(文檔)集合鏈接到AutoCAD圖形、通過MenuBar和MenuGroups集合鏈接到AutoCAD菜單和工具欄,還有通過稱為VBE屬性鏈接到VBA IDE。應(yīng)用程序?qū)ο笠彩茿ctiveX界面的全局對(duì)象。也就是說應(yīng)用程序?qū)ο蟮乃蟹椒ê蛯傩栽谌置Q空間都是有效的。簡(jiǎn)要介紹Document(文檔)對(duì)象 文檔對(duì)象,實(shí)際上就是AutoCAD圖形,它可在Documents(文檔)集合中找到,它提供訪問所有圖形還有大部分非圖形的AutoCAD對(duì)象。通過提供的ModelSpace(模型空間)和PaperSpace(圖紙空間)訪問圖形對(duì)象(線、圓、弧等),通過
37、提供的如Layers(圖層)、Linetypes(線型)和TextStyles(字型)這樣名稱的集合訪問非圖形對(duì)象(圖層、線型、字型等)。Document(文檔)對(duì)象也提供訪問Plot(打印出圖)和Utility(實(shí)用工具)對(duì)象。簡(jiǎn)要介紹Collection(集合)對(duì)象 AutoCAD組合大部分的對(duì)象在集合中。盡管這些集合包含不同類型的數(shù)據(jù),但它們是通過相似的技術(shù)進(jìn)行處理。每一集合都有添加對(duì)象到集合中的方法。大多數(shù)集合使用Add(添加)方法以達(dá)到目的。不同的是,圖元對(duì)象通常使用標(biāo)頭為Add這樣的方法來進(jìn)行添加。例如,添加一條直線你必須使用AddLine方法。 集合也擁有共用的一些其它方法和屬性
38、。Count(記數(shù))屬性可用于獲取集合中對(duì)象的數(shù)目。Item(項(xiàng)目)方法可用于獲取集合中的對(duì)象。簡(jiǎn)要介紹圖形和非圖形對(duì)象 圖形對(duì)象,也稱為圖元,它是構(gòu)成圖形的可見對(duì)象(如直線、圓、光柵圖像等)。創(chuàng)建這些對(duì)象,可用近似于Add方法。修改或查詢這些對(duì)象,可使用對(duì)象自身的方法和屬性。每一圖形對(duì)象都有方法允許應(yīng)用程序執(zhí)行大部分的AutoCAD編輯命令,如復(fù)制、刪除、移動(dòng)、鏡像還有其它。這些對(duì)象也有相應(yīng)方法可以設(shè)定及返回?cái)U(kuò)展數(shù)據(jù)(xdata)、高亮和更新、返回對(duì)象的邊框范圍等。圖形對(duì)象具有如圖層、線型、顏色和句柄這樣典型的屬性。它們也有其特殊的依賴于這些對(duì)象類型的屬性,如圓心、半徑和面積等。 非圖形對(duì)象
39、為不可見(指示性)對(duì)象,它們是圖形的一部分,就如Layers(圖層)、Linetypes(線型)、DimStypes(標(biāo)注樣式)、SelectionSets(選擇集)等。創(chuàng)建這些對(duì)象,可在父集合對(duì)象中使用Add(添加)方法。而修改或查詢這些對(duì)象,可使用對(duì)象自身的方法和屬性。每一非圖形對(duì)象均有其特殊的方法及屬性以達(dá)到其目的;所有對(duì)象都有方法可以設(shè)定及返回?cái)U(kuò)展數(shù)據(jù)。簡(jiǎn)要介紹Preferences(參數(shù)選擇)、Plot(打印出圖)和Utility(實(shí)用工具)對(duì)象 在參數(shù)選擇(Preferences)對(duì)象下邊為對(duì)象集,每一對(duì)象集都與選項(xiàng)對(duì)話框的一個(gè)選項(xiàng)卡相關(guān)。它們共同提供訪問在選項(xiàng)對(duì)話框中所有的注冊(cè)設(shè)
40、置。圖形設(shè)置包含在數(shù)據(jù)庫(kù)參數(shù)選擇(DatabasePreferences)對(duì)象中。你也可通過SetVariable和GetVariable方法來設(shè)定和修改選項(xiàng)(系統(tǒng)變量不是選項(xiàng)對(duì)話框的一部分)。設(shè)置選項(xiàng)的詳細(xì)內(nèi)容請(qǐng)參考“設(shè)定AutoCAD參數(shù)”。 打印出圖(Plot)對(duì)象提供訪問在打印對(duì)話框的設(shè)定,并且讓其它程序可以使用不同的方法打印圖形。圖形打印的相關(guān)內(nèi)容請(qǐng)參考“打印圖形”。 實(shí)用工具(Utility)對(duì)象提供用戶輸入和轉(zhuǎn)換功能。用戶輸入功能是在AutoCAD命令行中提示用戶輸入不同類型數(shù)據(jù)的方法,如輸入字符串、整數(shù)、實(shí)數(shù)、點(diǎn)等。轉(zhuǎn)換功能是操作AutoCAD特有數(shù)據(jù)類型的方法,如點(diǎn)和角度,另
41、外還有字符串和數(shù)字的處理。用戶輸入功能的相關(guān)內(nèi)容請(qǐng)參考“提示用戶輸入”。第二節(jié):訪問對(duì)象層次在VBA內(nèi)部訪問對(duì)象層次是非常容易的。這是因?yàn)閂BA是運(yùn)行在AutoCAD進(jìn)程的內(nèi)部,所以不必通過附加的步驟與應(yīng)用程序進(jìn)行連接。VBA通過ThisDrawing對(duì)象鏈接到當(dāng)前AutoCAD進(jìn)程的活動(dòng)圖形。通過使用ThisDrawing直接獲得訪問當(dāng)前文檔對(duì)象和所有相關(guān)的方法和屬性以及所有在該層次中的其它對(duì)象。當(dāng)使用全局工程,ThisDrawing通常指向AutoCAD中的活動(dòng)文檔。當(dāng)用的是嵌入工程,ThisDrawing通常指向包含該工程的文檔。例如,以下在全局工程中的代碼行將保存當(dāng)前AutoCAD中活
42、動(dòng)的圖形:thisDrawing.Save在對(duì)象層次中引用對(duì)象你可直接可通過用戶定義變量引用對(duì)象。直接引用對(duì)象,應(yīng)包括對(duì)象的層次。例如,以下語(yǔ)句增加一條直線到模型空間。注意到層次狀態(tài)為ThisDrawing,然后是ModelSpace(模型空間)對(duì)象,最后才是AddLine方法:Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As DoubleDim LineObj as AcadLinestartPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0endPoint(0) = 30: endP
43、oint(1) = 20: endPoint(2) = 0Set LineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)通過用戶定義變量引用對(duì)象,首先定義變量的類型,然后設(shè)定變量為適當(dāng)?shù)膶?duì)象。例如,以下代碼定義了一個(gè)類型為AcadModelSpace的變量(moSpace)并設(shè)定變量等于當(dāng)前模型空間:Dim moSpace As AcadModelSpaceSet moSpace = ThisDrawing.ModelSpace以下語(yǔ)句使用用戶定義變量增加一條直線到模型空間:Dim startPoint(0 To 2) As
44、Double, endPoint(0 To 2) As DoubleDim LineObj as AcadLinestartPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0Set LineObj = moSpace.AddLine(startPoint,endPoint)訪問應(yīng)用程序?qū)ο笠驗(yàn)門hisDrawing對(duì)象提供與文檔對(duì)象的鏈接,你可能會(huì)覺得奇怪,在文檔對(duì)象之上對(duì)象層次的根對(duì)象(應(yīng)用程序?qū)ο?是怎樣訪問的。其實(shí)文檔對(duì)象中有一稱為應(yīng)用程
45、序的屬性可提供與應(yīng)用程序?qū)ο蟮逆溄印@?,以下代碼行更新應(yīng)用程序:ThisDrawing.Application.Update第三節(jié):通過集合對(duì)象操作集合對(duì)象是預(yù)先定義的對(duì)象,它包含所有相似對(duì)象的實(shí)例(即這些對(duì)象的父對(duì)象)。集合對(duì)象有以下的對(duì)象:文檔(Documents)集合包含所有在當(dāng)前AutoCAD進(jìn)程打開的文檔。模型空間(ModelSpace)集合包含在模型空間中的所有圖形對(duì)象(圖元)。圖紙空間(PaperSpace)集合包含在活動(dòng)圖紙空間布局中的所有圖形對(duì)象(圖元)。圖塊(Block)對(duì)象包含在指定圖塊定義中的所有圖元。圖塊(Blocks)集合包含在圖形中的所有圖塊。字典(Dictio
46、naries)集合包含在圖形中的所有字典。標(biāo)注樣式(DimStyles)集合包含在圖形中的所有標(biāo)注樣式。組合(Groups)集合包含在圖形中的所有組合。超級(jí)鏈接(Hyperlinks)集合包含提供圖元的所有超級(jí)鏈接。圖層(Layers)集合包含在圖形中的所有圖層。布局(Layouts)集合包含在圖形中的所有布局。線型(Linetypes)集合包含在圖形中的所有線型。菜單條(MenuBar)集合包含當(dāng)前顯示于AutoCAD的所有菜單。菜單組(MenuGroups)集合包含當(dāng)前裝載到AutoCAD中的所有菜單和工具欄。注冊(cè)應(yīng)用程序(RegisteredApplications)集合包含在圖形中的所
47、有注冊(cè)的應(yīng)用程序。選擇集(SelectionSets)集合包含在圖形中所有的選擇集。字型(TextStyles)集合包含在圖形中所有的文字樣式。UCSs 集合包含在圖形中所有的用戶坐標(biāo)系統(tǒng)(UCS)。視圖(Views)集合包含在圖形中所有的視圖。視口(Viewports)集合包含在圖形中所有的視口。本節(jié)內(nèi)容:訪問集合添加新成員到集合對(duì)象在集合對(duì)象中循環(huán)刪除集合對(duì)象中的成員訪問集合大多數(shù)集合對(duì)象是通過文檔對(duì)象來訪問的。文檔對(duì)象包含每個(gè)集合對(duì)象的屬性。例如,以下代碼定義一個(gè)變量并將其設(shè)定到當(dāng)前圖形的圖層集合中:Dim layerCollection as AcadLayersSet layerCo
48、llection = ThisDrawing.Layers文檔集合、菜單條集合和菜單組集合是通過應(yīng)用程序?qū)ο筮M(jìn)行訪問。應(yīng)用程序?qū)ο鬄檫@些集合的每一個(gè)集合包含一個(gè)屬性。例如,以下代碼定義了一個(gè)變量并且設(shè)定該變量為應(yīng)用程序中的菜單組集合:Dim MenuGroupsCollection as AcadMenuGroupsSet MenuGroupsCollection = ThisDrawing.Application.MenuGroups添加新成員到集合對(duì)象添加新成員到集合中使用的是Add方法。例如,以下代碼創(chuàng)建一個(gè)新的圖層并且將其添加到圖層集合中:Dim newLayer as AcadLay
49、erSet newLayer = ThisDrawing.Layers.Add(MyNewLayer)在集合對(duì)象中循環(huán)選擇集合對(duì)象中的一個(gè)指定成員,使用的是Item(項(xiàng)目)方法。Item方法需要一個(gè)標(biāo)識(shí)符。該標(biāo)識(shí)符可以是指定集合內(nèi)部項(xiàng)目位置的索引號(hào)或者描述項(xiàng)目名稱的字符串。以下例子在集合中循環(huán)并顯示集合中所有圖層的名稱:在圖層集合中循環(huán)Sub Ch2_IterateLayer() 在圖層集合中循環(huán)On Error Resume NextDim I As IntegerDim msg As Stringmsg = For I = 0 To ThisDrawing.Layers.count - 1
50、msg = msg + ThisDrawing.Layers.Item(I).Name + vbCrLfNextMsgBox msgEnd Sub以下例子使用Item方法查找名稱為“ABC”的圖層:查找名稱為“ABC”的圖層Sub Ch2_FindLayerABC() 使用Item方法查找名稱為“ABC”的圖層On Error Resume NextDim ABCLayer As AcadLayerSet ABCLayer = ThisDrawing.Layers.Item(ABC)If Err 0 ThenMsgBox 圖層“ABC”并不存在。End IfEnd Sub注意:當(dāng)使用For E
51、ach機(jī)制同時(shí)在集合循環(huán)時(shí),不要在對(duì)象上使用圖元編輯方法(復(fù)制、陣列、鏡像等),你只能在完成循環(huán)之后才可試著去編輯對(duì)象,或者先創(chuàng)建一個(gè)臨時(shí)的數(shù)組并且設(shè)定其與集合相等,然后才可以在該復(fù)制的陣列中循環(huán)并執(zhí)行你的操作。刪除集合對(duì)象中的成員刪除指定的成員,可使用所找到成員對(duì)象的Delete(刪除)方法。例如,以下代碼刪除圖層ABC:Dim ABCLayer as AcadLayerSet ABCLayer = ThisDrawing.Layers.Item(ABC)ABCLayer.Delete當(dāng)對(duì)象被刪除后,你再也不能試圖用程序去訪問該對(duì)象了。第四節(jié):理解屬性和方法每一對(duì)象都關(guān)聯(lián)著屬性和方法。屬性描
52、述著單個(gè)對(duì)象的外觀,而方法是一種可在單個(gè)對(duì)象上執(zhí)行的行為。當(dāng)對(duì)象創(chuàng)建后,你就可通過屬性和方法查詢和編輯對(duì)象。例如,一個(gè)圓對(duì)象有圓心屬性。該屬性以三維世界坐標(biāo)系統(tǒng)的坐標(biāo)描述了圓的圓心。更改圓的圓心,你只要簡(jiǎn)單地將該屬性設(shè)定為新的坐標(biāo)。圓對(duì)象也有稱為偏移(Offset)的方法。該方法可在相對(duì)于現(xiàn)存圓的指定偏移距離創(chuàng)建一個(gè)新的對(duì)象。關(guān)于圓對(duì)象所有屬性和方法的列表,請(qǐng)參考AutoCAD ActiveX和VBA參考中的圓對(duì)象。第五節(jié):理解父對(duì)象每一個(gè)對(duì)象都有其永遠(yuǎn)不變的父對(duì)象。所有對(duì)象都源于稱為根對(duì)象的單個(gè)父對(duì)象。你可以通過從根對(duì)象鏈接到子對(duì)象的方法訪問所有在界面中的對(duì)象。還有,所有對(duì)象都有稱為應(yīng)用程序
53、的屬性以直接鏈接回根對(duì)象。AutoCAD界面的根對(duì)象為AutoCAD應(yīng)用程序。第六節(jié):定位類型庫(kù)通過自動(dòng)操作對(duì)象暴露的對(duì)象、屬性和方法都包含在類型庫(kù)中。類型庫(kù)是一個(gè)文件或一個(gè)文件的一部分,它描述一個(gè)或多個(gè)對(duì)象的類型。類型庫(kù)并不保存對(duì)象;它們只保存信息。通過訪問類型庫(kù),應(yīng)用程序和瀏覽器可確定對(duì)象的特征,如對(duì)象支持的界面和每一界面成員的名稱和地址。在使用通過應(yīng)用程序暴露出來的自動(dòng)操作對(duì)象,你必須引用其類型庫(kù)。該引用已由AutoCAD VBA自動(dòng)設(shè)定好。而在其它的交互開發(fā)環(huán)境中你必須創(chuàng)建這個(gè)引用。你可以在沒有引用應(yīng)用程序類型庫(kù)的情況下使用應(yīng)用程序?qū)ο?。然而,由于以下理由,可考慮增加類型庫(kù)引用:全局可
54、訪問函數(shù)可無條件直接訪問。調(diào)用函數(shù)、屬性和方法可在編譯時(shí)檢查其正確性,這樣可以在運(yùn)行時(shí)有更快的速度。有可能的話可聲明定義在庫(kù)中的變量類型,這樣可增加運(yùn)行時(shí)的可靠性和可讀性。第七節(jié):在數(shù)據(jù)庫(kù)中返回第一個(gè)圖元以下例子返回模型空間中的第一個(gè)圖元對(duì)象。對(duì)于圖紙空間中的圖元,代碼略有不同:返回模型空間中的第一個(gè)圖元Sub Ch2_FindFirstEntity() 這個(gè)例子返回模型空間中的第一個(gè)圖元On Error Resume NextDim entity As AcadEntityIf ThisDrawing.ModelSpace.count 0 ThenSet entity = ThisDrawing.ModelSpace.Item(0)MsgBox entity.ObjectName + _ 是在模型空間中的第一個(gè)圖元。ElseMsgBox 在模型空間中沒有對(duì)象存在。End IfEnd Sub第八節(jié):在方法和屬性中使用變體AutoCAD ActiveX自動(dòng)操作是使用變體傳遞數(shù)組數(shù)據(jù)。盡管這對(duì)于初學(xué)者來說有點(diǎn)弄不懂,但只要你有點(diǎn)基礎(chǔ)知識(shí)就不會(huì)覺得困難。另外,AutoCAD ActiveX自動(dòng)操作提供了幫助你轉(zhuǎn)換數(shù)據(jù)類型的工具。本節(jié)內(nèi)容:什么是變體?在數(shù)組數(shù)據(jù)中使用變體轉(zhuǎn)換數(shù)組為變體解釋變體數(shù)組什么是變體?變體是一種特殊的數(shù)據(jù)類型,它可包含除固定長(zhǎng)度字符串?dāng)?shù)據(jù)和用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《機(jī)電概念設(shè)計(jì)基礎(chǔ)》課件-運(yùn)行時(shí)行為
- 2024外墻保溫材料綠色施工技術(shù)與材料購(gòu)銷合同協(xié)議2篇
- 換簽租賃合同(2篇)
- 2024年版項(xiàng)目管理實(shí)踐之招投標(biāo)策略3篇
- 2024年田土承包與土地整治服務(wù)合同協(xié)議3篇
- 2025年寶雞貨物從業(yè)資格證考試題
- 2025年中衛(wèi)貨運(yùn)從業(yè)資格證試題庫(kù)及答案
- 2025年杭州貨運(yùn)從業(yè)資格證模擬考試0題題庫(kù)
- 2025年福州貨運(yùn)從業(yè)資格證考500試題
- 2025年哈爾濱貨運(yùn)從業(yè)資格考試
- 青海省海東市互助土族自治縣2023-2024學(xué)年八年級(jí)上冊(cè)期末數(shù)學(xué)模擬試題(附答案)
- 第23課+人類社會(huì)面臨的機(jī)遇與挑戰(zhàn)(新教材課件)【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 個(gè)人生涯發(fā)展報(bào)告
- 《同型半胱氨酸》課件
- 電氣工程及其自動(dòng)化講座
- 線性規(guī)劃課后題答案
- 2023河南中醫(yī)藥大學(xué)學(xué)士學(xué)位英語(yǔ)題
- 壓裂作業(yè)質(zhì)量、安全、環(huán)保管理體系與措施
- JGJ120-2012建筑基坑支護(hù)技術(shù)規(guī)程
- 2023-2024學(xué)年廣東省深圳市福田區(qū)八年級(jí)上冊(cè)期末考試生物模擬試題(附答案)
- 國(guó)防教育基地建設(shè)項(xiàng)目運(yùn)營(yíng)方案
評(píng)論
0/150
提交評(píng)論