• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

    引言

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

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

    1 技術方案分析

    1.1 技術思路

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

    VBA提供了以Visual basic為基礎的面向對象的開發(fā)特性以及程序接口,通過VBA編程,基于ActiveX技術,實現(xiàn)AutoCAD與Excel應用程序進行通信及數(shù)據(jù)共享,如圖1所示。

    1.2 技術實施方案

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

    2 關鍵程序方案

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

    開發(fā)出框選賦值功能,框選管線號和要賦值的塊(如圖2所示),可將管線號賦值給框選內所有塊的屬性值,用于出料單時從中抽取管件的尺寸和磅級信息,流程圖如圖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 &"選擇一個管線號和要賦值的塊(可框選、多選),右鍵結束:"

    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 "賦值結束"

    sss.Delete

    End Sub

    2.3 圖紙料單輸出方案

    管線號框選賦值閥門管件后,命令直接讀取整張圖紙,將閥門管件料單自動存儲到Excel中,管件的尺寸、磅級等信息根據(jù)關聯(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

    '下面自動設置篩選過濾

    Call shaixuan

    Cells(1, 10).Select

    End Sub

    3 結束語

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

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

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

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

    參考文獻

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

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

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

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

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

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

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

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

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

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

    松桃| 班戈县| 陆良县| 林西县| 东乌珠穆沁旗| 阳江市| 武冈市| 新昌县| 岢岚县| 绥中县| 济宁市| 竹山县| 常德市| 郯城县| 嘉兴市| 阿巴嘎旗| 藁城市| 司法| 玉环县| 尼玛县| 洮南市| 财经| 萨嘎县| 广州市| 咸宁市| 嘉定区| 高雄县| 米易县| 灌云县| 安国市| 高要市| 左云县| 九龙坡区| 建平县| 上高县| 米泉市| 霞浦县| 新竹市| 赤壁市| 皮山县| 桐梓县|