基于Remoting的CATIA集成技術(shù)研究

2013-05-20  by:廣州有限元分析、培訓(xùn)中心-1CAE.COM  來源:仿真在線

PDM的基礎(chǔ)與核心是數(shù)據(jù)管理。在以往的PDM的開發(fā)與實(shí)施中,CAD/CAM數(shù)據(jù)的集成管理問題往往是決定PDM成功的關(guān)鍵要素之一,而BOM數(shù)據(jù)的有效管理更是PDM的基礎(chǔ)之基礎(chǔ)。本文分析了基于Remoting的數(shù)據(jù)傳輸?shù)膬?yōu)勢,介紹利用CATIA V5 AUTOMATION獲取CATIA V5零部件BOM信息,開發(fā)實(shí)用軟件的具體方法和思路,提出了基于Remoting的CATIA V5 與PDM系統(tǒng)BOM數(shù)據(jù)傳輸方法,并開發(fā)出實(shí)用程序。本方法同樣適用于CATIA V5與ERP、CAPP等應(yīng)用系統(tǒng)的信息交換。
范亮宇 崔亮 葉強(qiáng) 來源:e-works
關(guān)鍵字:CATIA CAD Remoting

1.基于Remoting的數(shù)據(jù)傳輸技術(shù)

    1.1Remoting的優(yōu)勢

    一種基于.net的高效的分布式處理方式

Remoting,簡而言之是一種分布式處理方式。從微軟的產(chǎn)品角度來看,可以說Remoting就是DCOM的一種升級,它改善了很多功能,并極好的融合到.Net平臺下。Microsoft .NET Remoting 提供了一種允許對象通過應(yīng)用程序域與另一對象進(jìn)行交互的框架。這也正是我們使用Remoting的原因。為什么呢?在Windows操作系統(tǒng)中,是將應(yīng)用程序分離為單獨(dú)的進(jìn)程。這個進(jìn)程形成了應(yīng)用程序代碼和數(shù)據(jù)周圍的一道邊界。如果不采用進(jìn)程間通信(RPC)機(jī)制,則在一個進(jìn)程中執(zhí)行的代碼就不能訪問另一進(jìn)程。這是一種操作系統(tǒng)對應(yīng)用程序的保護(hù)機(jī)制。然而在某些情況下,我們需要跨過應(yīng)用程序域,與另外的應(yīng)用程序域進(jìn)行通信,即穿越邊界。

    實(shí)現(xiàn)通信方式

在Remoting中是通過通道(channel)來實(shí)現(xiàn)兩個應(yīng)用程序域之間對象的通信的。首先,客戶端通過Remoting,訪問通道以獲得服務(wù)端對象,再通過代理解析為客戶端對象。這就提供一種可能性,即以服務(wù)的方式來發(fā)布服務(wù)器對象。遠(yuǎn)程對象代碼可以運(yùn)行在服務(wù)器上(如服務(wù)器激活的對象和客戶端激活的對象),然后客戶端再通過Remoting連接服務(wù)器,獲得該服務(wù)對象并通過序列化在客戶端運(yùn)行。

    Remoting的兩種通道

Remoting的通道主要有兩種:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定義了IChannel接口。IChannel接口包括了TcpChannel通道類型和Http通道類型。它們分別對應(yīng)Remoting通道的這兩種類型。

TcpChannel類型放在名字空間System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基于Socket 的傳輸工具,使用Tcp協(xié)議來跨越Remoting邊界傳輸序列化的消息流。TcpChannel類型默認(rèn)使用二進(jìn)制格式序列化消息對象,因此它具有更高的傳輸性能。HttpChannel類型放在名字空間System.Runtime.Remoting.Channel.Http中。它提供了一種使用 Http協(xié)議,使其能在Internet上穿越防火墻傳輸序列化消息流。默認(rèn)情況下,HttpChannel類型使用Soap格式序列化消息對象,因此它具有更好的互操作性。通常在局域網(wǎng)內(nèi),我們更多地使用TcpChannel;如果要穿越防火墻,則使用HttpChannel。

    1.2基于Remoting的應(yīng)用間數(shù)據(jù)傳遞

    現(xiàn)代企業(yè)中的應(yīng)用往往是多種多樣的,由于多種原因,企業(yè)應(yīng)用的軟硬件、技術(shù)平臺也很難同一。應(yīng)用間數(shù)據(jù)傳輸不可避免。以CATIA與UGS的PDM產(chǎn)品Teamcenter集成為例,如下圖所示:

基于Remoting的CATIA集成技術(shù)研究autocad technology圖片1


 
    2.開發(fā)工具、設(shè)計方法與思路

    CATIA V5 是法國達(dá)索公司與IBM公司開發(fā)的新一代CAD/CAM產(chǎn)品。它采用了全新的、基于組件的開放式體系結(jié)構(gòu)(Open Architecture Products)。CATIA V5采用大量的先進(jìn)工業(yè)標(biāo)準(zhǔn);應(yīng)用了許多現(xiàn)代軟件工程思想,整個體系結(jié)構(gòu)雖然十分龐大,但結(jié)構(gòu)清晰、合理。維護(hù)、開發(fā)、擴(kuò)展方便。有著相當(dāng)優(yōu)良的擴(kuò)展性能。它開放的組件應(yīng)用架構(gòu)允許更多的第三方供應(yīng)商針對用戶的需要特別定制的應(yīng)用解決方案。提供COM/DCOM接口支持基于AUTOMATION的開發(fā)。

    DS的CAA組件應(yīng)用架構(gòu)(Component Application Architecture)組件應(yīng)用架構(gòu),是Dassault Systemes產(chǎn)品及二次開發(fā)的基礎(chǔ)架構(gòu)。所有的DS產(chǎn)品均構(gòu)建之上。并通過PPR HUB 將其它不同用途的DS產(chǎn)品如ENOVIA、DELMIA等連接起來。PPR HUB是CAA的基礎(chǔ),是一種“軟件總線標(biāo)準(zhǔn)”,凡是架構(gòu)其上的產(chǎn)品均可互通信息,方便用戶構(gòu)建從方案設(shè)計、工程設(shè)計、工藝分析、知識工程、模擬分析到PLM、SCM、ERP的全生命周期、全方面的應(yīng)用。

CAA AUTOMATION 使用標(biāo)準(zhǔn)的COM/DCOM開發(fā)技術(shù),支持從腳本到VB、VC、DELPHI等通用開發(fā)工具。無需專用開發(fā)工具和專門技術(shù),開發(fā)技術(shù)簡單。CAA AUTOMATION提供了強(qiáng)大的開發(fā)接口,并且還在加強(qiáng)中。與CAA C++相比其功能覆蓋超過80%,且都是最常用的功能。實(shí)際上除幾何接口和某些應(yīng)用外大部分CAA C++二次開發(fā)應(yīng)用均可由CAA AUTOMATION開發(fā)且運(yùn)行效率相當(dāng)。是目前最常用的開發(fā)方法。

    開發(fā)工具的選擇:

    根據(jù)實(shí)際需要選定VB 6.0主開發(fā)工具,通過VB主程序使用COM編程技術(shù)調(diào)用CATIA V5并執(zhí)行相關(guān)的AUTOMATION操作。CATIA V5 的AUTOMATION操作主要完成要求PDM數(shù)據(jù)的計算和提取。

    主要設(shè)計技術(shù):

    CATIA V5 產(chǎn)品數(shù)據(jù)的提取:

    CATIA V5 產(chǎn)品數(shù)據(jù)一部分在PRODUCT對象,其它如重量、材質(zhì)、密度、慣性矩等特殊技術(shù)信息可通過參數(shù)和GetTechnologicalObject方法獲得,值得注意的是材料、質(zhì)量、密度要賦材質(zhì)后才可取得。特別注意的是對于PART類型,PRODUCT屬性要通過ReferenceProduct獲得。

    程序例子:

    Set oManager = AssDoc.Product.GetItem("CATMatManagerVBExt")

    Set AssDoc = CATIA.ActiveDocument
   
    /*求材料名稱:

   Set oManager = AssDoc.Product.GetItem("CATMatManagerVBExt")

    oManager.GetMaterialOnProduct tmpProduct, om

   MsgBox om.Name

    /*求子零件質(zhì)量和密度:

  Set oInertia = Products.Item(j).GetTechnologicalObject("Inertia")

  dMass = oInertia.Mass

   dDensity = oInertia.Density
   
    如有自定義的屬性可通過Set UserProps = productRoot.UserRefProperties獲取。

    在Teamcenter中的顯示:

基于Remoting的CATIA集成技術(shù)研究autocad technology圖片2


 
    配置方法及激活模式

根據(jù)激活模式的不同,通道類型的不同服務(wù)器端的實(shí)現(xiàn)方式也有所不同。大體上說,服務(wù)器端應(yīng)分為三步:

注冊通道

要跨越應(yīng)用程序域進(jìn)行通信,必須實(shí)現(xiàn)通道。如前所述,Remoting提供了IChannel接口,分別包含TcpChannel和 HttpChannel兩種類型的通道。這兩種類型除了性能和序列化數(shù)據(jù)的格式不同外,實(shí)現(xiàn)的方式完全一致,因此下面我們就以TcpChannel為例。

注冊TcpChannel,首先要在項(xiàng)目中添加引用“System.Runtime.Remoting”,然后using名字空間: System.Runtime.Remoting.Channel.Tcp。在實(shí)例化通道對象時,將端口號作為參數(shù)傳遞。然后再調(diào)用靜態(tài)方法 RegisterChannel()來注冊該通道對象即可。

注冊遠(yuǎn)程對象

注冊了通道后,要能激活遠(yuǎn)程對象,必須在通道中注冊該對象。根據(jù)激活模式的不同,注冊對象的方法也不同。

對于WellKnown對象,可以通過靜態(tài)方法 RemotingConfiguration.RegisterWellKnownServiceType()來實(shí)現(xiàn),注冊對象的方法基本上和 SingleTon模式相同,只需要將枚舉參數(shù)WellKnownObjectMode改為SingleCall就可以了。

注銷通道

如果要關(guān)閉Remoting的服務(wù),則需要注銷通道,也可以關(guān)閉對通道的監(jiān)聽。在Remoting中當(dāng)我們注冊通道的時候,就自動開啟了通道的監(jiān)聽。而如果關(guān)閉了對通道的監(jiān)聽,則該通道就無法接受客戶端的請求,但通道仍然存在,如果你想再一次注冊該通道,會拋出異常。

    服務(wù)器:

    TcpServerChannel channel = new TcpServerChannel(8086);

    ChannelServices.RegisterChannel(channel,false);

    Type t = typeof(wr);

    RemotingConfiguration.RegisterWellKnownServiceType(t, "hi", WellKnownObjectMode.SingleCall);

    客戶端:

    //    TcpChannel tc = new TcpChannel();

    //    ChannelServices.RegisterChannel(tc);

    wr obj = (wr)Activator.GetObject(typeof(wr), "tcp://192.0.0.1:8086/hi");

    Response.Write(obj.write());

    3.結(jié)束語

    隨著CAD/CAM技術(shù)應(yīng)用的深入推廣,如何應(yīng)用PDM管理和使用不斷增加的數(shù)據(jù)管理日益成為企業(yè)應(yīng)用面臨的問題。CATIA具有強(qiáng)大的自管理和開放的應(yīng)用開發(fā)接口,使得企業(yè)可以靈活的根據(jù)需要設(shè)計適合的各種應(yīng)用。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:基于Remoting的CATIA集成技術(shù)研究 AutoCAD培訓(xùn) AutoCAD培訓(xùn)課程 AutoCAD圖紙設(shè)計 AutoCAD在線視頻 AutoCAD技術(shù)學(xué)習(xí)教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn) 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com