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

        ?

        VBA程序接口在儀表設(shè)計中的應(yīng)用

        2016-11-22 07:43:43任小龍宋國春
        化工自動化及儀表 2016年2期
        關(guān)鍵詞:二次開發(fā)儀表自動

        任小龍 宋國春

        (北京石油化工工程有限公司西安分公司,西安 710075)

        VBA程序接口在儀表設(shè)計中的應(yīng)用

        任小龍 宋國春

        (北京石油化工工程有限公司西安分公司,西安 710075)

        基于VBA 二次開發(fā)工具,給出AutoCAD PID圖自動生成儀表索引表和坐標文件自動生成儀表位置圖的設(shè)計思路與主要程序。實際應(yīng)用結(jié)果表明:該程序可極大地減少設(shè)計儀表時的工作量和人為誤差。

        VBA程序 儀表設(shè)計 儀表索引表 位置圖 AutoCAD

        VBA(Visual Basic for Applications)是一種基于ActiveX技術(shù)的面向?qū)ο蟮膽?yīng)用程序開發(fā)工具,目前許多流行通用的應(yīng)用軟件,如AutoCAD及Office等都內(nèi)置了VBA開發(fā)工具,其強大的功能為各軟件的二次開發(fā)提供了一個很好的平臺。利用VBA對AutoCAD及Excel等辦公軟件進行二次開發(fā),可以成百上千倍地提高繪圖工作效率。VBA在各行各業(yè)的專業(yè)制圖工作中均有廣泛運用。

        對于石油化工行業(yè)中的儀表設(shè)計,繪制儀表索引表、儀表位置圖是一項非常重要的工作,目前工程公司的儀表設(shè)計軟件中采用INtools軟件的較少,而采用Office及AutoCAD等操作軟件者居多。因此在沒有專業(yè)軟件的幫助下,手工填寫儀表索引表、繪制儀表位置圖工作就顯得非常繁瑣。此外,設(shè)計圖完成后如果工藝或管道專業(yè)設(shè)計發(fā)生變化,對儀表文件產(chǎn)生聯(lián)鎖反應(yīng),則這些圖紙都會有影響,即便一個很小的改變(如一條管線的變化)也要重新繪制整張圖紙。因此,開發(fā)專業(yè)軟件提高儀表設(shè)計工作效率成為一種經(jīng)濟、有效的首選方式[1]。筆者介紹一種基于VBA的二次開發(fā)程序模塊,用以從AutoCAD PID圖和坐標文件中自動生成儀表索引表和位置圖,提高設(shè)計工作效率、減少人為誤差。

        1.1 AutoCAD PID圖自動生成儀表索引表

        儀表索引表是儀表專業(yè)設(shè)計的基礎(chǔ)性文件,傳統(tǒng)做法是根據(jù)AutoCAD PID圖等工藝條件,人為判斷回路類型,然后手動完成索引。如果要實現(xiàn)計算機自動生成索引表,則有兩個問題需要解決:從AutoCAD PID圖獲取所需的儀表信息至Excel表格;利用獲取的儀表信息按照規(guī)定的順序判斷回路類型并生成索引表。

        1.1.1建立AutoCAD和Excel之間的通信

        為了將AutoCAD PID圖中的儀表信息反映到Excel中,需要建立AutoCAD和Excel之間的通信[2],在此,筆者基于ActiveX自動化技術(shù)采用內(nèi)置函數(shù)來實現(xiàn)。在VBA編程中,首先聲明一個指定類ID的對象變量,并用Create Object函數(shù)創(chuàng)建Excel引用。引用當(dāng)前激活狀態(tài)Excel中的索引表程序如下:

        Dim Excelapplication As Excel.Application

        Dim Excelworkbook As Workbook

        Dim Excelworksheet As Worksheet

        Set Excelapplication=GetObject(,"excel.application")

        Set Excelworkbook=Excelapplication.ActiveWorkbook

        Set Excelworksheet=Excelapplication.ActiveWorkbook.Sheets("索引表")

        1.1.2創(chuàng)建并定義儀表塊

        利用AutoCAD的塊功能建立標準儀表塊并定義必要的屬性,如儀表功能號、回路號、儀表類型及信號類型等,具體見表1。由于就地、PLC及DCS等儀表圖標的不同需分別建立塊。在繪制PID圖時儀表專業(yè)需要工藝專業(yè)密切合作,儀表專業(yè)向工藝專業(yè)提交標準儀表塊,工藝人員負責(zé)填寫儀表功能號、回路號及管道號等,儀表和信號類型待工藝提交后由儀表專業(yè)填寫。

        表1 AutoCAD建立的標準儀表塊屬性

        注:儀表圖標中的橫線可不集成在塊中,這樣可根據(jù)儀表功能選擇是否為虛線。

        1.1.3從AutoCAD PID圖中提取儀表信息至Excel

        為了將AutoCAD PID圖中的儀表信息提取至Excel,AutoCAD提供了兩種方式。首先利用VBA編寫程序,主要代碼如下:

        Set adSS=ThisDrawing.SelectionSets.Item("xzj")′創(chuàng)建選擇集“adSS”

        Set adSS=ThisDrawing.SelectionSets.Add("xzj")′添加對象至選擇集

        For Each elem In adSS′遍歷選擇集

        If StrComp(Elem.EntityName,"AcDbBlockReference",1)=0 Then′判斷是否為塊對象

        If Elem.HasAttributes Then Array=Elem.GetAttributes′獲取屬性

        If Elem.Name="DCS" then′判斷塊名是否為DCS儀表塊

        Excelworksheet.Cells(i,1)=Array(0).TextString′讀取屬性值輸出至Excel表格

        其次,AutoCAD還支持一種較為簡便的圖形化屬性提取方法。在AutoCAD界面中點擊菜單→工具→屬性提取,彈出提取向?qū)Р⒏鶕?jù)所選塊和屬性導(dǎo)出至Excel文件。但這種方法的弊端是AutoCAD PID圖中所含塊不同,導(dǎo)出的表格列屬性數(shù)量也會變化,不便于后續(xù)程序自動生成儀表索引。

        1.1.4儀表信息排序與生成索引表

        從AutoCAD中獲取儀表信息至Excel后,可以按照字母順序排序,如此生成的索引信息按類型和位號依次排列整齊且便于查找。Excel VBA程序逐條讀取儀表位號[3],根據(jù)不同位號的功能標志生成不同的回路。程序從第一個字符開始判斷,一直判斷到最后一位功能號為止。功能號根據(jù)ISA 5.1設(shè)定[4],如FICA為F(流量)、I(顯示)、C(調(diào)節(jié))、A(報警)。需要注意的是,塊屬性需要根據(jù)儀表是否是本安型來判斷是否需要增加安全柵。同時,由于塊屬性引入PID圖號,因此可將多張PID圖放于同一文件中一次生成索引,從而簡化操作、提高效率。

        1.2利用坐標文件自動生成儀表位置圖

        由于VBA程序開發(fā)接口是互通的也是雙向的,因此AutoCAD VBA可以非常方便地讀取Excel中的坐標數(shù)據(jù),從而為其自動生成儀表位置圖提供可行性[5]。利用坐標文件自動生成儀表位置圖的具體開發(fā)流程如圖1所示。

        圖1 利用坐標文件自動生成儀表位置圖的開發(fā)流程

        1.2.1開發(fā)方法

        通常儀表坐標由管道專業(yè)PDS(Plant Design System)軟件獲取,但它只包括儀表位號和位置坐標信息,無法判斷儀表具體類型,這就需要結(jié)合儀表索引表進行數(shù)據(jù)整合,整合后的具體數(shù)據(jù)信息見表2。

        表2 結(jié)合索引表整合后的數(shù)據(jù)信息

        首先對儀表位置圖中不同的圖形儀表、閥門分別建立塊,如溫度、壓力、流量、液位及閥門塊等。其中,相同功能、不同類型的表也需要分開,如渦街、電磁及差壓式流量計等。塊的屬性包括儀表位號、標高、接線箱號和電纜號信息。RADAR塊位置圖例如圖2所示,其中接線箱號需要根據(jù)現(xiàn)場儀表的布置情況手動填入。

        圖2 RADAR塊位置圖例

        根據(jù)坐標數(shù)據(jù)插入儀表塊[6]。在獲取坐標數(shù)據(jù)后,儀表塊可通過AutoCAD二次開發(fā)的簡單命令流對應(yīng)插入,主要代碼如下:

        Dim BlockReference As AcadBlockReference′定義塊對象

        Set BlockReference=ThisDrawing.ModelSpace.InsertBlock(插入點坐標,插入塊名稱,XScal,YScal,ZScal,Angle)′在模型空間中插入塊對象,其中Scal為插入塊的三維比例,可根據(jù)實際調(diào)整;Angle為圖塊插入時的旋轉(zhuǎn)角度

        插入儀表塊填入屬性值。varAttributes=Block Reference.GetAttributes是用于存儲圖塊Block Reference屬性的變體數(shù)組,varAttributes用圖塊對象的Get Attributes方法獲得插入圖塊的屬性,然后逐個更改屬性值:

        varAttributes(0).textstring=Excelworksheet.Cells(i,1)

        varAttributes(1).textstring=Excelworksheet.Cells(i,2)

        1.2.2注意的問題

        為保證儀表位置與廠區(qū)布置圖AutoCAD坐標相對應(yīng),需要找到數(shù)據(jù)和圖形的對應(yīng)關(guān)系。最簡單的方法就是在PDS中選取任意一個基點,然后將廠區(qū)布置圖的基點移至AutoCAD的絕對坐標,這樣插入的儀表塊位置是基于同一坐標體系的,避免了轉(zhuǎn)換坐標的問題。

        由于Excel表格中包含所有的儀表信息,因而應(yīng)根據(jù)各裝置的分層情況通過儀表三維坐標中的z坐標設(shè)置數(shù)據(jù)過濾分層撒點。

        2 使用情況

        利用該VBA程序自動生成的儀表位置圖在榆林靖邊和神木某項目中投入運用后,設(shè)計人員在完成儀表選型后可直接生成索引表,校核人員只需核對PID圖是否有誤或有無變化而不需要核對是否與PID圖不符,為自校和校核贏得寶貴時間,在一定程度上保證了設(shè)計文件的質(zhì)量,而且生產(chǎn)質(zhì)量大幅提高,在節(jié)省時間、減少人為錯誤的同時,提高了工作效率,為保證整個工程進度打下了良好基礎(chǔ)。

        3 結(jié)束語

        筆者利用VBA對AutoCAD及Excel等辦公軟件進行二次開發(fā),采用面向?qū)ο蟮某绦蛟O(shè)計方案,設(shè)計了自動生成儀表索引表和儀表位置圖程序模塊。實際應(yīng)用表明,筆者開發(fā)的VBA程序方便靈活,包含設(shè)計文件的所有要素,可以高效、快速、準確地生成索引表和位置圖,且對于設(shè)計方案改變造成的返工工作量很小。

        [1] 郭非,范琳,付榮申,等.利用Office VBA自動生成相關(guān)儀表設(shè)計文件[J].石油化工自動化,2012,48(4):63~65.

        [2] 張帆.AutoCAD VBA二次開發(fā)教程[M].北京:清華大學(xué)出版社,2006.

        [3] 伍云輝.完全手冊:Excel VBA辦公應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2008.

        [4] ANSI/ISA-5.1-2009,Instrumentation Symbols and Identification[S].North Carolina:The ISA Standards and Practices Department,2009.

        [5] 梁騰偉.用AutoCAD VBA自動生成儀表位置圖[J].化工自動化及儀表,2015,42(4):430~432.

        [6] 邱榮茂,王大鳴,張濤,等.基于VBA的線路縱斷面圖的自動繪制[J].工程圖學(xué)學(xué)報,2010,31(2):26~32.

        ApplicationofVBAProgramInterfaceinInstrumentDesign

        REN Xiao-long,SONG Guo-chun

        (Xi’anCompanyofBeijingPetrochemicalEngineeringCo.,Ltd.,Xi’an710075,China)

        Basing on VBA development tools, making use of AutoCAD PID and PDS coordinate files to automatically generate instrument index and instrument location plan was presented to show that this procedure can greatly reduce the workload and the error in designing the instrument.

        VBA program, instrument design, instrument index, location plan, AutoCAD

        TH865

        B

        1000-3932(2016)02-0144-04

        2015-06-25

        猜你喜歡
        二次開發(fā)儀表自動
        ◆ 儀表
        ◆ 儀表
        儀表
        自動捕盜機
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        基于STM32的自動喂養(yǎng)機控制系統(tǒng)
        電子測試(2018年10期)2018-06-26 05:53:36
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        關(guān)于自動駕駛
        汽車博覽(2016年9期)2016-10-18 13:05:41
        Stefan Greiner:我們?yōu)槭裁葱枰詣玉{駛?
        人妻在线日韩免费视频| 国产性虐视频在线观看| 国产精品麻豆va在线播放| 国产裸拍裸体视频在线观看| 99久久久久国产| 日本肥老熟妇在线观看| 五月婷婷六月丁香久久综合| 99精品久久精品一区二区| 久久免费看少妇高潮v片特黄| 99久久久69精品一区二区三区| 女同在线网站免费观看| 久久天堂av综合合色| 中文字幕人妻丝袜乱一区三区| 国产精品三级在线专区1| 精品国产av一区二区三区| 亚洲av无码无线在线观看| 日日躁夜夜躁狠狠久久av| 精品三级久久久久久久| 白白色最新福利视频二| 97se狠狠狠狠狼鲁亚洲综合色| 欧美变态口味重另类在线视频| 国产AV高清精品久久| 三级日本理论在线观看| 免费网站看av片| 亚洲人成综合网站在线| 99久久免费精品色老| 日韩女同精品av在线观看| 久久精品噜噜噜成人| 亚洲春色AV无码专区在线播放| 久久伊人久久伊人久久| 国产精品国产三级国产aⅴ下载| 午夜福利92国语| 99re国产电影精品| 国产精品亚洲一区二区三区在线| 欧美xxxx做受欧美| 国产精品深田咏美一区二区| 人妻色中文字幕免费视频| 亚洲免费观看视频| 无码任你躁久久久久久| 中文亚洲AV片在线观看无码| 日韩精品一区二区三区乱码|