網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 實用範文 > 論文

淺析基於AutoCAD-VBA 的對象交互式操作方法論文

欄目: 論文 / 發佈於: / 人氣:3.03W

1 概述

淺析基於AutoCAD-VBA 的對象交互式操作方法論文

AutoCAD 中對象的組合拆散是一組常用操作,可以通過Group命令實現對對象的組合,但組合拆散對象時必須都在對話框狀態下進行,而且不能先選定後操作,操作不便捷。到了2002 版本之後,AutoCAD 菜單中甚至取消了這個命令。但在實際繪圖中,對象的組合、拆散功能隊繪圖有很大的幫助,因為在選擇對象時,組合在一起的對象可以一次性選定而不需要逐個對象選擇。所以,通過編程實現快捷使用對象組合拆散功能,是這個程序編寫的目的。程序設計思路是去掉對話框,只要選定對象後輸入一個相應的組合命令就可以直接將選定的對象綜合在一起,而且不需要命名。拆散對象也是同樣的道理。選定組合,輸入拆散的.命令就可以直接將組合在一起的對象拆散。

2 實例分析

文章通過AutoCAD-VBA 設計一個組合拆散對象的應用程序。

(1)運行AutoCAD2004,在【VBA 管理器】對話框中新建一個全局工程,進入VBA 集成開發環境,將其名稱修改為“匿名組”,保存在適當的位置上。

(2)在【工程資源管理器】窗口中雙擊ThisDrawing,打開該模塊的代碼窗口,首先其中添加對象組合的代碼:

Sub AddUnNameGroup( )Dim SelObjects As AcadSelectionSetDim ppendObjs( ) As AcadEntitySet SelObjects=GetSelSetDim UnNameGroup As AcadGroupSet UnNameGroup=(“*”)ReDim appendObjs(0 To t-1)Dim I As IntegerFor i=0 To t-1Set appendobjs(i)=(i)ndItems appendobjsEnd Sub

(3)在ThisDrawing 模塊的代碼窗口中,添加通過選擇對象所在的組,分解組的代碼:

Sub DelUnNameGroup( )Dim SelGroup As AcadGroupDim SelObjects As AcadSelectionSetSet SelObjects=GetSelSetDim ObjInSelSet As AcadObjectDim I As IntegerDim j As IntegerDim k As IntegerDim ObjInGroup As AcadObjectOn Error Resume NextFor i=0 To t-1Set ObjInSelSet=(i)For j=0 To ps. Count-1For k=0 To (j). Count-1Set ObjInGroup=(j)(k)If ctID=ctID (j)teExit ForEnd IfNextNextNextEnd Sub

這段代碼的實現過程由於不能通過選定的對象來直接找到其組合名稱,只能通過循環比較對象ID 的方法來解決這個問題。運行時可能會慢點,但對象不多的情況下其運行速度還是很快的。

(4)在AutoCAD 安裝路徑的Support 目錄下的新建一個命名為 的文文章件,文件內容如下:

(defun c:ga( ) (princ))(defun c:gd( ) (princ))

3 實例效果

(1)在AutoCAD 2004 中,加載 文件。

(2)選定圖形中的部分對象,在命令行中輸入“ga”並按下Enter鍵,此時選定的對象將自動組合起來。

(3)選定剛組合的對象,在命令行中輸入“gd”並按下Enter 鍵,此時選定的組合將自動拆散。

4 總結與提高

通過這個程序的設計,實現了通過代碼語言實現匿名的組合,匿名的組合可以使用下面的語句生成:“( .”)就是名稱項中用“.”即可生成匿名塊。組合的操作與選擇集的操作相似,都應該先生成一個空的組合,然後把對象添加到其中。由於通過對象不能確定對象是否是組合中的一員,所以必須遍歷組合中的對象與指定對象相比較來確定指定對象是否為指定組合中的對象。雖然在幫助文件中説明組合是一種特殊的命名選擇集,但這裏選擇集的概念只對於AutoCAD 中的選擇集而言,而不是對於ActiveX 中的選擇集。可以通過使用“PickfirstSelectionSet”方法來實現先選擇後操作,但這個方法有一定的限制,因為在指定VBA 過程運行前我們總是要通過其他命令來加載運行,這樣在加載運行過程中圖形中選定的選擇集將會消失。所以我們這裏採用的是自動觸發運行的方法,也就是通過一個空的LISP 程序來觸發相應的事件運行相關的過程。在實際使用過程中,程序運行穩定,提高了工作效率,效果良好。

熱門搜索
我和哪吒過一天-想象作文650字 愛情唯美句子95條 我也想玩作文700字 消防地震應急預案 我是一滴水作文400字 小學作文:海洋歷險記 五四青年節組織活動主持詞 我的誠信小故事作文500字 以温暖的記憶為話題的優秀作文 一次深刻的生活經歷優秀作文500字 音樂巨人貝多芬教案 政府和社會資本合作PPP中心工作總結匯報 幸福是什麼的小學生週記 玩了一半的遊戲作文650字 《秋天的思考》閲讀答案 《A new house》教案 合作精神最重要記敍文 擁抱鵝泉 內務部副部長一職的競選演講稿 猜燈謎作文初一作文 高考前10天能改變什麼怎麼安排時間 游上海科技館六年級記敍文 失敗不是可怕的作文400字 河渠 考時 幼兒園大班健康教案《過橋摘果》附反思 企業優秀員工評選演講稿 我的本領小學生作文 觀察花生活動教案 生氣的漢字作文300字 有趣的胖大海小學生作文 電子/電腦應用維護-簡歷 生活中的加減法作文900字 客家民居的簡短導遊詞 我想變成機器貓小學作文 員工辭職報告申請書 新人自我工作總結參考 我的禮物小白熊英語作文 笨狐狸小學作文 春季的空間作文 轉讓簡單協議書 閣樓精靈讀後感 假如我是多啦A夢五年級作文 夏天小學三年級作文 我與藝術有個約會作文800字 守護友情作文 《再被狐狸騙一次》讀後感750字 我們玩得真高興作文