毛片一区二区三区,国产免费网,亚洲精品美女久久久久,国产精品成久久久久三级

淺析基于AutoCAD-VBA 的對(duì)象交互式操作方法論文

時(shí)間:2021-05-28 16:14:41 論文 我要投稿

淺析基于AutoCAD-VBA 的對(duì)象交互式操作方法論文

  1 概述

淺析基于AutoCAD-VBA 的對(duì)象交互式操作方法論文

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

  2 實(shí)例分析

  文章通過(guò)AutoCAD-VBA 設(shè)計(jì)一個(gè)組合拆散對(duì)象的應(yīng)用程序。

  (1)運(yùn)行AutoCAD2004,在【VBA 管理器】對(duì)話框中新建一個(gè)全局工程,進(jìn)入VBA 集成開發(fā)環(huán)境,將其名稱修改為“匿名組”,保存在適當(dāng)?shù)奈恢蒙稀?/p>

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

  Sub AddUnNameGroup( )Dim SelObjects As AcadSelectionSetDim ppendObjs( ) As AcadEntitySet SelObjects=GetSelSetDim UnNameGroup As AcadGroupSet UnNameGroup=ThisDrawingGroups.Add(“*”)ReDim appendObjs(0 To SelObjects.Count-1)Dim I As IntegerFor i=0 To SelObjects.Count-1Set appendobjs(i)=SelObjects.Item(i)NextUnNameGroup.AppendItems appendobjsEnd Sub

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

  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 SelObjects.Count-1Set ObjInSelSet=SelObjects.Item(i)For j=0 To ThisDrawing.Groups. Count-1For k=0 To ThisDrawing.Groups.Item(j). Count-1Set ObjInGroup=ThisDrawing.Groups.Item(j).Item(k)If ObjInGroup.ObjectID=ObjInSelect.ObjectID ThenThisDrawing.Groups.Item(j).DeleteExit ForEnd IfNextNextNextEnd Sub

  這段代碼的實(shí)現(xiàn)過(guò)程由于不能通過(guò)選定的對(duì)象來(lái)直接找到其組合名稱,只能通過(guò)循環(huán)比較對(duì)象ID 的方法來(lái)解決這個(gè)問(wèn)題。運(yùn)行時(shí)可能會(huì)慢點(diǎn),但對(duì)象不多的情況下其運(yùn)行速度還是很快的。

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

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

  3 實(shí)例效果

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

  (2)選定圖形中的部分對(duì)象,在命令行中輸入“ga”并按下Enter鍵,此時(shí)選定的對(duì)象將自動(dòng)組合起來(lái)。

  (3)選定剛組合的對(duì)象,在命令行中輸入“gd”并按下Enter 鍵,此時(shí)選定的組合將自動(dòng)拆散。

  4 總結(jié)與提高

  通過(guò)這個(gè)程序的設(shè)計(jì),實(shí)現(xiàn)了通過(guò)代碼語(yǔ)言實(shí)現(xiàn)匿名的組合,匿名的組合可以使用下面的語(yǔ)句生成:ThisDrawing.Groups.Add“( .”)就是名稱項(xiàng)中用“.”即可生成匿名塊。組合的操作與選擇集的操作相似,都應(yīng)該先生成一個(gè)空的組合,然后把對(duì)象添加到其中。由于通過(guò)對(duì)象不能確定對(duì)象是否是組合中的一員,所以必須遍歷組合中的對(duì)象與指定對(duì)象相比較來(lái)確定指定對(duì)象是否為指定組合中的對(duì)象。雖然在幫助文件中說(shuō)明組合是一種特殊的命名選擇集,但這里選擇集的概念只對(duì)于AutoCAD 中的選擇集而言,而不是對(duì)于ActiveX 中的選擇集?梢酝ㄟ^(guò)使用“PickfirstSelectionSet”方法來(lái)實(shí)現(xiàn)先選擇后操作,但這個(gè)方法有一定的限制,因?yàn)樵谥付╒BA 過(guò)程運(yùn)行前我們總是要通過(guò)其他命令來(lái)加載運(yùn)行,這樣在加載運(yùn)行過(guò)程中圖形中選定的選擇集將會(huì)消失。所以我們這里采用的是自動(dòng)觸發(fā)運(yùn)行的方法,也就是通過(guò)一個(gè)空的LISP 程序來(lái)觸發(fā)相應(yīng)的事件運(yùn)行相關(guān)的過(guò)程。在實(shí)際使用過(guò)程中,程序運(yùn)行穩(wěn)定,提高了工作效率,效果良好。

【淺析基于AutoCAD-VBA 的對(duì)象交互式操作方法論文】相關(guān)文章:

淺析秦觀詞中的閑愁論文08-07

基于系統(tǒng)設(shè)計(jì)的科研管理論文03-21

淺析杜甫詩(shī)歌的憂患意識(shí)的論文10-27

基于DSP整流器設(shè)計(jì)論文04-18

淺析李清照的精神世界文學(xué)論文08-07

沒(méi)對(duì)象的520說(shuō)說(shuō)05-20

對(duì)象的道歉信02-18

淺析李清照詞廣泛傳播之原因的論文08-22

520給對(duì)象表白的句子05-20

送給對(duì)象的520表白句子05-20