(中國五環工程有限公司,湖北 武漢 430223)
目前,三維設計已成為化工設計的主流設計方式,PDMS是通用的三維設計平臺之一。盡管如此,二維圖紙作為重要的圖紙信息載體,仍不可或缺,如設備裝配圖、化工廠平面總圖等仍采用二維設計。在工程設計中,經常需要將二維圖紙中的信息錄入到三維平臺中,對于這項工作,現在還是采用人力居多,本篇討論如何將CAD格式二維圖紙信息載入三維平臺并實現CAD和PDMS的聯動操作。
大多工程設計軟件都是采用Windows操作系統,其進程非常復雜,在此只討論進程間的數據共享問題。打開PDMS軟件和CAD軟件,二者分屬兩個進程,擁有各自獨立的內存空間,彼此的內存空間是受保護的。如果需要實現進程間的通訊,一般有3種方式。
(1)調用同一個DLL(動態連接庫),DLL中的全局數據可以被調用DLL的所有進程共享,雖然可以通過DLL進行進程間數據共享,但從數據安全的角度考慮,并不提倡這種方法,而且在實際應用中,采用這種方式實現軟件之間聯動的難度較大,穩定性較差。
(2)采用套接字(Sockets)實現通訊。套接字是TCP/IP網絡通信的基本操作單元,成對出現,分別是客戶端套接字和服務端套接字,可實現不同主機之間的進程進行雙向通信,是使用非常廣泛的通訊方式,幾乎所有的網絡通訊都使用套接字作為通訊底層。如果采用這種方式進行CAD和PDMS聯動操作,相當于客戶端套接字和服務端套接字都在本機。
(3)采用管道(Pipe)實現通訊。管道(Pipe)是一種具有兩個端點的通信通道:有一端句柄的進程可以和有另一端句柄的進程通信,對于兩個進程之間的通訊我們采用命名管道(Named Pipe),其具有簡單高效的特點,非常適合作為CAD和PDMS聯動操作的通訊方式。
PDMS有兩種常用的二次開發方式,即PML和.NET。PML(Programmable Macro Language)是一種面向對象的腳本語言,只能在PDMS軟件內執行。PDMS軟件自帶的很多程序就是使用PML開發的。使用PML二次開發的優勢是運行前不需要編譯,可提高開發效率;不足之處是相對于.NET,其功能較少,不能進行內存、指針和通訊操作。.NET存在兩種實現方法,即.NET Addin和PML.NET,主要是在VisualStudio環境下使用C#進行二次開發。通過PDMS提供的接口,利用C#可讀取/修改PDMS數據庫內容。使用C#進行二次開發的優勢是可借用微軟.NET內豐富的類庫,進而大大擴增程序功能。不足之處是程序調試不方便,C#編譯好的dll文件被PDMS加載后,不能卸載,因此不能對程序源碼實時修改。
常見的CAD二次開發方式有AutoLISP、ObjectARX/ObjectDBX、AutoCAD.NET等。自AutoCAD 2006開始,Autodesk為CAD二次開發提供了.NET API支持。AutoCAD.NET API是ObjectARX庫在.NET平臺的封裝,可被任何支持.NET的語言(VB,C#,C++等)訪問。
AutoCAD.NET API內有許多不同類型的對象。每個CAD組件(直線,文字,標注,線型,圖層,塊等)均在AutoCAD.NET API中對應一個對象。
本文采用AutoCAD.NET方式進行二次開發。開發語言為C#。在CAD命令行中輸入NETLOAD,選擇需要載入(編譯通過)的dll,就可以完成二次開發的應用。
打開CAD程序,命令行輸入NETLOAD,選擇PDMSCADAddin.dll文件并打開,然后在命令行輸入自定義命令“PDMS”,開始監聽來自PDMS的指令(見圖1)。

圖1 加載自定義命令集
使用自主開發(PML)的設備建模工具與CAD圖紙內設備管嘴數據進行聯動,在PDMS內批量創建管嘴,操作流程如下。
(1)打開設備圖紙,加載PDMSCADAddin.dll,開始監聽PDMS指令。
(2)在PDMS內設備建模工具面板上單擊“CAD pick”按鈕,向CAD發送指令(見圖2)。

圖2 設備建模工具面板
(3)CAD接收指令后執行聯動操作,本例為框選管口表,然后回車確認(見圖3)。

圖3 CAD設備詳圖中的管口表
(4)返回PDMS,各管口創建完畢,效果見圖4和圖5。

圖4 PDMS中設備管口目錄樹

圖5 PDMS中創建的管口
(5)利用設備建模工具的調整管口方位及標高功能,實現精確定位即可。
(1)打開總圖圖紙,加載PDMSCADAddin.dll,開始監聽PDMS指令。
(2)在PDMS內總圖輔助工具面板上單擊“CAD Draw”按鈕,向CAD發送指令(見圖6)。

圖6 PDMS總圖輔助工具面板
(3)CAD接收指令后執行聯動操作,本例為選擇多條直線,然后回車確認(見圖7)。

圖7 某項目總圖
(4)返回PDMS,總圖道路創建完畢,效果見圖8。

圖8 PDMS中創建的總圖道路及圖框
經過對Windows操作系統和CAD、PDMS的研究以及實際編程操作,證明采用管道這種方式實現Windows系統中兩個獨立進程通訊的可行性,驗證了CAD和PDMS聯動操作的可行性。進一步推廣使用,可以在實際工作中節省大量時間,并提高效率和準確性。