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

        ?

        基于AutoCAD—VBA的圖層切換工具設計探討

        2016-12-31 00:00:00呂嵐
        科技創(chuàng)新與應用 2016年30期

        摘 要:VBA是一個AutoCAD應用程序集成開發(fā)環(huán)境,是一種面向對象的可視化結構編程語言,被廣泛應用于各領域的實際工作中。通過界面或命令方式切換圖層的方法不便捷,針對這個問題,設計了一個切換圖層輔助程序,可以選擇所需圖層并且只顯示本圖層信息,還可以針對不同圖層設置不同顏色以示區(qū)別。實際應用效果良好,提高了工作效率。

        關鍵詞:AutoCAD;VBA;圖層

        1 概述

        AutoCAD(Autodesk Computer Aided Design)是一款用于二維繪圖、詳細繪制、設計文檔和基本三維設計的自動計算機輔助設計軟件。AutoCAD繪圖功能強大,但在處理表格、數(shù)據(jù)等方面有局限性??梢酝ㄟ^對AutoCAD的二次開發(fā),簡化繪圖過程,避免重復性工作,充分發(fā)揮其快速、準確的優(yōu)勢[1]。Visual Basic for Applications( VBA)是Visual Basic的一種宏語言,可以通過VBA編程操作CAD的繪圖對象[2]。

        在AutoCAD中,切換圖層的操作很不便捷,特別是當圖形中包含多個圖層的時候,每次都要通過打開圖層列表,去選擇要切換的圖層[3]。雖然有人開發(fā)了根據(jù)創(chuàng)建對象的當前類型自動切換圖層的程序,但是其具有明顯缺陷性。如在建筑制圖中,由于建筑繪圖中直線會用來表示多種對象,需要放置在很多圖層中[4],這樣的情況編寫的程序就不適用。作者在使用中分析得到,切換圖層除了打開列表不方便,搜索目標圖層也不便捷,因為圖層列表是固定不變的,而不是按照用戶使用的頻繁程序而排列。

        2 編程思路

        文章所創(chuàng)建的切換圖層程序正是針對上述問題,在文本框中顯示當前圖層的名稱,列表中顯示了當前圖形中所有的圖層。程序設計思路是在設置當前圖層后對列表的排序操作。設置當前圖層后,將列表中指定的圖層名稱移到第一位,在原來位置之前的所有元素向后退一位,其他元素位置保持不變。列表的排序方法為:當前圖層、上一次的當前圖層、再上一次的當前圖層,依此類推。列表能夠明確地顯示出當前所有圖層,省去了打開下拉列表的時間,圖層的排序保證了可以容易地選擇頻繁使用的圖層。

        3 設計分析

        (1)在【VBA管理器】對話框中,創(chuàng)建一個新工程。并在這個工程中創(chuàng)建用戶窗體。

        (2)在窗體的初始化事件中,需要讀取圖形中圖層名稱,添加到列表框中,并且調整控件的狀態(tài),其程序代碼為:

        Private Sub UserForm_Initialize( )

        Dim objLayer As AcadLayer

        Dim I As Integer

        For Each objLayer In ThisDrawing.Layers

        lstLayers .AddItem objLayer.Name, i

        i=i +1

        Next

        lstLayers.ListIndex = 0

        txtCurLayer.Enabled = False

        End Sub

        (3)【僅顯示當前圖層】復選框允許用戶在指定當前圖層時關閉其他圖層,如果用戶單擊該復選框取消選中狀態(tài),則顯示所有圖層,其實現(xiàn)代碼為:

        If chcShow.Value = True Then

        For Each objLayer In ThisDrawing.Layers

        If objLayer.Name <> txtCurLayer.Text Then

        objLayer.LayerOn = False

        Else

        objLayer.LayerOn = True

        End If

        Next

        ElseIf chcShow.Value = False Then

        For Each objLayer In ThisDrawing.Layers

        objLayer.LayerOn = True

        Next

        End If

        End Sub

        (4)圖層列表框的雙擊事件中,包含了設置當前圖層以及排序列表框內容的代碼,其實現(xiàn)代碼為:

        Private Sub lstLayers_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

        txtCurLayer.Text = lstLayers.Text

        Dim objLayer As AcadLayer

        For Each objLayer In ThisDrawing.Layers

        If objLayer.Name = txtCurLayer.Text Then

        ThisDrawing.ActiveLayer = objLayer

        Exit For

        End If

        Next

        Dim strTemp As String

        Dim index As Integer

        Dim i As Integer

        index = lstLayers.ListIndex

        strTemp = lstLayers.Text

        For i = 0 To index - 1

        lstLayers.List(index - i) = lstLayers.List(index - i - 1)

        Next

        lstLayers.List(0) = strTemp

        lstLayers.ListIndex = 0

        4 實例效果

        在VBA集成開發(fā)環(huán)境中,按下F5鍵,在AutoCAD主應用程序窗口中執(zhí)行當前的程序。在圖層列表中雙擊【軸線】選項,該圖層就會被設置為當前圖層,在文本框中顯示“軸線”,幫助用戶判斷當前圖層中的對象,擊選中【僅顯示當前圖層】復選框,圖形窗口中其他圖層就會被關閉,界面如圖1所示:

        5 總結與提高

        本程序在AutoCAD2010/2014環(huán)境下能夠穩(wěn)定正常運行,工作中應用效果良好。與通過菜單、命令操作話框中直接輸入各種參數(shù)相比,圖層切換程序的使用明顯的節(jié)省了頻繁操作圖層的時間,在繪圖和設計過程中非常實用。

        參考文獻

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

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

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

        [4]秦洪現(xiàn),崔惠嵐,孫劍,等.Autodesk系列產品開發(fā)培訓教程[M].北京:化學工業(yè)出版社,2008:167-168.

        作者簡介:呂嵐(1982-),女,研究生,研究方向為計算機科學與技術,陜西鐵路工程職業(yè)技術學院講師。

        亚洲精品无码久久久久av麻豆| 美女脱掉内裤扒开下面让人插| 欧美a级毛欧美1级a大片| 777国产偷窥盗摄精品品在线| 久久久无码一区二区三区| 久久99亚洲综合精品首页| 国产av精品一区二区三区视频| 天堂网av在线| 日韩一二三四区在线观看| 美女丝袜美腿玉足视频| 成人欧美日韩一区二区三区| 亚洲国产理论片在线播放| 久久久99久久久国产自输拍| 国产av天堂一区二区二区| 亚洲av乱码一区二区三区按摩| 精品国产乱码久久久软件下载| 国产视频毛片| 色中文字幕视频在线观看| 亚洲一区二区三区中文字幕网| 欧美黑人性暴力猛交喷水| 精品第一页| 亚洲精品成人久久av| 久久久久高潮综合影院| 午夜福利麻豆国产精品| 亚洲公开免费在线视频| 中文字幕一区二区三区在线乱码| 一区二区国产av网站| 久久精品免费观看国产| 精品人妻中文av一区二区三区 | 国产精品一区二区 尿失禁| 久久久国产精品粉嫩av| 亚洲国产综合一区二区| 精品国产一区二区三区a | 人人妻人人玩人人澡人人爽| 国产激情一区二区三区在线蜜臀 | 中文字幕日产人妻久久| 亚洲美女主播内射在线| 国产精品国三级国产av| 久久精品亚洲牛牛影视| 青青草在线成人免费视频| 最美女人体内射精一区二区|