999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AutoCAD—VBA的對(duì)象交互式操作方法探討

2016-12-31 00:00:00鄭賓
科技創(chuàng)新與應(yīng)用 2016年30期

摘 要:VBA是一個(gè)AutoCAD應(yīng)用程序集成開發(fā)環(huán)境,是一種面向?qū)ο蟮目梢暬Y(jié)構(gòu)編程語(yǔ)言,被廣泛應(yīng)用于各領(lǐng)域的實(shí)際工作中。通過VBA對(duì)AutoCAD的二次開發(fā),設(shè)計(jì)了一個(gè)對(duì)對(duì)象組合、拆散的應(yīng)用程序,比較之前的命令行對(duì)話框的操作,提高了工作效率,實(shí)際應(yīng)用效果良好。

關(guān)鍵詞:AutoCAD;VBA;對(duì)象;交互式

1 概述

AutoCAD中對(duì)象的組合拆散是一組常用操作,可以通過Group命令實(shí)現(xiàn)對(duì)對(duì)象的組合[1],但組合拆散對(duì)象時(shí)必須都在對(duì)話框狀態(tài)下進(jìn)行,而且不能先選定后操作,操作不便捷[2]。到了2002版本之后,AutoCAD菜單中甚至取消了這個(gè)命令。但在實(shí)際繪圖中,對(duì)象的組合、拆散功能隊(duì)繪圖有很大的幫助,因?yàn)樵谶x擇對(duì)象時(shí),組合在一起的對(duì)象可以一次性選定而不需要逐個(gè)對(duì)象選擇。所以,通過編程實(shí)現(xiàn)快捷使用對(duì)象組合拆散功能,是這個(gè)程序編寫的目的。

程序設(shè)計(jì)思路是去掉對(duì)話框,只要選定對(duì)象后輸入一個(gè)相應(yīng)的組合命令就可以直接將選定的對(duì)象綜合在一起,而且不需要命名。拆散對(duì)象也是同樣的道理。選定組合,輸入拆散的命令就可以直接將組合在一起的對(duì)象拆散。

2 實(shí)例分析

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

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

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

Sub AddUnNameGroup( )

Dim SelObjects As AcadSelectionSet

Dim ppendObjs( ) As AcadEntity

Set SelObjects=GetSelSet

Dim UnNameGroup As AcadGroup

Set UnNameGroup=ThisDrawingGroups.Add(“*”)

ReDim appendObjs(0 To SelObjects.Count-1)

Dim I As Integer

For i=0 To SelObjects.Count-1

Set appendobjs(i)=SelObjects.Item(i)

Next

UnNameGroup.AppendItems appendobjs

End Sub

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

Sub DelUnNameGroup( )

Dim SelGroup As AcadGroup

Dim SelObjects As AcadSelectionSet

Set SelObjects=GetSelSet

Dim ObjInSelSet As AcadObject

Dim I As Integer

Dim j As Integer

Dim k As Integer

Dim ObjInGroup As AcadObject

On Error Resume Next

For i=0 To SelObjects.Count-1

Set ObjInSelSet=SelObjects.Item(i)

For j=0 To ThisDrawing.Groups. Count-1

For k=0 To ThisDrawing.Groups.Item(j). Count-1

Set ObjInGroup=ThisDrawing.Groups.Item(j).Item(k)

If ObjInGroup.ObjectID=ObjInSelect.ObjectID Then

ThisDrawing.Groups.Item(j).Delete

Exit For

End If

Next

Next

Next

End Sub

這段代碼的實(shí)現(xiàn)過程由于不能通過選定的對(duì)象來直接找到其組合名稱,只能通過循環(huán)比較對(duì)象ID的方法來解決這個(gè)問題。運(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)組合起來。

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

4 總結(jié)與提高

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

參考文獻(xiàn)

[1]郭慶龍.AutoCAD VBA在鐵路信號(hào)工程設(shè)計(jì)中的應(yīng)用[J].硅谷,2015(03):82.

[2]張勇.數(shù)字圖像修復(fù)關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)[J].安陽(yáng)師范學(xué)院學(xué)報(bào),2014(02):32-35.

[3]張帆,鄭立楷,王華杰.AutoCAD VBA開發(fā)精彩實(shí)例教程[M].清華大學(xué)出版社,2004.

[4]王超英.開發(fā)AutoCAD圖形軟件實(shí)現(xiàn)圖面設(shè)置自動(dòng)化[J].管理與技術(shù),2005(4):92-93.

作者簡(jiǎn)介:鄭賓(1978-),男,漢族,陜西渭南人,學(xué)士,講師,研究方向?yàn)橛?jì)算機(jī)科學(xué)與技術(shù)。

主站蜘蛛池模板: 精品综合久久久久久97超人| 国产精品久久久久久搜索| 狠狠色香婷婷久久亚洲精品| 伊人色天堂| 欲色天天综合网| 精品国产一二三区| 尤物视频一区| 欧美成人免费午夜全| 中文字幕佐山爱一区二区免费| 亚洲欧美日韩精品专区| 亚洲swag精品自拍一区| 成人在线不卡| 国产玖玖视频| 亚洲欧洲AV一区二区三区| 欧美福利在线| 凹凸国产熟女精品视频| 久久婷婷六月| 国产精品第一区| 国产无码网站在线观看| 国产人妖视频一区在线观看| 美女高潮全身流白浆福利区| 国产精品天干天干在线观看| 91在线精品麻豆欧美在线| 亚洲三级成人| 91成人在线观看| 久久伊人操| 中文字幕人成乱码熟女免费| 亚洲日韩AV无码精品| 亚洲—日韩aV在线| 波多野结衣无码中文字幕在线观看一区二区| 99视频在线看| 污网站在线观看视频| 亚洲国产欧美中日韩成人综合视频| 亚洲性色永久网址| 成人午夜网址| 国产免费看久久久| 国产无码制服丝袜| 永久免费av网站可以直接看的 | 久久99精品国产麻豆宅宅| 国产精品视频999| 国产欧美日韩视频一区二区三区| 亚洲一欧洲中文字幕在线| 亚洲成人手机在线| 色婷婷狠狠干| 国产在线观看91精品| 国产成人高清精品免费软件| 国产精品女在线观看| 亚洲大尺度在线| 国产亚洲精品自在久久不卡| 四虎国产永久在线观看| 欧美成人影院亚洲综合图| 97国产在线视频| 日本三区视频| 国产人妖视频一区在线观看| 国产H片无码不卡在线视频| 最新亚洲人成无码网站欣赏网| 亚洲男人的天堂久久香蕉网| 精品福利网| 亚洲Av综合日韩精品久久久| 久久亚洲AⅤ无码精品午夜麻豆| 五月婷婷综合网| 欧美一级色视频| 成人在线观看不卡| 久久成人免费| 国产97色在线| 亚洲欧洲美色一区二区三区| 欧美yw精品日本国产精品| 这里只有精品在线播放| 四虎精品国产AV二区| 亚洲aⅴ天堂| 无码人中文字幕| 亚洲第一av网站| 美女被操91视频| 亚洲男人天堂久久| 99色亚洲国产精品11p| 中文字幕1区2区| 亚洲成人在线网| 亚洲swag精品自拍一区| 老司国产精品视频91| 性69交片免费看| 亚洲国产综合自在线另类| 色135综合网|