天天看點

基于OpenCASCADE的三維工廠浏覽程式的開發

<a href="mailto:[email protected]">[email protected]</a>

摘要:本文簡要介紹了借助于開源的幾何造型核心OpenCASCADE把從AVEVA Plant(PDMS)中導出的資料重新以三維展示,類似AVEVA Review的功能;以及利用OCC的資料交換功能子產品,将導出的資料轉換成常見三維資料标準存儲格式,便于其它CAD之間的資料交換,類似Mechanical Equipment Interface的功能。

關鍵字:AVEVA Plant、PDMS、AVEVA Review、OpenCASCADE、STEP、IGES、STL

工廠設計系統是工程設計人員利用計算機進行工廠模型設計的輔助工具。随着目前計算機軟、硬體的飛速發展,我國經濟建議規模的日益擴大,在設計施工機關進行工程招标投标,都需要有快速有效的反應速度。工廠設計系統正是幫助工程技術人員提高設計效率的強有力工具。

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來對勞動者進行工廠安全和裝置的操作性上的教育訓練。

基于OpenCASCADE的三維工廠浏覽程式的開發

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系統的資料交換的接口程式;

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

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 2. Contents of a document

如上圖所示,架構樹的第一個标簽(label)是根标簽(root)。每個标簽(label)有個以整數表示的标号(tag)。由目前标簽的标号到根标簽的标号,可以得到一個惟一的标号清單,如:0:1:2:1。

每個标簽(label)可以一些屬性(attribute),這些屬性可以包含資料。每個屬性由GUID來區分。标簽最重要的性質是其入口隻是資料架構的一個位址。

将DARs導出的資料結合OCC的程式架構,得到結果如下圖3所示:

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 3. Export Model and Show in OCAF

為了顯示PDMS的模型,需要提取出模型類型及相應的位置、朝向資料等。如下圖所示為一個裝置中的一個圓柱資料,讀取其中的Type、Position、Orientation、及Diameter、Height的屬性,可以用來對一個圓柱進行造型。

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 4. Attributes of Cylinder in PDMS

對管子和型材部件,需要讀取其規格書SPEC中引用的标準部件庫的模型資料。

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 5. Attributes of Flange Componet

如上圖所示為一個法蘭(Flange)部件的部件資料。在設計子產品中部件的spref屬性找到其部件的catref,根據catref得到其部件定義的資料。部件包含點集(Point set)、形集(Geometry set)、資料集(Data set)等,若隻需要顯示部件形狀,隻需處理其形集Gmref中的幾何形狀資料。

如下圖所示為從PDMS中導出的簡單裝置模型資料到OCC中顯示的效果:

基于OpenCASCADE的三維工廠浏覽程式的開發
基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 6. Export Model to OCC

AVEVA提供了一個機械裝置的接口用于将STEP AP203檔案導入到3D模型中,和把模型資料轉換成STEP AP203格式與其它CAD系統進行資料交換。如下圖所示:

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 7. Mechanical Equipment Interface of AVEVA

OCC的Data Exchange子產品提供了豐富的資料轉換功能。如下圖所示:

基于OpenCASCADE的三維工廠浏覽程式的開發

Figure 8. Data Exchange module of OCC

使用OCC的程式架構(OCAF)将資料轉換成上圖所示的格式是非常容易的。

基于OpenCASCADE的三維工廠浏覽程式的開發

通過使用DARs對AVEVA PDMS的資料進行導出,對PDMS的資料結構有了更深入的認識。通過使用OCC對導出的模型資料進行顯示,測試了OCC的基本實體的造型算法和顯示算法。對相對複雜些的模型進行顯示時,OCC的速度還是不錯的。若隻對簡單實體進行造型時,OCC算法應該還是比較正确的。

若需要将PDMS的資料導入到其它CAD系統中,使用OCC還是能完成任務的。另外OCC是開源免費的,不會因軟體授權而産生額外費用。唯一的不足就是可能有些OCC的算法不正确,而解決這些bug可能比較麻煩。

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