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

?

基于AutoCAD二次開發(fā)的配管料單統(tǒng)計方法研究

2015-06-24 21:56:42李廣鑫劉吉飛程久歡胡曉明楊公升廉立偉
科技創(chuàng)新與應(yīng)用 2015年19期

李廣鑫 劉吉飛 程久歡 胡曉明 楊公升 廉立偉

摘 要:為解決配管概算料單人工統(tǒng)計效率較低的問題,研究基于AutoCAD二次開發(fā)的配管料單自動統(tǒng)計方法。應(yīng)用VBA語言進行二次開發(fā),使AutoCAD與Excel互相通訊,實現(xiàn)交互式自動化統(tǒng)計程序。AutoCAD中開發(fā)的管線號賦值程序,可將管線號信息批量賦值給閥門管件,完成管線與閥門管件信息的關(guān)聯(lián)。Excel中開發(fā)的統(tǒng)計程序,可對AutoCAD輸出的閥門管件料單,按照規(guī)定的格式及排序要求,自動完成統(tǒng)計。此方法使工作自動化,準(zhǔn)確、省時、提高工作效率,節(jié)約人力成本。

關(guān)鍵詞:AutoCAD二次開發(fā);VBA;配管料單;設(shè)計自動化

引言

目前常規(guī)的配管料單統(tǒng)由人工讀圖紙逐個統(tǒng)計,并按照材料的不同規(guī)格,統(tǒng)計匯總,存在勞動繁瑣,耗時耗力、易出錯的缺點。CAD(Computer Aided Design計算機輔助設(shè)計)技術(shù)是先進技術(shù)轉(zhuǎn)化為先進生產(chǎn)力的典型代表,是實現(xiàn)制造業(yè)信息化的基礎(chǔ),已成為衡量一個國家設(shè)計水平的重要標(biāo)志。其在功能和角色等方面需求的不斷變化使得CAD軟件必須不斷的更新進步。AutoCAD二次開發(fā)技術(shù)對企業(yè)提高設(shè)計效率、優(yōu)化設(shè)計方案、減輕技術(shù)人員勞動強度、縮短設(shè)計周期,對設(shè)計和生產(chǎn)領(lǐng)域生產(chǎn)力的解放起到了關(guān)鍵性的作用。

VBA全稱為Visual Basic for Applications,可提供類似Visual Basic(VB)的豐富開發(fā)功能。VBA和VB的主要差別是VBA和AutoCAD在同一進程空間中運行,提供面向?qū)ο蟮摹⒎浅?焖俚木幊汰h(huán)境[1-3]。對象是所有ActiveX應(yīng)用程序的主要構(gòu)造塊,每一個顯示的對象均精確代表一個AutoCAD組件,AutoCAD ActiveX接口中有許多不同類型的對象。AutoCAD ActiveX接口使用戶能夠從AutoCAD的內(nèi)部或外部以編程方式來操作AutoCAD[4-5]。VBA也向其他支持VBA的應(yīng)用程序(例如Excel)提供應(yīng)用程序集成[6-10],因此,AutoCAD可以和Excel相互操作。

1 技術(shù)方案分析

1.1 技術(shù)思路

AutoCAD是應(yīng)用最為廣泛的工程軟件,Excel應(yīng)用程序的數(shù)據(jù)處理及統(tǒng)計分析功能非常強大,兩軟件本身都集成了VBA開發(fā)環(huán)境,提供二次開發(fā)功能。

VBA提供了以Visual basic為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)特性以及程序接口,通過VBA編程,基于ActiveX技術(shù),實現(xiàn)AutoCAD與Excel應(yīng)用程序進行通信及數(shù)據(jù)共享,如圖1所示。

1.2 技術(shù)實施方案

P&ID(Piping and Instrumentation Diagram)圖中,配管管件及閥門以塊的形式存在,且管件與塊標(biāo)識一一對應(yīng),本軟件通過對P&ID圖紙中塊信息的讀取,以塊標(biāo)識為索引,篩選、統(tǒng)計出配管料單;其中,關(guān)鍵技術(shù)為閥門管件尺寸磅級信息的獲得,通過將管線號與管線上閥門管件批量關(guān)聯(lián),獲得尺寸、磅級等信息。將讀取的料單信息,在Excel中進行二次統(tǒng)計并排序,輸出料單。

2 關(guān)鍵程序方案

2.1 管線號框選賦值程序方案

開發(fā)出框選賦值功能,框選管線號和要賦值的塊(如圖2所示),可將管線號賦值給框選內(nèi)所有塊的屬性值,用于出料單時從中抽取管件的尺寸和磅級信息,流程圖如圖3所示。

2.2 管線號框選賦值程序

Sub assig() '賦值

Dim sss As AcadSelectionSet

Dim ent As AcadEntity

Dim str As String

Dim varAttributes As Variant

ThisDrawing.Utility.prompt vbCrLf &"選擇一個管線號和要賦值的塊(可框選、多選),右鍵結(jié)束:"

On Error Resume Next

Set sss = ThisDrawing.SelectionSets("ss1")

If Err Then Set sss = ThisDrawing.SelectionSets.Add("ss1")

sss.Clear

sss.SelectOnScreen

For Each ent In sss

If TypeOf ent Is AcadText And InStr(1, ent.TextString, "-") Then

str = ent.TextString

End If

Next

For Each ent In sss

If TypeOf ent Is AcadBlockReference Then

varAttributes=ent.GetAttributes

varAttributes(0).TextString =str

End If

Next

i=0

For Each ent In sss'判斷賦值是否成功

If TypeOf ent Is AcadBlockReference Then

varAttributes=ent.GetAttributes

If varAttributes(0).TextStrin

g="" Then i=i+1

End If

Next

If i Then MsgBox"有參照,參照未賦值"

ThisDrawing.Utility.prompt "賦值結(jié)束"

sss.Delete

End Sub

2.3 圖紙料單輸出方案

管線號框選賦值閥門管件后,命令直接讀取整張圖紙,將閥門管件料單自動存儲到Excel中,管件的尺寸、磅級等信息根據(jù)關(guān)聯(lián)的管線號,自動提取,程序流程圖如圖4所示。

2.4 料單統(tǒng)計程序

開發(fā)的料單統(tǒng)計程序,可將相同規(guī)格閥門管件合并,并按照要求格式篩選出最終料單,主要代碼如下:

Sub pipingmaterials()' 料單統(tǒng)計程序

Dim Arr, i&, x$

Dim d, k, t

Set d = CreateObject("Scripting.Dictionary")

Sheet1.Activate

Arr=[a1].CurrentRegion

For i=2 To UBound(Arr)

x=Arr(i, 1) & "," & Arr(i, 2) & "," & Arr(i, 3)

d(x)=d(x)+Arr(i, 4)

Next

k=d.keys

t=d.items

[J1].Resize(1, 4)=Application.Index(Arr, 1, 0)

[J2].Resize(d.Count)=Application.Transpose(k)

Application.DisplayAlerts=False

[J2].Resize(d.Count).TextToColumns Destination:=[J2],Comma:=True

Application.DisplayAlerts=True

[M2].Resize(d.Count)=Application.Transpose(t)

Range("J:m").HorizontalAlignment=Excel.xlCenter

Range("J:J").EntireColumn.AutoFit

Range("A1:M1").Font.Bold=True

Rows(2).Select

ActiveWindow.FreezePanes=True

'下面自動設(shè)置篩選過濾

Call shaixuan

Cells(1, 10).Select

End Sub

3 結(jié)束語

開發(fā)的程序,在岐口18-1項目及荔灣3-1項目中成功應(yīng)用,由于項目圖紙量大,應(yīng)用此軟件,節(jié)約工時約2/3。

(1)文章通過VBA編程,基于ActiveX技術(shù),對AutoCAD及Excel進行二次開發(fā),實現(xiàn)AutoCAD與Excel應(yīng)用程序通信及數(shù)據(jù)共享,完成配管料單自動統(tǒng)計程序的開發(fā)。

(2)對AutoCAD進行的二次開發(fā),開發(fā)的管線號賦值程序,可將管線信息批量賦值給AutoCAD中閥門管件,完成管線與閥門管件信息的關(guān)聯(lián),并自動讀取圖紙中閥門管件料單,存儲到Excel中;對Excel進行的二次開發(fā),可對AutoCAD輸出的閥門管件料單,按照規(guī)定的格式及排序要求,自動完成統(tǒng)計。

(3)編制完成的程序,在海洋石油平臺項目配管料單統(tǒng)計中得到成功應(yīng)用,準(zhǔn)確、省時、提高工作效率,節(jié)約人力成本。

參考文獻

[1]武妍.基于VBA的AutoCAD二次開發(fā)系統(tǒng)的研究與應(yīng)用[D].太原理工大學(xué)圖書館,太原理工大學(xué),2008.

[2]田堂存.AutoCAD二次開發(fā)中多行文本替換技術(shù)的研究[J].電腦知識與技術(shù),2013,11(9):215-217.

[3]吳利明,李金勇.VBA在AutoCAD中的二次開發(fā)[J].湖南學(xué)院學(xué)報,2010,31(2):77-79.

[4]王永輝,胡青泥,李紅彩.AutoCAD二次開發(fā)方法的研究[J].計算機應(yīng)用系統(tǒng),2007,3:94-97.

[5]張明勇,楊波.基于AutoCAD二次開發(fā)的齒輪工程圖自動生成技術(shù)研究[J].機床與液壓,2011,39(4):20-22.

[6]徐昌革,戈俊,廖志偉.Excel二次開發(fā)在物探數(shù)據(jù)處理中的應(yīng)用[J].江西煤炭科技,2011,2:105-106.

[7]徐先文,張純根,張亞明,等.ExcelVBA二次開發(fā)在動力觸探數(shù)據(jù)處理分析中的應(yīng)用[J].施工技術(shù),2012,41:239-241.

[8]朱向榮.基于ExcelVBA的常用測量計算問題解決方案[J].地理空間信息,2013,11(5):131-133.

[9]任律,肖毅,王飛.ExcelVBA在安全監(jiān)測數(shù)據(jù)處理中的應(yīng)用[J].水電勘測設(shè)計,2008,4:24-27.

[10]宋正東,蘇先科.EXCELVBA編程在公路工程計量支付中的應(yīng)用[J].交通科技,2013,1:130-133.

乌兰察布市| 青海省| 蓬溪县| 木里| 江达县| 桑日县| 凤庆县| 辰溪县| 正镶白旗| 志丹县| 瑞安市| 清镇市| 万荣县| 孝感市| 嘉峪关市| 固始县| 清原| 右玉县| 德安县| 德化县| 彭州市| 临夏县| 延庆县| 长阳| 武山县| 景东| 德令哈市| 新竹市| 鲁甸县| 惠来县| 灵璧县| 乌拉特中旗| 商南县| 香河县| 当阳市| 囊谦县| 大冶市| 双桥区| 凉山| 历史| 无极县|