江保軍 鮑景明 翟家海 楊明偉
摘要:本文首先對(duì)PDMS軟件的設(shè)備建模方式進(jìn)行了概述,同時(shí)比較了不同設(shè)備建模方式的特點(diǎn),結(jié)合PDMS軟件的二次開發(fā)方法,重點(diǎn)介紹了.NET二次開發(fā)技術(shù)在PDMS設(shè)備建模中的應(yīng)用,通過典型的示例代碼,詳細(xì)描述了二次開發(fā)的流程,與軟件自帶的設(shè)備建模方法相比,通過二次開發(fā),可以大大提高設(shè)備的建模效率。
關(guān)鍵詞:設(shè)備建模;二次開發(fā);PDMS
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2020)08-0160-03
0 引言
PDMS(Plant Design Management System)是英國(guó)AVEVA公司開發(fā)的三維工廠設(shè)計(jì)系統(tǒng),自從1977年第一個(gè)PDMS商業(yè)版本發(fā)布以來,PDMS就成為大型、復(fù)雜工廠設(shè)計(jì)項(xiàng)目的首選設(shè)計(jì)軟件系統(tǒng)。PDMS軟件可以通過網(wǎng)絡(luò)實(shí)現(xiàn)多專業(yè)的協(xié)同設(shè)計(jì),針對(duì)專業(yè)特點(diǎn)劃分為多個(gè)模塊,包括項(xiàng)目管理、元件庫(kù)、三維設(shè)計(jì)、軸測(cè)圖生成等,其中三維設(shè)計(jì)又包括設(shè)備、管道、結(jié)構(gòu)、暖通、電纜橋架等不同模塊,配管設(shè)計(jì)是PDMS軟件的強(qiáng)項(xiàng),而設(shè)備建模功能與專業(yè)的三維設(shè)計(jì)軟件相比相對(duì)較弱。由于PDMS軟件開放性較好,可以通過PML或.NET等編程技術(shù)對(duì)軟件的基本功能進(jìn)行增強(qiáng)和完善,因此,可以通過二次開發(fā)技術(shù),改善設(shè)備建模的操作方式,大大提高設(shè)備建模效率。
1 PDMS設(shè)備建模概述
PDMS軟件中的設(shè)備是由多個(gè)基本體Primitive拼裝起來的,基本體參考設(shè)備定位點(diǎn)生成和定位,構(gòu)成設(shè)備主要的基本體有圓柱、矩形、圓臺(tái)、圓盤和管嘴等,PDMS軟件自身支持的設(shè)備生成方法有以下幾種:
(1)基本設(shè)備模板。基本設(shè)備模板包含立式設(shè)備、臥式設(shè)備、換熱器、儲(chǔ)罐、空冷和泵等6大類設(shè)備,基本設(shè)備模板參數(shù)不能通過界面修改,通?;驹O(shè)備模板用來生成設(shè)備本體模型,需要再根據(jù)圖紙要求添加和定位管嘴。
(2)參數(shù)化設(shè)備模板。參數(shù)化設(shè)備模板的中可以定義管嘴的信息,但是一旦新的設(shè)備基本體組成或管嘴數(shù)量發(fā)生變化,該模板也不能完全適合,仍然需要進(jìn)行完善。
(3)搭積木方式。通過逐一建立基本體和管嘴,并完成基本體之間的定位,由于涉及到大量移動(dòng)、旋轉(zhuǎn)等定位操作,該方式建模效率最低。
(4)讀取宏文件或通過軟件接口輸入模型。讀取宏文件的前提是別的項(xiàng)目已經(jīng)有同樣的設(shè)備模型,不屬于設(shè)備建模范疇。而通過軟件接口輸入第三方軟件的模型,在PDMS軟件中識(shí)別為一個(gè)塊,需要重新定義管嘴的信息,使用起來并不方便。
2 設(shè)備建模二次開發(fā)
2.1 二次開發(fā)方法
PDMS軟件為半開放型的軟件,可以很方便進(jìn)行二次開發(fā),主要的開發(fā)工具有PML可編程宏語(yǔ)言和.NET開發(fā)平臺(tái)。其中PML語(yǔ)言簡(jiǎn)單易學(xué),與PDMS無縫連接,而新版本的PDMS開始支持利用.NET進(jìn)行二次開發(fā),.NET與PML相比有獨(dú)特的優(yōu)勢(shì),可以完成PML不支持的功能,同時(shí)又可以利用.NET平臺(tái)的大量類庫(kù),其生成的文件為dll文件,有利于保護(hù)程序的源代碼。本文利用.NET在PDMS12.0 SP4軟件平臺(tái)上進(jìn)行設(shè)備建模的二次開發(fā)。
2.2 設(shè)備數(shù)據(jù)庫(kù)的層次
設(shè)備數(shù)據(jù)庫(kù)的層次如圖1所示,設(shè)備單元位于Zone層下,設(shè)備下分子設(shè)備、基本體,子設(shè)備下包含基本體。
2.3 程序開發(fā)流程
設(shè)備建模程序需要按照設(shè)備的次序依次輸入構(gòu)成設(shè)備本體的基本體尺寸參數(shù),根據(jù)設(shè)計(jì)圖紙依次輸入各基本體上的管嘴參數(shù),包括管嘴的定位參數(shù)和規(guī)格尺寸。設(shè)備建模的程序流程如圖2所示。
開發(fā)完成的程序主界面如圖3所示,程序默認(rèn)由底部向上部(對(duì)于臥式設(shè)備由右側(cè)向左側(cè))依次添加基本體,然后分別選擇各基本體,添加管嘴信息。對(duì)于設(shè)置完成的數(shù)據(jù)信息可以進(jìn)行保存和讀取。
(1)創(chuàng)建設(shè)備單元。按照?qǐng)D1的數(shù)據(jù)庫(kù)接口層次,創(chuàng)建設(shè)備單元前需要選擇Zone層次的對(duì)象,下面的示例代碼演示了在當(dāng)前選擇的Zone層下創(chuàng)建了一個(gè)設(shè)備單元,然后通過SetAttribute方法分別設(shè)置了設(shè)備的名稱(NAME)和位置(POSI)屬性。
(2)創(chuàng)建基本體。按照?qǐng)D1的數(shù)據(jù)庫(kù)接口層次,基本體由設(shè)備單元?jiǎng)?chuàng)建,基本體的類型通過單元類型變量DbEle- mentTypeInstance.CYLINDER指定,然后根據(jù)不同的基本體類型,通過SetAttribute方法分別設(shè)置基本體的幾何尺寸及位置參數(shù),下面的代碼演示了如何創(chuàng)建圓柱體類型的基本體。
(3)創(chuàng)建管嘴。按照?qǐng)D1的數(shù)據(jù)庫(kù)接口層次,管嘴由設(shè)備單元?jiǎng)?chuàng)建,下面的示例代碼演示了一個(gè)管嘴的創(chuàng)建及屬性的設(shè)置方法。其中管嘴的等級(jí)參數(shù)通過CATR參數(shù)進(jìn)行設(shè)置,其參數(shù)類型為DbElement,通過GetElement方法獲取,可以同時(shí)設(shè)置管嘴的標(biāo)準(zhǔn)、壓力等級(jí)和公稱直徑。
3 結(jié)語(yǔ)
本文通過實(shí)例演示了二次開發(fā)技術(shù)在PDMS設(shè)備建模中的應(yīng)用,與軟件自帶的設(shè)備建模功能相比,采用二次開發(fā)技術(shù),可以完全代替內(nèi)置的設(shè)備基本模板和設(shè)備參數(shù)化模板,并且在參數(shù)的輸入上更加便捷,更符合設(shè)備圖紙尺寸標(biāo)注習(xí)慣,對(duì)于系統(tǒng)模板外的設(shè)備,由于完全取消了各單元之間的定位操作,可以大大提高建模效率。
參考文獻(xiàn)
[1] 張博,陳冬霞.利用PML語(yǔ)言開發(fā)PDMS建模[J].數(shù)字技術(shù)與應(yīng)用,2014(6):189+191.
[2] 王小科,呂雙.C#程序設(shè)計(jì)標(biāo)準(zhǔn)教程[M].北京:人民郵電出版社,2009.