章泳健,姜 川,胡朝斌,沈建強,張 坤
(常熟理工學院,常熟 215500)
實現Solidworks自動布管的專用P&ID軟件設計
章泳健,姜 川,胡朝斌,沈建強,張 坤
(常熟理工學院,常熟 215500)
隨著Solidworks布管功能在三維管道設計中的廣泛應用,針對其自動布管功能缺乏布管信息數據源XML文件的問題,利用VB和AutoLisp開發了運行于AutoCAD圖形環境的專用P&ID軟件。用戶可以在此軟件下快速繪制P&ID圖,并將布管信息輸出為Solidworks自動布管所需的XML文件,實現了二維P&ID圖與Solidworks自動布管功能的集成應用。
Solidworks;自動布管;P&ID;XML;AutoCAD;二次開發
對于基于生產過程管理的石化行業而言,高效的管道設計及相關設備的信息表達與管理是十分重要的。基于二維布管技術來設計錯綜復雜的空間管道并進行正確表達是一項很困難的工作,其生成的二維圖紙也很難被理解。隨著三維數字化技術的發展,基于三維信息建模與管理技術的三維布管技術由于其可視化的效果與高效的信息表達能力,正逐步取代傳統的二維布管技術[1,2]。目前石化行業中的先進企業正逐步使用三維管道設計軟件進行企業信息建模與三維布管設計。三維管道設計軟件可分為兩類,其中專業三維管道設計軟件專業性強、功能齊全,但上手比較困難,一般需要專業培訓,且價格非常昂貴,很難在中小化工企業得到推廣。而通用的三維設計軟件中很多也集成了管道設計功能,如在工程界被廣泛采用的Solidworks軟件就具有管道設計模塊,其設備建模能力要強于專業管道設計軟件。所以此類軟件在數字化建模的綜合能力及軟件的易用性和使用成本上具有獨特的優勢[3,4]。
用Solidworks的交互式布管功能需要在理解P&ID圖中的設備與布管信息后,交互式地根據P&ID圖逐段對管道進行建模,當布管信息很復雜時不僅效率低而且容易出錯。而自動布管功能則可以通過導入布管信息后在布管向導的引導下進行布管,不僅可以大大提高布管效率,也能保證布管的完整性與正確性。該功能通過在布管前導入包含P&ID信息的XML文件來實現的,但Solidworks并沒有提供由P&ID圖生成XML文件的工具,且XML文件的復雜性決定了不太可能手工去定義此文件,因此Solidworks的自動布管功能是不完整的,單獨使用不具備實用價值[5]。針對此問題,本文提出利用VB和AutoLisp開發一款基于AutoCAD的專用P&ID軟件的構想。使用該軟件,用戶不僅可以通過一些專用命令來快速生成P&ID圖,而且能輸出Solidworks中自動布管所需要的XML文件。
本軟件的核心功能是快速定義P&ID圖,并將P&ID圖中的相關信息經由XML文件輸出。P&ID圖中不僅要提供設備、管件和管線等圖元的幾何信息,而且需要包含圖元的屬性信息,以表達圖元所對應的三維模型以及它們之間的連接關系。軟件設計了繪圖、屬性設置及XML輸出等功能模塊。其中,繪圖模塊能快速調用預定義的P&ID圖元庫來生成圖形,屬性設置模塊可通過對話框對每個P&ID圖元賦予屬性信息,而XML輸出模塊可以從P&ID圖中提取各圖元及圖元的屬性信息,并按照規定的語法格式輸出所需的XML文件。為了便于人機交互,軟件還設計了菜單模塊,其總體結構如圖1所示。

圖1 軟件總體結構框圖
2.1.1 設備和管件的繪制
化工設備和管件的符號在化工部HG20519.*—92標準中均有標準的圖例[6]。本模塊將這些符號制作成塊并保存到圖元庫中,用戶在繪制P&ID圖時可以直接通過專用的命令來調用并插入這些塊。為方便用戶選擇所需的圖塊,本模塊用VB編寫了設備和管件選擇對話框。其中設備對話框如圖2所示,提供了設備選擇與圖形預覽功能,并能對插入的圖塊進行比例縮放及旋轉角度的設置。對管件選擇的對話框采用類似的界面進行操作。同時,本模塊中的圖庫具有一定的可擴充性,用戶可以根據企業的實際需要增加一些特殊的設備與管件圖元,只需將圖塊文件及對應的位圖文件保存到本軟件的指定路徑即可。
2.1.2 管線的繪制
P&ID圖中的管線可用標準的多段線命令繪制,但由于要求必須按水平或豎直方向布置,所以本模塊用AutoLisp程序自定義了繪制管線命令[7]。在該程序中,先將繪圖環境設置為正交模式,并設置合適的對象捕捉,然后再調用多段線繪制管線,程序結束后再恢復原來的繪圖環境設置。

圖2 設備選擇對話框

圖3 P&ID圖元屬性設置算法流程圖
對P&ID圖元添加合理的屬性信息是生成正確的XML文件的關鍵。本模塊的目的是為了使每個P&ID圖元都具有屬性信息,以反映各個圖元所對應的三維模型以及它們之間的連接關系。AutoCAD中只有圖塊可通過定義塊屬性來實現圖元與屬性的關聯,P&ID圖中的設備與管件均是用圖塊定義的,通過定義塊屬性很容易添加屬性信息。但管線是通過多段線繪制,無法直接對其定義屬性。這里采用對管線進行屬性設置前先將其轉換為圖塊的方法來解決。當然,也可以統一將圖元的屬性信息通過鏈接外部數據庫的方法來保存,但從程序實現的難度和效率來看,通過塊屬性來實現更高效。
XML(可擴展標記語言)是一種源于HTML語言的用于各種信息交換的通用工具[8]。P&ID圖元的屬性必須嚴格按照Solidworks對XML文件語法規定確定,這樣最終輸出的XML文件才能被Solidworks識別。以設備屬性為例,X M L文件規定的設備屬性主要有<ID>、<Tag>、<Description>、<PartNumber>、<Config>,即ID號、標簽、描述、零件號、配置,因此為了保證最終輸出的XML文件正確性,我們設置的屬性必須來源于這幾個屬性。其中,標簽相當于設備的位號,是不同設備之間相互區別的標志;零件號即設備模型的存放路徑,它是P&ID圖元與三維實體模型建立聯系的橋梁。配置主要用于區分同一設備模型的不同設置。這三項屬性是Solidworks中直接用于布管的關鍵信息,必須由用戶輸入。但ID號及描述這兩種屬性在布管應用中并沒有直接用到,可以通過程序施以默認值,以簡化用戶的輸入。本模塊中實現P&ID圖元屬性設置算法的流程圖如圖3所示。程序執行過程中設計的設備屬性設置對話框如圖4所示。各項屬性可在輸入框中直接填寫,其中零件號也可通過雙擊后通過文件選擇對話框選擇相應文件來完成屬性的設置。

圖4 設備屬性對話框

圖5 遍歷查詢算法流程圖
XML文件輸出模塊就是要通過一定的算法從P&ID圖中提取出各圖元對應的屬性信息,并按照solidworks規定的語法格式輸出XML格式文件。選擇該模塊功能后,程序會先進行圖元屬性的完整性檢查。如果發現有圖元的屬性沒有設置,會跳出警告對話框,提示“有部分P&ID圖元屬性未設置,請設置!”,并且將對應的圖元高亮顯示,以提醒用戶。如果圖元屬性設置完了,就會跳出XML文件保存對話框,選擇保存路徑及輸入文件名稱后確認,程序就會按照如圖5所示的遍歷查詢算法遍歷整個P&ID圖元,獲取它們的屬性參數,并按要求輸出XML文件。
為提高上述各模塊的用戶友好性,就需要開發AutoCAD菜單欄,將對應開發的命令通過菜單的形式進行顯示。菜單欄的開發方法主要有:通過編寫菜單文件來重新定制菜單、通過CUI組件定制菜單、通過VB等高級語言對AutoCAD進行二次開發來定制菜單[9]。
通過VB對AutoCAD進行二次開發來定制的菜單欄,是通過編程調用AutoCAD提供的有關菜單欄定制的API函數來實現的[10],編譯后可生成可直接執行的VB應用程序。運行應用程序后會自動打開AutoCAD軟件并且會自動加載軟件菜單欄。關閉AutoCAD后,軟件菜單欄也會隨之卸載。本名為“專用P&ID軟件”的菜單欄設計就采用此方法,運行后自動在AutoCAD中添加一菜單欄,其下有繪圖、屬性設置以及XML輸出三個菜單項,而繪圖菜單項下又有三個子菜單,分別為設備、管件以及管線,如圖6所示。
軟件按既定設想開發完成后,需要通過測試來發現程序設計中可能存在的問題,并提供軟件的可靠性。測試對象的設計對測試的效率和效果至關重要,本測試設計了設備包括容器、反應釜和泵及包括閥門和三通等管件的典型工藝流程,其P&ID圖如圖7所示。
測試過程如下:首先,完成與P&ID圖元對應的容器、反應釜和泵等設備及包括閥門和三通等管件的三維模型準備,并放置在某文件目錄中。使用本軟件繪制P&ID圖,然后對每個P&ID圖元進行正確的屬性設置,在完成屬性完整性檢查后輸出XML文件(部分內容如圖8所示)。最后,在Solidworks軟件中建立一裝配文件,在完成上述設備的布局設計后,就能在導入的XML文件引導下一步步完成設備的自動布管了,如圖9所示。

圖6 菜單欄

圖7 用于測試的典型工藝P&ID圖

圖8 由P&ID圖導出的XML文件部分內容

圖9 Solidworks自動布管過程
通過以上軟件測試,最終驗證并通過了軟件設計的各方面要求。在與某化工企業合作的罐區數字化建模與布管項目中,應用本軟件有效地解決了罐區管路連接復雜、手動布管費時費力的問題,順利并高效地完成了如圖10所示的罐區管道建模工作。

圖10 某化工工段罐區管道模型
通過基于AutoCAD專用P&ID軟件的開發,結合Solidworks原先并不完善的自動布管功能,形成了從二維P&ID流程圖的繪制到三維設備建模、布局及自動布管的石化企業數字化應用的解決方案。使用本軟件,用戶無需購買昂貴的專業布管軟件,也不必學習專業軟件的復雜操作,就能在易學易用的Solidworks環境下進行設備的自動布管,非常適合中小型石化企業的應用需求。
[1] 劉家倉.三維管道設計系統的研究與開發[D].大連理工大學,2006.
[2] 楊茂,江森清.工廠設計軟件在管道設計中的開發應用[J].天然氣工業,1996,03:61-63+14-15.
[3] 安銳明. SolidWorks在管道設計中的應用[J]. CAD/CAM與制造業信息化,2007,01:52-54.
[4] 孫堯.基于SolidWorks的化工廠三維設計系統開發[D].東北大學,2012.
[5] DS Solidworks公司.Solidworks管道與布線教程(2014版)[M].北京:機械工業出版社,2014.
[6] 路平.化工工藝流程圖C A D開發研究[J].國外油田工程,2003,09:41-45.
[7] 李學志,方戈亮,孫力紅.Visual LISP 程序設計(AutoCAD 2006)[M].北京:清華大學出版社,2006.
[8] 李憲文.基于XML的三維CAD模型數據交換[D].青島大學,2005.
[9] 單玉霞,王美歐.基于AutoCAD的管道儀表流程圖符號庫的開發[J].石油化工自動化,2010,01:54-56.
Design of special P&ID software to realize solidworks automatic pipe layout
ZHANG Yong-jian, JIANG Chuan, HU Chao-bin, SHEN Jian-qiang, ZHANG Kun
TG75
:A
:1009-0134(2017)08-0133-04
2017-04-17
章泳健(1971 -),男,江蘇常熟人,副教授,工學碩士,主要從事數字化設計與仿真研究。