基于InterOp拓展SolidWorks數(shù)據(jù)接口
3D模型數(shù)據(jù)的轉(zhuǎn)換是具有不同數(shù)據(jù)格式的應(yīng)用程序在實(shí)際應(yīng)用中不可避免的問(wèn)題。一個(gè)項(xiàng)目可能是由多種CAD造型軟件構(gòu)造;專業(yè)的CAM、CAE軟件需要讀入不同的模型數(shù)據(jù);PDM/PLM等軟件需要直接瀏覽、管理不同的CAD產(chǎn)生的數(shù)據(jù)等,構(gòu)成了數(shù)據(jù)轉(zhuǎn)換的強(qiáng)烈需求。
Solidworks自1995年問(wèn)世以來(lái),其優(yōu)異的性能、易用性和創(chuàng)新性,極大地提高了機(jī)械設(shè)計(jì)工程師的設(shè)計(jì)效率,在與同類軟件的激烈競(jìng)爭(zhēng)中已經(jīng)確立了它的市場(chǎng)地位,成為三維機(jī)械設(shè)計(jì)軟件市場(chǎng)的公認(rèn)標(biāo)準(zhǔn),在航空、航天、鐵道、兵器、電子、機(jī)械等領(lǐng)域擁有廣泛的用戶。其原因之一就是該軟件的插件之多是其余CAD軟件無(wú)法相比的,如:COSMOSWorks,F(xiàn)eatureWorks,PhotoWorks等,滿足了不同用戶多樣性的需求。
Solidworks對(duì)CATIA V5數(shù)據(jù)的支持在國(guó)際上已有多種解決方案,如:Formatworks、CAT5Works等,但此類插件在市場(chǎng)上定位的價(jià)格較高,從某種程度上制約了國(guó)內(nèi)大部分中小型企業(yè)的使用。筆者從應(yīng)用需求出發(fā),利用Spatial公司的數(shù)據(jù)接口組件——InterOp開(kāi)發(fā)了V5Works這一插件,可以為Solidworks提供比較完善的CATIA V5數(shù)據(jù)接口,同時(shí)可以節(jié)約接口軟件購(gòu)買(mǎi)的費(fèi)用,為SolidWorks與CATIA V5之間的數(shù)據(jù)轉(zhuǎn)換建立良好的接口通道,實(shí)踐證明這是一種行之有效的解決方法。
2.開(kāi)發(fā)環(huán)境的選擇
美國(guó)Spatial公司開(kāi)發(fā)的數(shù)據(jù)接口組件InterOp能夠?qū)κ袌?chǎng)上流行的3D格式如:CATIA V5、CATIA V4、IGES、STEP、VDA-FS、Pro/E、Parasolid、UG、Solidworks、Inventor和ACIS等進(jìn)行準(zhǔn)確和透明的轉(zhuǎn)換,不僅支持包括實(shí)體、曲面和線框等幾何和拓?fù)湫畔⒌霓D(zhuǎn)換,而且包括層、坐標(biāo)系、工作平面、顏色屬性、名稱以及裝配關(guān)系等系統(tǒng)環(huán)境或?qū)傩孕畔?,可以滿足用戶的多種需要。
Solidworks中提供了一系列的API函數(shù),從界面到零件、裝配件和工程圖三種工作平臺(tái)下信息的提取都提供了很好的接口,支持多種編程語(yǔ)言。Solidworks中集成的宏程序功能,使得利用VBA或者VB進(jìn)行二次開(kāi)發(fā)時(shí)尤為方便。所開(kāi)發(fā)出來(lái)的插件可以與Solidworks很好的集成使用,滿足用戶各種不同的專業(yè)需求,減少了設(shè)計(jì)時(shí)間,提供了工作效率。
組件InterOp是基于VC環(huán)境下進(jìn)行編程,因此開(kāi)發(fā)的插件選擇在VC++6.0的環(huán)境下編譯調(diào)試。使用C++進(jìn)行SolidWorks的二次開(kāi)發(fā)相對(duì)VB來(lái)說(shuō)比較復(fù)雜,但開(kāi)發(fā)插件的穩(wěn)定性以及擴(kuò)展方面有比較大的優(yōu)勢(shì)。
V5Works插件是基于InterOp R16在Solidworks 2006的平臺(tái)上使用Visual C++ 6.0開(kāi)發(fā)完成的。經(jīng)過(guò)筆者的測(cè)試,可以與Solidworks 2006的無(wú)縫集成,并實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換的工作要求。
3.零件模型數(shù)據(jù)的轉(zhuǎn)換
實(shí)現(xiàn)SolidWorks中讀取CATIA V5的數(shù)據(jù),可以將CATIA V5格式直接轉(zhuǎn)換成Solidworks的格式,但I(xiàn)nterOp這個(gè)組件中沒(méi)有直接在這兩種數(shù)據(jù)間的轉(zhuǎn)換接口,因此需要一種中間格式來(lái)實(shí)現(xiàn)此類轉(zhuǎn)換。
SAT數(shù)據(jù)格式可以是這個(gè)理想的中間格式。首先利用InterOp的數(shù)據(jù)接口將CATIA V5的數(shù)據(jù)轉(zhuǎn)換為SAT數(shù)據(jù),這個(gè)轉(zhuǎn)換可以保證轉(zhuǎn)換的成功率和精度,滿足任何級(jí)別用戶的需要。SolidWorks內(nèi)部的轉(zhuǎn)換接口支持SAT文件的讀入,最后一步是將讀入的SAT文件轉(zhuǎn)換為SolidWorks的數(shù)據(jù)格式,如圖1所示,從而實(shí)現(xiàn)CATIA V5文件的讀取。 V5Works這一插件所要做的工作首先是在Solidworks中添加讀取CATIA V5的接口,即在文檔打開(kāi)的對(duì)話框中支持CATIA V5的格式;其次是將InterOp集成到V5Works的插件中,實(shí)現(xiàn)CATIA V5向SAT數(shù)據(jù)的轉(zhuǎn)換;最后利用SolidWorks所提供的API,將讀入的SAT文件轉(zhuǎn)換為SolidWorks的格式保存,同時(shí)刪除所產(chǎn)生的SAT臨時(shí)文件。
評(píng)論