1. 程式人生 > >基於OpenCASCADE的三維工廠瀏覽程式的開發

基於OpenCASCADE的三維工廠瀏覽程式的開發

基於OpenCASCADE的三維工廠瀏覽程式的開發

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

關鍵字AVEVA PlantPDMSAVEVA ReviewOpenCASCADESTEPIGESSTL

一、引言 Introduction

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

PDMSPlant Design Management System)是英國劍橋CAD中心從1974年起與Isopipe and Akzo Engineering公司合作開發的,1977年後作為產品進入市場,至今已有3000多個使用者,遍及30多個國家。我國目前也有很多使用者。

PDMS的核心是一功能強大的多使用者專案資料庫,配合使用11全尺寸的三維實體實體造型系統。專案設計程序中的所有詳細資訊都進入資料庫,包括元件的幾何屬性與連線屬性等。專案的規模和複雜程度不受限制。

PDMS包括許多整合模組:如三維建模、圖紙生成、工廠瀏覽等,功能強大。在當前的版本中,還提供與應力分析軟體CAESAR的介面,與Intergraph

FrameWorks的介面等。PDMS對資料庫的安全性也做了很多工作,可以使用NT授權,及分配設計人員對相關資料庫的許可權。

AVEVA Review可以對三維工廠模型進行真實化的渲染,且對模型的規模和複雜程度不作限制。可對RVMSTEPIGESSAT的模型檔案進行渲染。這樣對模型的稽核就變得非常便捷,並且可用AVEVA Review來對勞動者進行工廠安全和裝置的操作性上的培訓。

AVEVA Review rendered picture

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模型輸入輸出功能和標準版的資料交換功能,如IGESSTEP。由於OCC技術是一個開源的軟體開發平臺,因此在數值建模軟體如CAD\CAE\CAM的開發上得到了廣泛的應用。

本文簡要介紹在OCC幾何造型平臺上,將從PDMS中匯出的資料進行顯示,並將其資料導成常見的標準檔案格式。本文的意義在於:

u 對開源幾何造型平臺OCC的基本實體的造型能力進行一點檢驗;

u 對AVEVA PDMS產品進行深一步的研究;

u 為有使用AVEVA Review需求的使用者提供一個替代品,從而減輕軟體授權的費用;

u 為有使用Mechanical Equipment Interface需求的使用者也提供一個方法,使其有能力開發與其它CAD系統的資料交換的介面程式;

二、資料的匯出 Export Model

AVEVA提供了三種二次開發的方式:DARsData Access Routines)、C#、PMLAVEVA Programmable Macro Language)。

DARsFORTAN77的一些函式,可用於建立與其它程式的介面。如編寫生成材料報表程式、管子應力分析程式、生成軸測圖程式等。使用DAR就像在PDMS中的命令中使用命令一樣方便,對資料的導航和定位方式相似。

C#是AVEVA使用.NET來二次開發的推薦語言,功能是這三種二次開發方式中最強大的。

PMLAVEVA內建二次開發語言,簡單易學,可以在AVEVA中很快開發出實用的程式。

為了使用OCC提供的框架,這裡選用DARs來進行模型資料的匯出。DARs提供從模型中提取屬性必要的函式。這些函式分為以下幾種型別:

u 初始化(Initialisation);

u 資料導航(Navigation);

u 讀取屬性(Attribute retrieval);

u 錯誤處理(Error Handling);

u 功能函式(Utility routines);

上述這些函式對資料都只有讀的許可權,不能對資料庫進行寫和更新。DARs程式的執行需要FORTRAN的兩個庫檔案:libifcoremd.dlllibmmd.dll,並且要確保d3lib.dll庫檔案的環境變數的正確設定。在AVEVA的安裝目錄中有個dars資料夾,其中有使用DARs的庫和示例程式。參考這些檔案,對熟悉C++的人來說使用DARs還是很簡單的。

OpenCASCADE的資料框架(Data Framework)對來自不同程式的資料提供了統一的處理環境。這就簡化了資料交換、修改,也保證了資料統一性、穩定性。實現方法需要用到以下部分:

u 標號Tha tag

u 標籤The label

u 屬性The attribute

 Contents of a document

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的模型,需要提取出模型型別及相應的位置、朝向資料等。如下圖所示為一個裝置中的一個圓柱資料,讀取其中的TypePositionOrientation、及DiameterHeight的屬性,可以用來對一個圓柱進行造型。

Attributes of Cylinder in PDMS

Figure 4. Attributes of Cylinder in PDMS

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

Attributes of Flange Componet

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系統進行資料交換。如下圖所示:

Mechanical Equipment Interface of AVEVA

Figure 7. Mechanical Equipment Interface of AVEVA

OCCData Exchange模組提供了豐富的資料轉換功能。如下圖所示:

Data Exchange module of OCC

Figure 8. Data Exchange module of OCC

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

clip_image022

五、結論 Conclusion

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

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

若對本文或對AVEVA PDMSOCC有任何意見、建議都可與我取得聯絡,電子郵箱地址為: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