• 
    

    
    

      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.

      宕昌县| 平湖市| 乐安县| 开平市| 阳山县| 青田县| 霍州市| 城口县| 衢州市| 建瓯市| 永新县| 永城市| 商丘市| 密山市| 太白县| 平谷区| 阜新市| 张家口市| 鄂托克旗| 磐安县| 祁阳县| 呼玛县| 布尔津县| 嵩明县| 丽水市| 普陀区| 公安县| 隆林| 石狮市| 五原县| 紫阳县| 全椒县| 博爱县| 同江市| 习水县| 泰和县| 新晃| 错那县| 泗阳县| 庄浪县| 古丈县|