999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VBA程序接口在儀表設計中的應用

2016-11-22 07:43:43任小龍宋國春
化工自動化及儀表 2016年2期
關鍵詞:二次開發設計

任小龍 宋國春

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

VBA程序接口在儀表設計中的應用

任小龍 宋國春

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

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

VBA程序 儀表設計 儀表索引表 位置圖 AutoCAD

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

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

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

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

1.1.1建立AutoCAD和Excel之間的通信

為了將AutoCAD PID圖中的儀表信息反映到Excel中,需要建立AutoCAD和Excel之間的通信[2],在此,筆者基于ActiveX自動化技術采用內置函數來實現。在VBA編程中,首先聲明一個指定類ID的對象變量,并用Create Object函數創建Excel引用。引用當前激活狀態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創建并定義儀表塊

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

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

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

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

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

Set adSS=ThisDrawing.SelectionSets.Item("xzj")′創建選擇集“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界面中點擊菜單→工具→屬性提取,彈出提取向導并根據所選塊和屬性導出至Excel文件。但這種方法的弊端是AutoCAD PID圖中所含塊不同,導出的表格列屬性數量也會變化,不便于后續程序自動生成儀表索引。

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

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

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

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

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

1.2.1開發方法

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

表2 結合索引表整合后的數據信息

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

圖2 RADAR塊位置圖例

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

Dim BlockReference As AcadBlockReference′定義塊對象

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

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

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

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

1.2.2注意的問題

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

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

2 使用情況

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

3 結束語

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

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

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

[3] 伍云輝.完全手冊:Excel VBA辦公應用開發詳解[M].北京:電子工業出版社,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].工程圖學學報,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

猜你喜歡
二次開發設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 综合五月天网| 中文字幕在线欧美| 91探花国产综合在线精品| 成人亚洲天堂| 毛片网站在线播放| 免费啪啪网址| 国产日本欧美亚洲精品视| 无码高清专区| 97国产在线播放| 欧美一区二区三区国产精品| 国产91在线|中文| 国产福利影院在线观看| 国产91透明丝袜美腿在线| 四虎国产精品永久在线网址| 99在线免费播放| 色综合久久久久8天国| 日韩精品一区二区三区免费| 国产91九色在线播放| 国产福利免费视频| 欧美中文字幕在线视频| 青青青伊人色综合久久| 亚洲人成人无码www| 欧美成人二区| 国产大全韩国亚洲一区二区三区| 在线亚洲小视频| 园内精品自拍视频在线播放| 色综合天天操| 一级毛片免费观看不卡视频| 99热这里只有精品久久免费| 激情综合激情| 88国产经典欧美一区二区三区| 国产迷奸在线看| 秋霞午夜国产精品成人片| 日韩精品一区二区三区大桥未久| 大学生久久香蕉国产线观看| 国产精品极品美女自在线网站| 亚洲精品无码高潮喷水A| 欧美日韩精品在线播放| 国内丰满少妇猛烈精品播| 女人毛片a级大学毛片免费| 亚洲精品无码AⅤ片青青在线观看| 亚洲欧美自拍一区| 蜜桃视频一区二区| 少妇人妻无码首页| 不卡无码h在线观看| 亚洲AV无码不卡无码| 综合人妻久久一区二区精品| 中文成人在线视频| 亚洲午夜国产精品无卡| 国产清纯在线一区二区WWW| 亚洲精品免费网站| 男人天堂伊人网| 精品一区二区三区无码视频无码| 亚洲综合欧美在线一区在线播放| 国产精品无码一二三视频| 性激烈欧美三级在线播放| 中文字幕首页系列人妻| 久久99这里精品8国产| 正在播放久久| 婷婷五月在线视频| 欧美精品亚洲精品日韩专区| 欧美在线网| 亚洲区欧美区| 国产在线无码一区二区三区| 午夜无码一区二区三区| 青青久久91| 女人av社区男人的天堂| 国产麻豆福利av在线播放 | 天天综合色网| 伊人中文网| 无码乱人伦一区二区亚洲一| 日韩毛片在线视频| 青青久视频| 日韩欧美综合在线制服| 国产综合日韩另类一区二区| 老司国产精品视频| 2020最新国产精品视频| 欧美特级AAAAAA视频免费观看| 高h视频在线| 亚洲中久无码永久在线观看软件| 波多野结衣无码AV在线| 毛片免费试看|