倪海參 汪學(xué)鋒
1上海交通大學(xué)船舶海洋與建筑工程學(xué)院,上海 200030
2上海交通大學(xué)船舶海洋與建筑工程學(xué)院海洋工程國家重點(diǎn)實(shí)驗(yàn)室,上海 200030
從CATIA到TRIBON的板架結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換方法
倪海參1汪學(xué)鋒2
1上海交通大學(xué)船舶海洋與建筑工程學(xué)院,上海 200030
2上海交通大學(xué)船舶海洋與建筑工程學(xué)院海洋工程國家重點(diǎn)實(shí)驗(yàn)室,上海 200030
船舶行業(yè)不同CAD軟件間的數(shù)據(jù)交換是個(gè)倍受關(guān)注的問題,從CATIA到TRIBON的數(shù)據(jù)轉(zhuǎn)換是其中一個(gè)重要的環(huán)節(jié)。通過對船舶CAD軟件CATIA與TRIBON之間模型數(shù)據(jù)結(jié)構(gòu)的分析研究,開發(fā)了從CATIA到TRIBON的船體板架結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換方法。該方法首先分析研究CATIA結(jié)構(gòu)樹,然后通過對CATIA系統(tǒng)的二次開發(fā)提取板架結(jié)構(gòu)幾何與屬性信息,其中可以通過控制提取數(shù)據(jù)的精度來提高數(shù)據(jù)轉(zhuǎn)換過程的精度;利用外掛軟件將數(shù)據(jù)信息合并到一個(gè)文檔,按照數(shù)據(jù)映射關(guān)系將其轉(zhuǎn)換為能夠在TRIBON中進(jìn)行建模的格式文件;開發(fā)TRIBON系統(tǒng)建模模塊,最終迅速有效地完成數(shù)據(jù)的轉(zhuǎn)換。幾個(gè)板架結(jié)構(gòu)的轉(zhuǎn)換實(shí)例說明該方法能為兩個(gè)不同CAD軟件間的數(shù)據(jù)交換提供一種有效的工具。
CATIA;TRIBON;數(shù)據(jù)轉(zhuǎn)換;二次開發(fā)
近年來,在我國船舶設(shè)計(jì)制造領(lǐng)域,各船廠、科研院所均采用了數(shù)字化船舶設(shè)計(jì)系統(tǒng)[1],其中以 TRIBON,CADDS5 和 CATIA[2]為代表的船舶設(shè)計(jì)軟件正在不斷提升船舶設(shè)計(jì)水平。TRIBON是目前使用最為廣泛的船舶生產(chǎn)設(shè)計(jì)軟件之一,被稱作“船舶設(shè)計(jì)制造專家”。盡管TRIBON系統(tǒng)存在三維圖形拓?fù)湓煨湍芰Σ畹热秉c(diǎn),但是由于其實(shí)用性,仍被許多造船公司作為船舶生產(chǎn)設(shè)計(jì)的主要軟件[3]。CATIA則由于其易于建模的人性化操作界面和智能化的模型樹結(jié)構(gòu),使用戶能方便、快捷地對產(chǎn)品進(jìn)行重復(fù)修改,正在被越來越多的用戶所接受。目前,CATIA大多應(yīng)用于船舶詳細(xì)設(shè)計(jì)階段,在生產(chǎn)設(shè)計(jì)階段要根據(jù)詳細(xì)設(shè)計(jì)圖紙?jiān)赥RIBON中重新構(gòu)圖,這一過程無形中增加了船舶生產(chǎn)設(shè)計(jì)的工作量。
由于船舶軟件數(shù)據(jù)的非標(biāo)準(zhǔn)性和特殊性,至今無法完全實(shí)現(xiàn)它們之間模型數(shù)據(jù)的相互轉(zhuǎn)換,導(dǎo)致先進(jìn)設(shè)計(jì)方法不能有效展開,影響了船舶設(shè)計(jì)質(zhì)量和設(shè)計(jì)周期。CATIA與TRIBON在詳細(xì)設(shè)計(jì)和生產(chǎn)設(shè)計(jì)階段存在著嚴(yán)重的數(shù)據(jù)交換障礙,且兩者之間的數(shù)據(jù)交換尚無研究先例。CATIA系統(tǒng)與TRIBON系統(tǒng)雖然都支持IGES格式文件的導(dǎo)入和導(dǎo)出,但是當(dāng)CATIA系統(tǒng)中導(dǎo)出的IGES文件簡單地導(dǎo)入TRIBON系統(tǒng)中時(shí),模型結(jié)構(gòu)信息將會(huì)嚴(yán)重丟失。針對該問題,汪學(xué)鋒等[4]已經(jīng)著手開展了不同軟件間的數(shù)據(jù)交換研究,苗赟等[5]開發(fā)研究的TRIBON與CADDS5的數(shù)據(jù)交換接口為本文提供了研究基礎(chǔ),但是由于CAD系統(tǒng)與模型數(shù)據(jù)結(jié)構(gòu)的不同,存在著許多值得進(jìn)一步研究的地方,其中參考文獻(xiàn)[5]就可利用CADDS5軟件菜單功能直接提取數(shù)據(jù)信息。本文根據(jù)CATIA中結(jié)構(gòu)模型數(shù)據(jù)的特點(diǎn)來開發(fā)接入的提取模塊,并利用該模塊提取繁雜的模型數(shù)據(jù)。由于只有對型材庫標(biāo)準(zhǔn)構(gòu)件信息提取足夠完整才能在轉(zhuǎn)換過程中不至于丟失信息,因此為了提高數(shù)據(jù)轉(zhuǎn)換精度,本研究在提取過程中對曲線進(jìn)行了特殊處理。同時(shí),還將根據(jù)數(shù)據(jù)結(jié)構(gòu)組織特點(diǎn)開發(fā)CATIA和TRIOBN數(shù)據(jù)交換和導(dǎo)入的模塊。通過開展CATIA與TRIBON兩大船舶CAD軟件間的數(shù)據(jù)交換研究,將實(shí)現(xiàn)CATIA模型與TRIBON模型數(shù)據(jù)的無縫連接。
本文利用CATIA與TRIBON系統(tǒng)軟件提供的二次開發(fā)工具和外部VB軟件開展研究,既保持了核心技術(shù)的獨(dú)立性和發(fā)展性,也避免了CATIA及TRIBON版本升級(jí)可能帶來的不兼容性。
CATIA具有兩種二次開發(fā)方式,一種是編寫VBScript腳本程序從系統(tǒng)內(nèi)部訪問對象,即通過CATIA的宏(Macro)命令運(yùn)行的方法;另一種是由第三方軟件開發(fā)腳本程序,通過CATIA提供的連接組件實(shí)現(xiàn)兩者之間的通信。由于宏在運(yùn)行過程中無法改變參數(shù)值并且智能程度較低,只適用于簡單的重復(fù)性操作過程,因此本文選用了自主開發(fā)獨(dú)立軟件的方法。此外,開發(fā)第三方軟件也有兩種方法,一種是CAA(Component Application Ar?chitecture)C++模式,另一種是CAA Automation模式。前者基于CATIA已有組件定制開發(fā),其工作量較大;后者則相對較為容易理解與掌握,也能夠滿足開發(fā)需求。所以本文采用第三方軟件Visual Basic 6.0利用CAA Automation技術(shù)進(jìn)行開發(fā)[6]。
TRIBON提供了VITESSE二次開發(fā)工具,使用戶能訪問產(chǎn)品信息模型和在TRIBON系統(tǒng)內(nèi)部實(shí)施建模。利用面向?qū)ο蟮母呒?jí)編程語言PY?THON編寫的VITESSE程序,可以實(shí)現(xiàn)對TRIBON系統(tǒng)建模的功能擴(kuò)展。但VITESSE程序只能夠在TRIBON系統(tǒng)的應(yīng)用程序環(huán)境下運(yùn)行。
總體開發(fā)流程如圖1所示,主要由CATIA信息提取、數(shù)據(jù)中間轉(zhuǎn)換及TRIBON重構(gòu)模型3大部分組成,具體形成了3大模塊。
1)信息提取模塊:作為數(shù)據(jù)交換系統(tǒng)的前置接口,通過訪問CATIA模型對象從CATIA數(shù)據(jù)庫中提取出模型信息;
2)中間轉(zhuǎn)換模塊:利用Visual Basic 6.0開發(fā)中間轉(zhuǎn)換接口[7],將CATIA提取出的文本文檔映射[8]為以關(guān)鍵字和參數(shù)值形式組織的TRIBON可識(shí)別格式文件;
3)模型重構(gòu)模塊:作為數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的后置接口,將上述文件導(dǎo)入TRIBON系統(tǒng)數(shù)據(jù)庫,執(zhí)行讀取和解析命令在TRIBON系統(tǒng)中重構(gòu)模型。
圖1 開發(fā)流程圖Fig.1 Flow chart of data transformation
在CATIA模型中,Product為頂層結(jié)構(gòu),在Product根節(jié)點(diǎn)下包括多個(gè)Part子節(jié)點(diǎn)、Part節(jié)點(diǎn)以及Part所包括的子節(jié)點(diǎn)含有的模型信息。其下面的Part節(jié)點(diǎn)是零件文檔的最上層對象,也是包含模型完整信息的最小單位。如圖2所示,Part對象包括所有訪問零件文檔所需的對象和方法,如Bodies(Plate,Stiffener…),Parameters(Points,Thickness…),OriginElement等。
圖2 結(jié)構(gòu)樹模型信息Fig.2 Production tree of model information
在CAA Automation中,所有的數(shù)據(jù)都被封裝成對象的形式,并呈樹狀結(jié)構(gòu)(產(chǎn)品結(jié)構(gòu)樹)。本文通過根對象(Application)對所有其它對象進(jìn)行訪問,從而獲得產(chǎn)品結(jié)構(gòu)樹的樹狀層次結(jié)構(gòu)所表示的零件裝配關(guān)系,說明產(chǎn)品、部件和零件之間的從屬關(guān)系等,得到完整的產(chǎn)品數(shù)據(jù)信息。
對于船舶模型,CATIA中由幾何信息和屬性信息兩種形式共同描述船體結(jié)構(gòu)模型信息。幾何信息需要批量讀取CATIA結(jié)構(gòu)樹中的點(diǎn)坐標(biāo),用提取的點(diǎn)集來表達(dá)船舶和扶強(qiáng)材等構(gòu)件的基本形狀。結(jié)構(gòu)樹的樹狀層次結(jié)構(gòu)表示裝配關(guān)系,代表產(chǎn)品、部件和零件之間的從屬關(guān)系,利用對這些對象的屬性進(jìn)行訪問,可以方便地得到產(chǎn)品相應(yīng)的數(shù)據(jù)信息。因此,屬性信息則由開發(fā)的軟件訪問對象的厚度、材料和截面形式等參數(shù)值得到。最后,把幾何信息和屬性信息合并,從而表達(dá)出完整的板架信息。提取數(shù)據(jù)的流程如圖3所示。
圖3 提取數(shù)據(jù)流程圖Fig.3 Flow chart of model data extraction
本文利用Visual Basic 6.0在CATIA系統(tǒng)界面中添加了對當(dāng)前文檔進(jìn)行提取信息的窗口,通過該窗口首先獲取本地激活的文檔,然后訪問其對象屬性。
型材的信息處理要定義型材結(jié)構(gòu)體來保存型材信息,扶強(qiáng)材的形式如下:扶強(qiáng)材{起點(diǎn),終點(diǎn),截面形狀,端切形式}。
其中對曲線信息的提取是個(gè)難點(diǎn),若直接提取只能提取到曲線起點(diǎn)、中點(diǎn)和終點(diǎn)的坐標(biāo)值,不能滿足轉(zhuǎn)換過程中的精度要求。在CATIA系統(tǒng)建模過程中曲線是通過離散點(diǎn)插值后形成的曲率連續(xù)的曲線,為了能夠用更詳盡的信息表達(dá)曲線特征,要對曲線進(jìn)行等距離的離散化然后提取離散點(diǎn),在離散代碼:Set pntPoint=oHSF.AddNewPoin?tOnCurveFromPercent(refCurve,1/iPoint,F(xiàn)alse)中,循環(huán)過程中iPoint取值越高,曲線表達(dá)會(huì)越精確,離散化效果如圖4所示。
圖4 曲線離散點(diǎn)Fig.4 Discrete points in the curve
通過開發(fā)外掛軟件,從CATIA中讀取的幾何信息和屬性信息包含TRIBON系統(tǒng)中Scheme文件需要的信息,因此只要采用一一映射的方式對文本文檔數(shù)據(jù)進(jìn)行讀寫操作完成數(shù)據(jù)的轉(zhuǎn)換,就能實(shí)現(xiàn)TRIBON中的自動(dòng)建模。
平面板架上的元素包括板縫(SEA)、板(PLA)、扶強(qiáng)材(STI)、肘板(BRA)和孔(HOL)等[9],板架Scheme文件對每一個(gè)基本元素遵循特定規(guī)則進(jìn)行描述。通過VB合并幾何信息(Geometry Infor?mation)和屬性信息(Attribute Information)到一個(gè)數(shù)據(jù)文件,然后讀取數(shù)據(jù)文件寫入空的Scheme文件中。
1)讀取板架名稱、位置和方向等信息;
2)讀取邊界點(diǎn)信息;
3)讀取平板厚度等信息;
4)讀取扶強(qiáng)材信息;
5)讀取開孔信息。
上述各階段都按Scheme文件格式寫入,從而完成主要的數(shù)據(jù)轉(zhuǎn)換工作,具體的映射過程如圖5所示。
圖5 數(shù)據(jù)映射過程Fig.5 Data-mapping process
利用 VITESSE工具[10]開發(fā) PYTHON程序模塊,該模塊添加了數(shù)據(jù)導(dǎo)入菜單用以指定數(shù)據(jù)導(dǎo)入路徑,將已經(jīng)轉(zhuǎn)換好的Scheme文件導(dǎo)入TRI?BON系統(tǒng)中,并讀取數(shù)據(jù),解析其信息,最后自動(dòng)建模。
添加數(shù)據(jù)導(dǎo)入菜單需要編寫初始化文件,并定義環(huán)境變量SBB_TRIGDIR,通過開發(fā)的VI?TESSE程序接口讀取環(huán)境變量SBB_TRIGDIR所指向目錄的初始化文件trig_draft_init.py以加載開發(fā)的數(shù)據(jù)導(dǎo)入菜單。數(shù)據(jù)導(dǎo)入菜單如圖6所示,定義菜單的方法如圖7所示。
圖6 數(shù)據(jù)導(dǎo)入菜單Fig.6 Operation menu for data import
圖7 定義數(shù)據(jù)導(dǎo)入菜單Fig.7 Defining the operation menu
利用VITESSE開發(fā)數(shù)據(jù)導(dǎo)入路徑對話框(圖8),然后調(diào)用已開發(fā)的重構(gòu)模塊函數(shù),執(zhí)行重構(gòu)命令PYTHON程序來完成TRIBON系統(tǒng)中的自動(dòng)重構(gòu)。VITESSE程序按照之前寫出的Scheme文件的組織順序依次識(shí)別Panel-Count,Panel-Name,Panel-Statement,Curve-Count,Curve-Statement等信息,其關(guān)鍵源程序如圖9所示。
圖8 數(shù)據(jù)導(dǎo)入路徑對話框Fig.8 The dialog box of file import path
圖9 運(yùn)行Scheme信息Fig.9 Running Scheme file for model
一系列的應(yīng)用實(shí)例轉(zhuǎn)換驗(yàn)證了所開發(fā)的程序,本文介紹其中典型的兩例。
1)船舶雙層底結(jié)構(gòu)中的肋板結(jié)構(gòu),其包含了平面板架的基本幾何特征,如人孔、曲線邊界、直線邊界等的處理,經(jīng)過轉(zhuǎn)換,證明本文的研究方法能夠完整地實(shí)現(xiàn)轉(zhuǎn)換(圖10)。
圖10 船舶肋板轉(zhuǎn)換實(shí)例Fig.10 Rib transformation example
為了驗(yàn)證轉(zhuǎn)換結(jié)果的精確程度,圖11對局部細(xì)節(jié)放大,得到TRIBON圖形中離散點(diǎn)越密集,曲線精確程度越高,本文選擇插入19個(gè)點(diǎn)將曲線離散為20段。在對精度要求較高的情況下,可以適當(dāng)增加離散點(diǎn),但是數(shù)據(jù)的增加會(huì)導(dǎo)致處理速度變慢。
圖11 肋板曲線部分放大圖Fig.11 Zoom in the rib’s curved line
2)復(fù)雜的雙層底內(nèi)底板除了上例中的信息外,還包含4個(gè)扶強(qiáng)材,也就形成了板件組合,將其擴(kuò)展就能完成整個(gè)分段甚至全船的轉(zhuǎn)換(圖12)。比較內(nèi)底板局部放大圖(圖13)可以看到不同結(jié)構(gòu)的拓?fù)潢P(guān)系和型材庫中標(biāo)準(zhǔn)構(gòu)件的成功轉(zhuǎn)換。
圖12 船舶內(nèi)底板轉(zhuǎn)換實(shí)例Fig.12 Transformation example for inner bottom plating
圖13 船舶內(nèi)底板轉(zhuǎn)換實(shí)例局部放大圖Fig.13 Zoom in the inner bottom plating model
本文開展了從CATIA到TRIBON船舶結(jié)構(gòu)數(shù)據(jù)交換的方法研究,得到如下結(jié)論:
1)本文所提出的從CATIA到TRIBON船舶結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換的方法有效、可靠,可以解決船體結(jié)構(gòu)平面板架的數(shù)據(jù)轉(zhuǎn)換,通過對曲線的離散化處理,有效提高了數(shù)據(jù)交換的精度,為軟件間更加復(fù)雜的船體模型數(shù)據(jù)轉(zhuǎn)換提供了研究基礎(chǔ)。
2)數(shù)據(jù)轉(zhuǎn)換通過提取、轉(zhuǎn)換和導(dǎo)入3個(gè)步驟,將主要轉(zhuǎn)換過程用外掛程序來實(shí)現(xiàn),可以認(rèn)為是一種有效的手段。其不僅可以用于CATIA到TRI?BON的轉(zhuǎn)換,也可以廣泛應(yīng)用于類似的其它CAD軟件之間的轉(zhuǎn)換,其中本文方法提取的CATIA模型信息同樣可以導(dǎo)入其它系統(tǒng)進(jìn)行有限元分析等方面的研究。
3)在船舶模型從設(shè)計(jì)端向生產(chǎn)端的轉(zhuǎn)換環(huán)節(jié)中,包括型材庫標(biāo)準(zhǔn)結(jié)構(gòu)件的轉(zhuǎn)換,可減少甚至是消除船廠重復(fù)建模的工作,將會(huì)提高使用效率。
本文的研究還僅限于相對簡單的板架結(jié)構(gòu),以此為基礎(chǔ)在后續(xù)的研究過程中可以處理更加復(fù)雜的模型數(shù)據(jù)庫,如開發(fā)更多、更全的標(biāo)準(zhǔn)構(gòu)件轉(zhuǎn)換模塊,進(jìn)一步地研究和改善大曲度的曲面等的轉(zhuǎn)換,實(shí)現(xiàn)船體分段及全船數(shù)據(jù)模型的交換。
[1]喬珊,應(yīng)文燁,何剛.艦船數(shù)字化設(shè)計(jì)應(yīng)用研究[J].中國艦船研究,2007,2(4):20-25.
QIAO S,YING W Y,HE G.Application of digitaliza?tion design for ship[J].Chinese Journal of Ship Re?search,2007,2(4):20-25.
[2]Dassult System.CATIA documentation[EB/OL].2008[2010-09-01].http://www.maruf.ca/files/catiahelp/CATIA_P3_default.htm.
[3]Tribon Solutions AB.Tribon M3-user’s guides docu?mentation[CP].2008.
[4]汪學(xué)鋒,李鋒,周煒,等.流固耦合網(wǎng)格插值方法研究[J].船舶力學(xué),2009,13(4):571-578.
WANG X F,LI F,ZHOU W,et al.Research on grid in?terpolation method of fluid-structure coupling[J].Jour?nal of Ship Mechanics,2009,13(4):571-578.
[5]苗赟,汪學(xué)鋒.船舶主流CAD軟件間的數(shù)據(jù)交換研究[J].中國造船,2011,52(3):190-197.
MIAO Y,WANG X F.Research on data transformation between principal ship CAD softwares[J].Shipbuild?ing of China,2011,52(3):190-197.
[6]Dassult System.CAA V5 Visual Basic help[CP].2008.
[7]顧敏芳,汪學(xué)鋒.Patran集成Fluent處理中模型的轉(zhuǎn)換[J].中國艦船研究,2010,5(1):6-9,13.
GU M F,WANG X F.Model transformation in integra?tion of Fluent based on Patran[J].Chinese Journal of Ship Research,2010,5(1):6-9,13.
[8]江敏,杜學(xué)東,張曉暉,等.對等點(diǎn)的數(shù)據(jù)映射推導(dǎo)算法 研 究[J].計(jì) 算 機(jī) 工 程 與 應(yīng) 用 ,2009,45(3):152-154.
JIANG M,DU X D,ZHANG X H,et al.Research of data mapping inference algorism of peer-to-peer[J].Computer Engineering and Applications,2009,45(3):152-154.
[9]賈琪琳.TRIBON的船體分段數(shù)據(jù)分析[J].船舶工程,2010,32(1):67-69.
JIA Q L.Data analysis of ship segments by TRIBON[J].Ship Engineering,2010,32(1):67-69.
[10]Tribon Solutions AB.Tribon M3-user’s guides:Vi?tesse,availability in Tribon applications[CP].2008.
Data Transformation from CATIA to TRIBON for Naval Ships
NI Hai-shen1 WANG Xue-feng2
1 School of Naval Architecture,Ocean and Civil Engineering,Shanghai Jiao Tong University,Shanghai 200030,China
2 State Key Laboratory of Marine Engineering,School of Naval Architecture,Shanghai Jiao Tong University,Shanghai 200030,China
Data transformation among different ship CAD software is a highly concerned issue,with the transformation between CATIA and TRIBON being a particularly important element.By analyzing the struc?ture of model data,a data transformation method from CATIA to TRIBON for naval ships was proposed in this paper.Firstly,the secondary software attached to CATIA was developed to extract its geometry and at?tribute information,and the precision of this extraction procedure directly determines the overall accuracy of the transformation process.Next,the plug-in software was used to merge the data into a single file and translated it into a valid TRIBON document format.Finally,the remodeling modules of TRIBON were de?veloped to accomplish the transformation.Simulation results show that the proposed method can be used to transmit data among different CAD software effectively and efficiently.
CATIA;TRIBON;data transformation;secondary software
U662.9
A
1673-3185(2012)05-66-05
10.3969/j.issn.1673-3185.2012.05.012
2011-11-18
國家高技術(shù)研究發(fā)展計(jì)劃(863)項(xiàng)目(2008AA09A108);國家教育財(cái)政部重大項(xiàng)目(ZXZY019)
倪海參(1986-),男,碩士研究生。研究方向:船舶與海洋工程。
汪學(xué)鋒(1966-),男,研究員,博士生導(dǎo)師。研究方向:船舶與海洋工程。E?mail:wangxuef@sjtu.edu.cn
汪學(xué)鋒。
喻 菁]