国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AutoCAD-VBA的批量文字替換方法探討

2017-03-10 20:06
關(guān)鍵詞:窗體批量二次開發(fā)

鄭 賓

(陜西鐵路工程職業(yè)技術(shù)學(xué)院 電氣工程系, 陜西 渭南 714099)

基于AutoCAD-VBA的批量文字替換方法探討

鄭 賓

(陜西鐵路工程職業(yè)技術(shù)學(xué)院 電氣工程系, 陜西 渭南 714099)

通過VBA對AutoCAD的二次開發(fā),設(shè)計了一個可以選擇多個圖形文件,并同時進(jìn)行批量文字查找和替換的應(yīng)用程序。比較之前通過命令行對話框的操作,解決了一次只能選擇一個圖形文件的問題,提高了工作效率,實(shí)際應(yīng)用效果良好。

AutoCAD; VBA; 文字替換; 批量

AutoCAD是一款用于二維、三維繪圖、設(shè)計文檔的計算機(jī)輔助設(shè)計軟件。AutoCAD繪圖功能強(qiáng)大,但在數(shù)據(jù)處理、文檔操作等方面有局限性[1]82。Visual Basic for Applications是Visual Basic的一種宏語言[2]564,可以通過VBA編程操作CAD的繪圖對象[3]45-46,通過對AutoCAD的二次開發(fā),避免繪圖過程中的重復(fù)性工作,簡化流程,使CAD準(zhǔn)確、快速的優(yōu)勢得到最大的發(fā)揮。

在AutoCAD中,對文字查找和替換是通過打開文件標(biāo)準(zhǔn)對話框?qū)崿F(xiàn)的,但每次只能選擇一個文件,操作很不便捷。本文設(shè)計的程序仍然使用打開文件標(biāo)準(zhǔn)對話框這一功能,但是卻允許同時選擇多個文件,能夠同時對多個圖形進(jìn)行文字查找和替換的操作,這在工程設(shè)計的過程中是一個非常實(shí)用的工具。

一、實(shí)例設(shè)計

本文通過AutoCAD-VBA設(shè)計一個批量文字替換的應(yīng)用程序。

(1)運(yùn)行AutoCAD2016,在【VBA管理器】中創(chuàng)建一個全局工程并選擇保存路徑,進(jìn)行保存。

(2)選擇【插入/用戶窗體】菜單項(xiàng),在程序中創(chuàng)建一個窗體frmMain,并添加以下控件:一個列表框控件用于顯示選擇的圖形文件名稱,兩個文本框控件用來輸入查找和替換的文字,四個命令按鈕分別是添加、刪除、取消、確定。

(3)在窗體的初始化事件中,清空列表框的元素,其實(shí)現(xiàn)代碼為:

Private Sub UserForm_Initialize ()

IstFile.Clear

End Sub

(4)窗體中【添加】按鈕的單擊事件,用于顯示標(biāo)準(zhǔn)對話框,獲取用戶的選擇,并將選擇的結(jié)果添加到列表框中,其實(shí)現(xiàn)代碼為[4]53-55:

Private Sub cmdOpen_Click()

On Error GoTo errHandle

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim DocuName () As String

With comDlg

.CancelError= True

.MaxFileSize=32767

.DialogTitle=“請選擇文件!”

.Filter=“文件(*.dwg)| dwgI*.dwg|所有文件(*.*)|*.*”

.FileName=“”

.ShowOpen

End With

(5)窗體中【刪除】按鈕的單擊事件,用于從列表框中刪除指定的元素,其實(shí)現(xiàn)代碼為:

Private Sub cmdDelete_Click ()

If lstFile . ListCount >= 1 Then

If lstFile .List工ndex = -1 Then

MsgBox“請選擇列表中的圖形名稱!”

Exit Sub

End If

lstFile.RemoveItem(lstFile.ListIndex)

End If

End Sub

(6)窗體中【確定】按鈕的單擊事件,用于打開每一個列表框中顯示的圖形文件,并且對文件進(jìn)行文字替換的操作,其實(shí)現(xiàn)代碼為:

Private Sub cmdOk__Click()

dim adT As AcadText

dim adMT As AcadMText

dim acdc As AcadSelectionSet

dim fType As Integer

If txtFind.Text=“” Or txtReplace.Text=“” Then

MsgBox“輸入所要替換的字符串內(nèi)容!”

Exit Sub

End If

If 1stFile.ListCount=0 Then

MsgBox“請?zhí)砑铀僮鞯膱D形”

Exit Sub

End If

For I = 0 To file.ListCount

Application. Documents. Open File. list(i)

On Error Resume Next

Set adSS=This Drawing.SelectionSets .Add ( “acdc” )

If error Then

Set acdc=ThisDrawing. SelectionSets .Add ( “acdc” )

acdc.Clear

fType (0) =0: fData (0)=“TEXT”: fType (1)=8: fData (1)=“*”

acdc.Select acSelectionSetAll, , , fType,fData

For Each adT In acdc

With adT

If InStr( .TextString,strFind)Then .TextString=

ReplaceStr ( .TextString, strFind, strReplace, False)

End With

Next adT

For Each adMT In acdc

With adMT

If InStr( .TextString,strFind)Then .TextString=

ReplaceStr ( .TextString, strFind, strReplace, False)

End With

Next adMT

二、實(shí)例效果

(1)在VBA集成開發(fā)環(huán)境中,按下F5鍵運(yùn)行程序,系統(tǒng)會彈出【批量文字替換】對話框。

(2)單擊【添加】按鈕,系統(tǒng)會彈出【選擇圖形文件】對話框。用戶可以從中選擇多個圖形文件,單擊【打開】按鈕就可以將文件添加到【批量文字替換】對話框的文件列表中。

(3)在【批量文字替換】對話框中輸入要替換的字符串和替換內(nèi)容,單擊【確定】按鈕,就可以對指定的多個圖形進(jìn)行文字替換的操作。

相比于傳統(tǒng)的CAD環(huán)境下,通過選擇【編輯】下拉菜單下【查找】命令,會出現(xiàn)查找和替換對話框,查找位置選項(xiàng)下有“整個圖形”“當(dāng)前空間布局”“選定對象”,但只能對一個圖形文件進(jìn)行查找和替換的操作,相比較而言,批量替換程序具有明顯的優(yōu)勢。

三、總結(jié)與提高

通過這個程序的設(shè)計,實(shí)現(xiàn)了在CAD中批量文字替換的功能,在實(shí)際使用過程中,程序運(yùn)行穩(wěn)定,提高了工作效率,效果良好。對話框的使用可以通過調(diào)用Windows標(biāo)準(zhǔn)瀏覽文件夾對話框的方法[5]35,也可以使用標(biāo)準(zhǔn)打開對話框?qū)崿F(xiàn)多個選擇,實(shí)際上,還可以自行編寫打開文件對話框的程序。但是,這個批量文字替換程序也有一些不足之處,如:對多個圖形中的特定對象不能具體進(jìn)行設(shè)置和選擇,同時,對不同行業(yè)中有特定需求和實(shí)際問題的用戶,針對性不是很強(qiáng)。在今后,可以通過一些程序軟件的嵌入和二次開發(fā),來解決本行業(yè)個性化的實(shí)際問題。

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

[2] 張 勇.基于AutoCAD的二次開發(fā)技術(shù)的研究與實(shí)現(xiàn)[J].佳木斯大學(xué)學(xué)報,2016(4).

[3] 彭小紅.CAD中實(shí)現(xiàn)工程圖樣自動化轉(zhuǎn)換的研究[J].CAD/CAM與制造業(yè)信息化,2009(11).

[4] 盧彬源,何征坤.AutoCAD VBA在地形圖批處理中的應(yīng)用[J].北京測繪,2014(3).

[5] 呂延崗.Excel VBA在成績管理中的應(yīng)用[J].辦公自動化,2014(4).

Study of Batch Replacement of Text Based on AutoCAD-VBA

ZHENG Bin

(Department of Electrical Engineering, Shanxi Railway Institute, Weinan 714000, China)

Visual basic for applications is an integrated development environment in AutoCAD application, also is an object-oriented visual structure programming language, which is widely used in various fields of practical work. Using VBA application to the Secondary Development of Auto-CAD, designing the application of batch text replacement and comparing with the previous command-line dialog box operation, proves that this application works more efficiency.

Autodesk Computer Aided Design; Visual Basic for Application; replacement of text; batch

2016-10-27

鄭 賓(1978-),男,陜西渭南人,講師,主要從事電子信息技術(shù)研究。

TP391.72

A

1672-2388(2017)01-0089-03

猜你喜歡
窗體批量二次開發(fā)
批量提交在配置分發(fā)中的應(yīng)用
西門子Operate高級編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
淺談Mastercam后處理器的二次開發(fā)
西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
基于VBA井斜數(shù)據(jù)批量校正方法
在數(shù)控車床上批量鉆鉸孔類工件的實(shí)踐
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
考慮價差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
枞阳县| 北流市| 息烽县| 平安县| 长宁县| 枞阳县| 盐山县| 安顺市| 虹口区| 云阳县| 南川市| 区。| 磴口县| 汪清县| 德庆县| 夹江县| 南郑县| 合作市| 蒙自县| 丰原市| 昭苏县| 永寿县| 平舆县| 西乌珠穆沁旗| 成武县| 龙江县| 镇安县| 桐乡市| 高雄市| 天柱县| 安吉县| 茂名市| 九龙城区| 晋江市| 新化县| 景宁| 星座| 陇西县| 内丘县| 无极县| 赞皇县|