楊文博,韓華偉
(1.煙臺中集來福士海洋工程有限公司,山東煙臺 264000;2.中集海洋工程研究院有限公司,山東煙臺 264003)
CATIA二次開發(fā)技術(shù)在海洋工程管路設(shè)計(jì)中的應(yīng)用
楊文博1,韓華偉2
(1.煙臺中集來福士海洋工程有限公司,山東煙臺 264000;2.中集海洋工程研究院有限公司,山東煙臺 264003)
文章研究基于CAA(Component Application Architecture)方式,在Windows XP平臺上對CATIA進(jìn)行二次開發(fā)的關(guān)鍵技術(shù),提出了一種嶄新的基于CATIA海洋平臺管路設(shè)計(jì)的理念,實(shí)現(xiàn)了Oracle數(shù)據(jù)庫中的數(shù)據(jù)與三維模型的同步管理。
CATIA二次開發(fā);CAA Oracle數(shù)據(jù)庫;海洋工程
海洋工程設(shè)計(jì)與制造工作量大,建造周期長,模型數(shù)據(jù)量大。而管路專業(yè)又是海洋工程中的重要組成部分,因此,對平臺中管路設(shè)計(jì)信息、加工信息、材料、管路焊接報(bào)驗(yàn)進(jìn)行標(biāo)準(zhǔn)化管理尤為重要,這樣可滿足多個項(xiàng)目同時設(shè)計(jì)和材料分類管理的要求,對于批量建造項(xiàng)目,可以直接出圖,無需進(jìn)行模型設(shè)計(jì),提高了工作效率。
海洋工程管路模型設(shè)計(jì)可以采用更為直觀的三維模型設(shè)計(jì)來提高用戶的視覺效果,達(dá)到高效高精度的設(shè)計(jì)目標(biāo),而CATIA作為一款強(qiáng)大的三維軟件,為客戶提供了產(chǎn)品的全周期管理,從產(chǎn)品的原理圖設(shè)計(jì)到模型的詳細(xì)設(shè)計(jì),再到模型數(shù)據(jù)管理(PMD)等可以實(shí)現(xiàn)用戶的跨平臺協(xié)同操作,并提供二次開發(fā)編程工具和接口。通過二次開發(fā),CATIA軟件成為海洋工程產(chǎn)品設(shè)計(jì)和制造的首選軟件平臺。然而,如果要提高設(shè)計(jì)效率和實(shí)現(xiàn)材料的全生命周期管路,就要建立完整的規(guī)范,使用軟件直接把三維模型轉(zhuǎn)化成二維設(shè)計(jì)圖。為此,本文詳細(xì)介紹了CATIA開發(fā)解決方案的一般步驟、主要接口的調(diào)用方法和管路專業(yè)的二次開發(fā)關(guān)鍵技術(shù),并將二次開發(fā)技術(shù)應(yīng)用到CATIA管路全生命周期解決方案。
作為一款工程軟件,CATIA可以根據(jù)客戶的特殊需求,定制相應(yīng)的解決方案,并通過客戶化的接口,實(shí)現(xiàn)外部數(shù)據(jù)和CATIA內(nèi)部數(shù)據(jù)的無縫銜接。當(dāng)前,主要可以通過兩種方式對CATIA的內(nèi)置函數(shù)進(jìn)行調(diào)用操作:內(nèi)置宏語言和C++或者JAVA CAA應(yīng)用組件架構(gòu)。兩種方式來開發(fā)各有利弊。
1.1 使用宏(Macro)調(diào)用CATIA內(nèi)置函數(shù)接口
宏語言是CATIA提供的一種開發(fā)語言,可以通過錄制設(shè)計(jì)員的操作,來獲取語言代碼,再通過自己的修改,來實(shí)現(xiàn)對CATIA內(nèi)部函數(shù)的調(diào)用。該方法允許客戶獲取CATIA的數(shù)據(jù)模型,其優(yōu)點(diǎn)是簡單易學(xué),操作方便;在調(diào)試程序時,不需要關(guān)閉CATIA。缺點(diǎn)是只適用于簡單的操作[1],而且 DS只開放了部分VBA的接口。
1.2 使用組件應(yīng)用架構(gòu)(CAA–RADE)調(diào)用CATIA內(nèi)置函數(shù)接口
CAA中的C++和Java應(yīng)用接口,是通過COM+的組件模式開發(fā)。該方法功能強(qiáng)大,可以訪問CATIA的任何開放的接口并可以直接調(diào)用C++現(xiàn)有的應(yīng)用程序來實(shí)現(xiàn)所需功能,并根據(jù)客戶需求,定義適合自己需要的編碼體系和架構(gòu)體系[1]。
CAA使用面向?qū)ο蟮腃++或更為靈活的JAVA語言,采用COM+架構(gòu),來調(diào)用CATIA內(nèi)置函數(shù)。由于 COM具有很好的獨(dú)立性和可擴(kuò)展性,使得CAA這種開發(fā)方式更加標(biāo)準(zhǔn)化,代碼執(zhí)行率更高。CAA在程序中能調(diào)用所有的微軟組件結(jié)構(gòu),兼容C++和JAVA的接口函數(shù),使開發(fā)更加靈活、簡單。CATIA提供的內(nèi)置函數(shù)接口都以(*.h)的形式保存在CATIA安裝目錄下,可以直接調(diào)用。
不同的頭文件包含了不同的功能,如CATBaseUnknown.h包含了 CATIA基類接口[2],CATIProduct.h包含了對CATIA三維模型的所有操作,CATIDrawing.h包含了多CATIA二維圖的操作等。CAA的架構(gòu)如圖1所示。
2.1 CATIA管路生命周期構(gòu)建思想
人工模擬腸液的配制:磷酸氫二鉀6.89 g,加500 mL蒸餾水溶解,再用0.4 mol/L NaOH溶液將其pH調(diào)至6.8,另取胰蛋白酶10 g加適量蒸餾水溶解,將兩液混合后,加水定容至1 000 mL。
CATIA管路生命周期的設(shè)計(jì)是基于在實(shí)際項(xiàng)目中管子的實(shí)際操作流程來實(shí)現(xiàn)的,從CATIA三維設(shè)計(jì)到材料下發(fā),再熬管路加工,再到船上安裝,再到焊接報(bào)驗(yàn)等一系列的標(biāo)準(zhǔn)操作流程。CATIA管路生命周期后臺數(shù)據(jù)庫包括基礎(chǔ)數(shù)據(jù)庫和模型數(shù)據(jù)庫,基礎(chǔ)數(shù)據(jù)庫包括加工信息、材料信息、安裝位置等信息。模型數(shù)據(jù)庫包括CATIA的CGR模型信息和生存的二維PDF信息。判斷標(biāo)準(zhǔn)的數(shù)據(jù),目的是為了減少和消除計(jì)算機(jī)在運(yùn)行時人為的干預(yù)問題。通過將設(shè)計(jì)基礎(chǔ)數(shù)據(jù)放入數(shù)據(jù)庫可以減少輸入和輸出的次數(shù)[3],數(shù)據(jù)示意圖見圖2。
圖1 CAA架構(gòu)
圖2 數(shù)據(jù)示意圖
CATIA管路生命周期系統(tǒng)的建立和運(yùn)行按照下面的方法實(shí)施:
1)在CATIA軟件中進(jìn)行二次開發(fā),利用CATIA自身的接口,構(gòu)建如圖3和圖4所示的用戶界面。程序通過Agent機(jī)制,實(shí)現(xiàn)對主窗口的調(diào)用,實(shí)現(xiàn)數(shù)據(jù)的輸入與輸出。
2)把三維模型轉(zhuǎn)化成二位設(shè)計(jì)圖,并統(tǒng)計(jì)出材料列表,如圖5和圖6所示。
2.2 CATIA管路生命周期系統(tǒng)的高效性
傳統(tǒng)的CATIA管路出小票需要借助第三方軟件SB3DS才能完成,首先在CATIA中完成建模,
然后把CATIA模型導(dǎo)入到SB3DS軟件中,在這個過程中由于兩種軟件的不兼容性,會導(dǎo)致有些模型數(shù)據(jù)丟失,需要靠經(jīng)驗(yàn)在SB3DS中修改,然后才能出小票,在這個過程中需要不斷修改模型,導(dǎo)入SB3DS,效率很低;而CATIA則可以直接從三維模型中導(dǎo)出小票,減少了中間環(huán)節(jié)[4],以GM4-D項(xiàng)目102PB分段出小票為例,見表1。
圖3 程序命令工具條
圖4 系統(tǒng)主界面
圖5 管路小票
圖6 材料表
表1 出小票
由表1可以看出,僅一個分段一個人就可以比以前節(jié)約10.5h,那整個項(xiàng)目就可以節(jié)約大量的時間。
2.3.1 CAA對MFC(Microsoft Foundational Class)應(yīng)用程序的調(diào)用
以前CATIA用戶數(shù)據(jù)輸入和操作界面主要使用CATIA提供的對話框進(jìn)行開發(fā)。在本系統(tǒng)中調(diào)用了一部分微軟的界面設(shè)計(jì)功能,節(jié)約了開發(fā)時間,提高了代碼的執(zhí)行效率,使用 Microsoft Visual Studio2005提供的框架,采用COM方式調(diào)用CATIA接口和MFC函數(shù)。
CATIA API支持一些WIN32 SDK的函數(shù)。如調(diào)用LoadLibrary()函數(shù),獲取了動態(tài)鏈接庫。這三個函數(shù)是調(diào)用.dll文件的關(guān)鍵。在程序外部編譯好.dll文件后,CAA可以直接調(diào)用,提高CATIA二次開發(fā)的效率[5]。
2.3.2 CAA對Oracle數(shù)據(jù)庫的操作
本系統(tǒng)采用了Oracle數(shù)據(jù)庫存儲和 Microsoft Visual Studio2005 C++的開發(fā)方式。系統(tǒng)采用了OCCI方法訪問數(shù)據(jù)庫,為了能使用OCCI庫,必須在工程中直接引入#include<o(jì)cci.h>頭文件,以使編譯器能正確編譯。OCCI頭文件包含三個指針:
Environment*、 Connection*和 Statement*。Environment*通常被用來創(chuàng)建一個數(shù)據(jù)連接環(huán)境Environment::createEnvironment(Environment::Defau lt)。通過 Statement*可以返回一個結(jié)果記錄集并通過OCCI里面的方法,提取到所需要的數(shù)據(jù)。在使用 Connection*接口時,可以調(diào)用本身的方法createConnection(),直接傳入?yún)?shù),包括用戶名、密碼和數(shù)據(jù)庫標(biāo)識。ResultSet是一個記錄集對象,用來存放從數(shù)據(jù)庫中取到的數(shù)據(jù)。OCCI操作Oracle數(shù)據(jù)庫更加靈活,速度更快,與其他操作數(shù)據(jù)庫方式相比,它提供了對數(shù)據(jù)庫更多的操作功能,如數(shù)據(jù)鎖定、游標(biāo)控制、數(shù)據(jù)回滾等。使用OCCI的基本方法如下:
1)必須引入OCCI.h頭文件;
2)用Environment對象訪問Oracle數(shù)據(jù)庫;
3)利用建立好的連接,通過Connection對象執(zhí)行SQL命令,或利用Recordset對象取得結(jié)果記錄集進(jìn)行查詢、處理;
4)使用完畢后關(guān)閉連接,釋放對象。
首先,利用C++語言調(diào)用Environment類型的指針*env,通過這個指針就可以調(diào)用createConnection(username,pwd,db)建立數(shù)據(jù)庫連接,成為訪問到目標(biāo)數(shù)據(jù)庫后,會返回一個指針 con,通過con->createStatement(sql)創(chuàng)建一個執(zhí)行SQL語句的命令,調(diào)用state->executeQuery()語句就可以執(zhí)行SQL語句,訪問數(shù)據(jù)庫記錄,進(jìn)行數(shù)據(jù)存儲、修改等操作。
CATIA管路模型數(shù)據(jù)提取、傳遞、處理和存儲是一個龐大的數(shù)據(jù)處理的過程,本文提出了通過調(diào)用CATIA本身的內(nèi)置函數(shù)接口,借助外部數(shù)據(jù)庫來自動處理管路數(shù)據(jù)。
本文提出的CATIA管路生命周期系統(tǒng),實(shí)現(xiàn)了CATIA和Oracle數(shù)據(jù)庫的數(shù)據(jù)無縫連接,為批量化造船提供數(shù)據(jù)源,為企業(yè)數(shù)據(jù)信息集成及管路打下了良好的基礎(chǔ)。
隨著CATIA軟件廣泛用于海洋平臺、航天科技等領(lǐng)域,應(yīng)用CAA組件對CATIA軟件進(jìn)行二次開發(fā)會越來越重要,由于其本身結(jié)構(gòu)的層次化和嚴(yán)謹(jǐn),這項(xiàng)二次開發(fā)技術(shù)會受到越來越多的重視。
[1]CAA Doc Online: CAA V5 Encyclopedia (CATIA幫助手冊)[Z].1999-2007.
[2]CAA V5 Help Viewer (CATIA 幫助手冊)[Z].1999-2007.
[3]董伊鑫, 席平.基于CATIA的界面二次開發(fā)[J].航空制造技術(shù), 2006(12): 83-86.
[4]楊流輝, 張和明.基于COM組件的CATIA產(chǎn)品信息集成技術(shù)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用, 2001, 37(24): 132-134.
[5]周仙娥, 魯墨武, 趙海星.基于CAA的CATIA二次開發(fā)的研究[J].科技信息, 2008(36): 73-74.
CCS頒發(fā)首張歐盟游艇認(rèn)證證書
2016年11月6日,在第九屆中國(廈門)國際游艇展覽會上,中國船級社(CCS)向廈門瀚盛游艇有限公司頒發(fā)了首張游艇歐盟認(rèn)證(CE)證書。據(jù)悉,自今年9月CCS希臘公司獲得歐盟游艇及配套產(chǎn)品的認(rèn)證資格后,CCS“歐盟游艇技術(shù)標(biāo)準(zhǔn)研究”項(xiàng)目組積極推進(jìn)認(rèn)證服務(wù),完成了對瀚盛游艇制造的豪華休閑競賽帆船“縱橫46”號模式B的CE型式檢驗(yàn),簽發(fā)了首張游艇CE證書,掀開了CCS游艇檢驗(yàn)的新篇章。
來源:中國船級社
Application of CATIA Secondary Development Technology in Offshore Tube Design
Yang Wen-bo1, Han Hua-wei2
(1.Yantai CIMC Raffles offshore Ltd., Shandong Yantai, 264000, China; 2.CIMC Offshore Business Co., Ltd., Shandong Yantai, 264003, China)
The study of the paper is based on CAA (Component Application Architecture) method.Aiming at the key technology of CATIA secondary development on the platform of Windows XP, the paper presents a new theory based on CATIA offshore tube design, which achieve the synchronism management of the data in the Oracle database and the 3D model.
CATIA secondary development; CAA Oracle database; offshore
P751
A
10.14141/j.31-1981.2016.06.006
楊文博(1986—),男,本科,研究方向:CATIA軟件的二次開發(fā)。