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

Figure 3. Export Model and Show in OCAF
三、數(shù)據(jù)的顯示 Display Model
為了顯示PDMS的模型,需要提取出模型類型及相應(yīng)的位置、朝向數(shù)據(jù)等。如下圖所示為一個設(shè)備中的一個圓柱數(shù)據(jù),讀取其中的Type、Position、Orientation、及Diameter、Height的屬性,可以用來對一個圓柱進(jìn)行造型。
Figure 4. Attributes of Cylinder in PDMS
對管子和型材部件,需要讀取其規(guī)格書SPEC中引用的標(biāo)準(zhǔn)部件庫的模型數(shù)據(jù)。
Figure 5. Attributes of Flange Componet
如上圖所示為一個法蘭(Flange)部件的部件數(shù)據(jù)。在設(shè)計模塊中部件的spref屬性找到其部件的catref,根據(jù)catref得到其部件定義的數(shù)據(jù)。部件包含點(diǎn)集(Point set)、形集(Geometry set)、數(shù)據(jù)集(Data set)等,若只需要顯示部件形狀,只需處理其形集Gmref中的幾何形狀數(shù)據(jù)。
如下圖所示為從PDMS中導(dǎo)出的簡單設(shè)備模型數(shù)據(jù)到OCC中顯示的效果:
Figure 6. Export Model to OCC
四、數(shù)據(jù)的交換 Data Exchange
AVEVA提供了一個機(jī)械設(shè)備的接口用于將STEP AP203文件導(dǎo)入到3D模型中,和把模型數(shù)據(jù)轉(zhuǎn)換成STEP AP203格式與其它CAD系統(tǒng)進(jìn)行數(shù)據(jù)交換。如下圖所示:
Figure 7. Mechanical Equipment Interface of AVEVA
OCC的Data Exchange模塊提供了豐富的數(shù)據(jù)轉(zhuǎn)換功能。如下圖所示:
Figure 8. Data Exchange module of OCC
使用OCC的程序框架(OCAF)將數(shù)據(jù)轉(zhuǎn)換成上圖所示的格式是非常容易的。
五、結(jié)論 Conclusion
通過使用DARs對AVEVA PDMS的數(shù)據(jù)進(jìn)行導(dǎo)出,對PDMS的數(shù)據(jù)結(jié)構(gòu)有了更深入的認(rèn)識。通過使用OCC對導(dǎo)出的模型數(shù)據(jù)進(jìn)行顯示,測試了OCC的基本實(shí)體的造型算法和顯示算法。對相對復(fù)雜些的模型進(jìn)行顯示時,OCC的速度還是不錯的。若只對簡單實(shí)體進(jìn)行造型時,OCC算法應(yīng)該還是比較正確的。
若需要將PDMS的數(shù)據(jù)導(dǎo)入到其它CAD系統(tǒng)中,使用OCC還是能完成任務(wù)的。另外OCC是開源免費(fèi)的,不會因軟件授權(quán)而產(chǎn)生額外費(fèi)用。唯一的不足就是可能有些OCC的算法不正確,而解決這些bug可能比較麻煩。
若對本文或?qū)?strong>AVEVA PDMS、OCC有任何意見、建議都可與我取得聯(lián)系,電子郵箱地址為: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