亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        1 概述

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

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

        2 實例分析

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

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

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

        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模塊的代碼窗口中,添加通過選擇對象所在的組,分解組的代碼:

        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

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

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

        (defun c:ga( ) (princ))

        (defun c:gd( ) (princ))

        3 實例效果

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

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

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

        4 總結(jié)與提高

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

        參考文獻

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

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

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

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

        作者簡介:鄭賓(1978-),男,漢族,陜西渭南人,學(xué)士,講師,研究方向為計算機科學(xué)與技術(shù)。

        日韩女同一区在线观看| 免费无码a片一区二三区| 亚洲av日韩一区二区| 国产精品h片在线播放| 24小时日本在线视频资源| 激情综合色五月丁香六月亚洲 | 高清无码精品一区二区三区| 果冻蜜桃传媒在线观看| 黑丝美女喷水在线观看| 亚洲av专区一区二区| 国产精品一区二区熟女不卡| 日韩一区av二区三区| 亚洲国产精品美女久久| av无码小缝喷白浆在线观看 | 亚洲av无码乱码国产精品久久| 亚洲国产日韩欧美一区二区三区| 亚洲色欲久久久久综合网| 国产精品后入内射日本在线观看| 亚洲色欲大片AAA无码| 精品中文字幕手机在线| 国产精品亚洲精品专区| 男人天堂亚洲一区二区| 亚洲美女自拍偷拍视频| 国产又大又硬又粗| 国产乱人伦av在线a| 红杏性无码免费专区| 人妻少妇喷水意淫诱惑| 精品av一区二区在线| 色婷婷av一区二区三区丝袜美腿| 亚洲精品无码精品mv在线观看| 免费欧洲毛片a级视频老妇女| 国产精品igao视频| 四虎国产精品免费久久麻豆| 亚洲综合一区二区三区蜜臀av | 人禽杂交18禁网站免费| 国产精品国产三级国产专播| 国内老熟妇对白xxxxhd| 波多野无码AV中文专区 | 两个人免费视频大全毛片| 爱爱免费视频一区二区三区| 秋霞在线视频|