基于OpenCASCADE的三維工廠瀏覽程序的開發
eryar@163.com
摘要:本文簡要介紹了借助于開源的幾何造型內核OpenCASCADE把從AVEVA Plant(PDMS)中導出的數據重新以三維展示,類似AVEVA Review的功能;以及利用OCC的數據交換功能模塊,將導出的數據轉換成常見三維數據標準存儲格式,便于其它CAD之間的數據交換,類似Mechanical Equipment Interface的功能。
關鍵字:AVEVA Plant、PDMS、AVEVA Review、OpenCASCADE、STEP、IGES、STL
一、引言 Introduction
工廠設計系統是工程設計人員利用計算機進行工廠模型設計的輔助工具。隨著當前計算機軟、硬件的飛速發展,我國經濟建議規模的日益擴大,在設計施工單位進行工程招標投標,都需要有快速有效的反應速度。工廠設計系統正是幫助工程技術人員提高設計效率的強有力工具。
PDMS(Plant Design Management System)是英國劍橋CAD中心從1974年起與Isopipe and Akzo Engineering公司合作開發的,1977年后作為產品進入市場,至今已有3000多個用戶,遍及30多個國家。我國目前也有很多用戶。
PDMS的核心是一功能強大的多用戶項目數據庫,配合使用1:1全尺寸的三維實體實體造型系統。項目設計進程中的所有詳細信息都進入數據庫,包括元件的幾何屬性與連接屬性等。項目的規模和復雜程度不受限制。
PDMS包括許多集成模塊:如三維建模、圖紙生成、工廠瀏覽等,功能強大。在當前的版本中,還提供與應力分析軟件CAESAR的接口,與Intergraph的FrameWorks的接口等。PDMS對數據庫的安全性也做了很多工作,可以使用NT授權,及分配設計人員對相關數據庫的權限。
AVEVA Review可以對三維工廠模型進行真實化的渲染,且對模型的規模和復雜程度不作限制。可對RVM、STEP、IGES、SAT的模型文件進行渲染。這樣對模型的審核就變得非常便捷,并且可用AVEVA Review來對勞動者進行工廠安全和裝置的操作性上的培訓。
Figure 1. AVEVA Review rendered picture
Open CASCADE(簡稱OCC)平臺是由法國Matra Datavision公司開發的CAD/CAE/CAM軟件平臺,可以說是世界上最重要的幾何造型基礎軟件平臺之一。開源OCC對象庫是一個面向對象C++類庫,用于快速開發設計領域的專業應用程序。OCC主要用于開發二維和三維幾何建模應用程序,包括通用的或專業的計算機輔助設計CAD系統、制造或分析領域的應用程序、仿真應用程序或圖形演示工具。OCC通過有機組織的C++庫文件提供了六個模塊。可視化模塊作為OCC的核心部分,是可視化技術的具體體現。
OCC對象庫提供如下服務:
1、提供二維和三維幾何造型建模的工具:創建持久化的類,諸如:棱鏡、圓柱、圓錐、圓環;演示布爾操作(加法,減法和交叉);應用嵌條,倒角和拉伸來拉伸結構;采用沖抵,去殼,變空,掃描制造結構模型;計算表面特性諸如表面、體積、重心、曲率;用投影,插值,近似計算幾何體;管理實現對象的顯示與操作行為的可視化服務,如三維旋轉、變焦、遮光等操作。
2、應用框架主要有非幾何應用數據和幾何學的融匯、模型參數化以及創建圖形用戶界面的框架(GUI)等特色。
3、提供OCC模型輸入輸出功能和標準版的數據交換功能,如IGES和STEP。由于OCC技術是一個開源的軟件開發平臺,因此在數值建模軟件如CAD\CAE\CAM的開發上得到了廣泛的應用。
本文簡要介紹在OCC幾何造型平臺上,將從PDMS中導出的數據進行顯示,并將其數據導成常見的標準文件格式。本文的意義在于:
u 對開源幾何造型平臺OCC的基本實體的造型能力進行一點檢驗;
u 對AVEVA PDMS產品進行深一步的研究;
u 為有使用AVEVA Review需求的用戶提供一個替代品,從而減輕軟件授權的費用;
u 為有使用Mechanical Equipment Interface需求的用戶也提供一個方法,使其有能力開發與其它CAD系統的數據交換的接口程序;
二、數據的導出 Export Model
AVEVA提供了三種二次開發的方式:DARs(Data Access Routines)、C#、PML(AVEVA Programmable Macro Language)。
DARs是FORTAN77的一些函數,可用于創建與其它程序的接口。如編寫生成材料報表程序、管子應力分析程序、生成軸測圖程序等。使用DAR就像在PDMS中的命令中使用命令一樣方便,對數據的導航和定位方式相似。
C#是AVEVA使用.NET來二次開發的推薦語言,功能是這三種二次開發方式中最強大的。
PML是AVEVA內置二次開發語言,簡單易學,可以在AVEVA中很快開發出實用的程序。
為了使用OCC提供的框架,這里選用DARs來進行模型數據的導出。DARs提供從模型中提取屬性必要的函數。這些函數分為以下幾種類型:
u 初始化(Initialisation);
u 數據導航(Navigation);
u 讀取屬性(Attribute retrieval);
u 錯誤處理(Error Handling);
u 功能函數(Utility routines);
上述這些函數對數據都只有讀的權限,不能對數據庫進行寫和更新。DARs程序的運行需要FORTRAN的兩個庫文件:libifcoremd.dll和libmmd.dll,并且要確保d3lib.dll庫文件的環境變量的正確設置。在AVEVA的安裝目錄中有個dars文件夾,其中有使用DARs的庫和示例程序。參考這些文件,對熟悉C++的人來說使用DARs還是很簡單的。
OpenCASCADE的數據框架(Data Framework)對來自不同程序的數據提供了統一的處理環境。這就簡化了數據交換、修改,也保證了數據統一性、穩定性。實現方法需要用到以下部分:
u 標號Tha tag
u 標簽The label
u 屬性The attribute
Figure 2. Contents of a document
如上圖所示,框架樹的第一個標簽(label)是根標簽(root)。每個標簽(label)有個以整數表示的標號(tag)。由當前標簽的標號到根標簽的標號,可以得到一個惟一的標號列表,如:0:1:2:1。
每個標簽(label)可以一些屬性(attribute),這些屬性可以包含數據。每個屬性由GUID來區分。標簽最重要的性質是其入口只是數據框架的一個地址。
將DARs導出的數據結合OCC的程序框架,得到結果如下圖3所示:

Figure 3. Export Model and Show in OCAF
三、數據的顯示 Display Model
為了顯示PDMS的模型,需要提取出模型類型及相應的位置、朝向數據等。如下圖所示為一個設備中的一個圓柱數據,讀取其中的Type、Position、Orientation、及Diameter、Height的屬性,可以用來對一個圓柱進行造型。
Figure 4. Attributes of Cylinder in PDMS
對管子和型材部件,需要讀取其規格書SPEC中引用的標準部件庫的模型數據。
Figure 5. Attributes of Flange Componet
如上圖所示為一個法蘭(Flange)部件的部件數據。在設計模塊中部件的spref屬性找到其部件的catref,根據catref得到其部件定義的數據。部件包含點集(Point set)、形集(Geometry set)、數據集(Data set)等,若只需要顯示部件形狀,只需處理其形集Gmref中的幾何形狀數據。
如下圖所示為從PDMS中導出的簡單設備模型數據到OCC中顯示的效果:
Figure 6. Export Model to OCC
四、數據的交換 Data Exchange
AVEVA提供了一個機械設備的接口用于將STEP AP203文件導入到3D模型中,和把模型數據轉換成STEP AP203格式與其它CAD系統進行數據交換。如下圖所示:
Figure 7. Mechanical Equipment Interface of AVEVA
OCC的Data Exchange模塊提供了豐富的數據轉換功能。如下圖所示:
Figure 8. Data Exchange module of OCC
使用OCC的程序框架(OCAF)將數據轉換成上圖所示的格式是非常容易的。
五、結論 Conclusion
通過使用DARs對AVEVA PDMS的數據進行導出,對PDMS的數據結構有了更深入的認識。通過使用OCC對導出的模型數據進行顯示,測試了OCC的基本實體的造型算法和顯示算法。對相對復雜些的模型進行顯示時,OCC的速度還是不錯的。若只對簡單實體進行造型時,OCC算法應該還是比較正確的。
若需要將PDMS的數據導入到其它CAD系統中,使用OCC還是能完成任務的。另外OCC是開源免費的,不會因軟件授權而產生額外費用。唯一的不足就是可能有些OCC的算法不正確,而解決這些bug可能比較麻煩。
若對本文或對AVEVA PDMS、OCC有任何意見、建議都可與我取得聯系,電子郵箱地址為:eryar@163.com 。
六、參考資料 Bibliography
1. AVEVA Review website
2. AVEVA Mechanical Equipment Interface User Guide
3. AVEVA Data Access Routines User Guide
4. AVEVA Data Model Reference Manual
5. Overview of OCCT Library
6. OCCT Modeling Data User's Guide
7. OCCT Application Framework User's Guide
8. OCCT Modeling Algorithms User's Guide