王鈺銘 陳 龍 楊昌南 中國石油集團東北煉化工程有限公司吉林設計院 吉林 132002
?
SmartPlant 3D管道自動命名系統(tǒng)開發(fā)
王鈺銘*陳龍楊昌南中國石油集團東北煉化工程有限公司吉林設計院吉林132002
摘要SmartPlant3D軟件管線號手動輸入過程中經(jīng)常出現(xiàn)各種錯誤,通過利用編程手段實現(xiàn)管線號的自動生成,從而提高輸入效率,規(guī)范輸入格式。
關鍵詞SP3D管道命名系統(tǒng)
*王鈺銘:工程師。2011年畢業(yè)于長春工業(yè)大學高分子化學與物理專業(yè)。主要從事配管設計與計算機輔助設計研究工作。
聯(lián)系電話:(0432)63958445,E-mail: jly_wym5195@petrochina.com.cn。
近年來除了使用成熟的PDS、PDMS軟件進行三維設計外,開始逐步實施了Intergraph公司的SmartPlant3D(簡稱SP3D)軟件的使用與推廣工作,該軟件以數(shù)據(jù)為中心,規(guī)則驅動,微軟公司Microsoft Office形式的友好界面,包括公共環(huán)境、設備、管道、支吊架、電儀、暖通、成品與報告多個模塊,接口開發(fā),與同是SP系列軟件的工藝、儀表、電氣系統(tǒng)軟件、材料管理軟件在信息管理平臺下進行數(shù)據(jù)傳輸與校驗,并能夠滲透到施工、采購、工廠運維中,是近年來最先進的工廠設計軟件[1]。
1問題提出
SP3D軟件在國外得到了廣泛的應用,而在國內工程公司的應用過程中并不是十分順利,該軟件前臺簡單,這就意味著后臺需要大量的復雜設置,國內用戶均經(jīng)歷了這個過程,推廣時只考慮了應用,忽略了軟件的定制與開發(fā),很多智能化的功能并沒有很好的體現(xiàn),其中管道模塊中的管線號pipeline與管段號pipe run的命名就是其中一項,見圖1。
圖1 Pipe run自定義名稱輸入過程
手動輸入過程繁瑣,很容易在輸入過程中產(chǎn)生錯誤,管道專業(yè)在項目中配置人員較多,難免會造成名稱的五花八門,直接影響到管道軸測圖與平面布置圖的質量,該問題成了管道專業(yè)SP3D使用過程中亟待解決的問題。
2解決措施
SP3D軟件擁有開放的接口,研究與編制自動命名程序,不難解決管道命名管理問題。以南京某項目為例,Pipeline為物料號-單元流水號,例P-1001,共6位字符;Pipe run物料號-單元流水號-管徑-管道材料等級-保溫代號-厚度,例P-1001-4″-E3P0-IC40,共19位字符。如果實現(xiàn)只輸入流水號即可生成完整Pipeline與Pipe Run號,那么Pipeline輸入效率可以提高1倍,Pipe Run輸入效率至少可以提高4倍,如果將以往的項目進行分類匯總,編制成命名子項集到自動命名系統(tǒng)中將大幅提高今后項目的復用性。
3程序編制準備
3.1開發(fā)程序選擇
開發(fā)程序選擇對目標軟件的兼容行、操控性都有著至關重要的影響,本程序選擇了當今比較主流的四種編程軟件進行分析選擇,優(yōu)缺點見表1。
命名子項屬于SP3D補丁文件,需要加載到SP3D后臺中,應首先保證編程語言具有較高的安全性,以免對整個平臺造成干擾,其次編程工具應與我院現(xiàn)在所使用的操作系統(tǒng)有良好的兼容性,這樣有利于系統(tǒng)平穩(wěn)運行。從表中不難看出,利用Microsoft Visual Studio 2010開發(fā)目標軟件優(yōu)勢明顯,我院現(xiàn)在有的64位PC客戶端可有效彌補該開發(fā)軟件的弊端。
表1 編程軟件優(yōu)缺點
3.2邏輯方案設計
就SP3D軟件建立Pipeline與Pipe run而言都存在號碼中所包含的物料號、管道等級、管徑等屬性信息,SP3D的這些屬性信息與命名并沒有直接關系,除單元與流水號,只需要將其調用并按照一定規(guī)則關聯(lián)即可實現(xiàn)命名的自動生成,單元信息只有Workspace Explorer System樹狀結構中可以調取,但是樹狀結構宜改、層級太多,不是穩(wěn)定的參數(shù),管道屬性對話框里雖然也可以增加單元選項,但是畢竟修改了軟件的底層程序,需要動用Intergraph公司美國總部力量,不僅耗資巨大,而且容易引起連鎖反應,所以單元信息最終按流水號處理,手動進行輸入。自動命名邏輯方案見圖2。
圖2 自動命名邏輯設計方案
3.3命名插件格式選擇與調用方案
命名插件一般有靜態(tài)鏈接庫.lib和動態(tài)鏈接庫.dll兩種格式選擇,.lib文件安裝完畢后即可使用,裝載速度比較快,但是有錯誤時需重新編制新的版本,而.dll文件程序相對獨立,更換程序時不會對主軟件本身造成影響,但是運行起來要比.lib文件慢,SP3D屬于大型的工廠設計軟件,有著極其復雜的數(shù)據(jù)結構,應保證系統(tǒng)的穩(wěn)定與可維護性,二次開發(fā)時應盡量保證插件與其應用程序的相互獨立,這一點.dll文件更有優(yōu)勢,所以最終選擇了.dll文件插件格式。
SP3D軟件與多數(shù)軟件一樣,為用戶封裝好的執(zhí)行文件,雖然為用戶提供了開放的接口,但是鑒于開發(fā)者的安全保密性,不會讓用戶二次開發(fā)后進行再次封裝,一般需要利用Win7操作系統(tǒng)的命令提示符(command)中運行regsv32注冊工具,將編制動態(tài)鏈接庫(dll文件)注冊到系統(tǒng)中供SP3D軟件調用,使其具有可執(zhí)行性,此過程一般需要應用者具有DOS系統(tǒng)操作經(jīng)驗,對普通設計人員有一定的難度,開發(fā)過程充分考慮這些客觀需求,將這事件優(yōu)化為“只要應用者單擊平臺相應的執(zhí)行按鈕,后臺即啟動上述過程,并做出是否安裝成功的提示”,為應用者提供了非常人性化的操作體驗。
3.4架構選擇
SP3D管道自動命名系統(tǒng),屬于SP3D的附屬軟件,主要起著管理命名插件的功能,編制過程中分析了B/S瀏覽器/服務器架構與C/S客戶端服務器端架構的優(yōu)缺點,認為B/S架構雖然可以掛到公司主頁上,但是沒有與SP3D軟件保持一致,界面豐富友好、安全的C/S架構更適合本附屬軟件的開發(fā)。
4程序編制
經(jīng)過開發(fā)程序選擇、邏輯方案設計、命名插件格式、架構選擇等準備工作后,對程序進行了開發(fā),分為自動命名子項說明區(qū)、安裝自動命名子項區(qū)、換膚、推出等輔助功能區(qū),編制出5套命名插件,10個dll文件,經(jīng)過測試后,鑲嵌到平臺中,最終封裝為.exe文件,使用者可根據(jù)需求安裝加載,管道自動命名系統(tǒng)操作界面見圖3。
圖3 管道自動命名系統(tǒng)操作界面
這只列出部分事件代碼程序:
private void iClose_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
System.Windows.Forms.Form[] mdiForm = this.MdiChildren;
bool openFlage = false;
foreach (Form find in mdiForm)
{
//MessageBox.Show(find.Name);
if (find.Name == "Chajian1")
{
//已打開一個窗體則激活并顯示出來
find.Activate();
openFlage = true;
break;
}
}
if (!openFlage)
{
Chajian1 c1 = new Chajian1();
c1.MdiParent = this;
c1.Show();
}
}
DLL注冊代碼
[DllImport("RouteRunNameRules.dll")]
public static extern int DllRegisterServer();//注冊時用
DLL判斷代碼
int i = DllRegisterServer();
if (i >= 0)
{
RegistryKey CLSID = Registry.ClassesRoot.OpenSubKey("CLSID");
RegistryKey RRNR = CLSID.OpenSubKey("{0396C4FF-1558-4856-9A85-59738AD89E54}");
if (RRNR != null)
{
MessageBox.Show("恭喜你,安裝成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("抱歉,安裝失敗,請聯(lián)系開發(fā)者解決!","錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
命名子項加載后,新建pipeline和新建pipe run時Name Rule選項可選擇加載過的自動命名的插件,如將命名系統(tǒng)中的5套命名子項全部加載后,新建pipeline和新建pipe run時Name Rule會有5套命名規(guī)則供使用者選擇,選擇對應的子項后,如管線號P-50001的pipeline在500單元環(huán)境下只需要輸入流水號01,選擇P這個物料屬性即可自動生成,3″-P-50001-A1B-J40的pipe run只需要在P-50001的環(huán)境下選擇管徑、等級、保溫即可自動生成,皆無需在Name中輸入,手動輸入Name時,管徑、等級、保溫等參數(shù)也是必須選擇的,見圖4。
5套命名是近10年所設計項目的提煉,今后多數(shù)項目直接從工具上安裝就可以直接使用了,解決了每個項目都去編制命名插件的周期問題,另外一方面,由于SP3D屬于C/S客戶端服務器端架構,每個參與項目的客戶端都需要安裝插件,多用戶安裝時難度較大,該工具實現(xiàn)了一鍵安裝,最后一方面是,SP3D里看這個命名規(guī)則的時候只
圖4 管道自動命名過程
能看到名稱,看不到具體的規(guī)則,平臺里點擊查看即可。
5效果驗證
抽取以往3個手動輸入Pipeline與Pipe Run的項目來驗證,抽取100條管線進行準確率進行調查,并根據(jù)利用自動命名的方法對這3個項目的100條管線進行命名,兩者進行對比,見表2。
表2 命名準確率對比情況
從表1可見,管線名稱的準確率提高明顯,自動命名的前提也是需要輸入管線參數(shù)的,所以仍然會有一些錯誤的發(fā)生,但是有助于設計水平的提高。
以表2中某石化MTBE項目抽取的100根Pipeline為例,其中共含有546個Pipe Run,手動輸入共9982個字符,自動輸入共1938個字符,設定每分鐘輸入6個字符,所需1333分鐘((9982-1938)÷6),每個工日8小時,可以節(jié)約2.3個工日。
6結語
通過對管道模塊自動命名系統(tǒng)的編制,對SP3D軟件起到了輔助作用, 一方面提高了Pipeline與Pipe Run的名稱輸入效率,另外一方面規(guī)范了輸入格式,提高了模型質量,進而提升了管道軸側圖、管道布置圖、管道絕熱一覽表等與管道名稱相關成品的質量。
參考文獻
1韓超,靳國峰. SmartPlant在油田地面三維工程設計中的應用 [J]. 油汽田地面工程.2011,30(6):73-74.
(收稿日期2015-12-02)