基于Remoting的CATIA集成技术研究

2013-05-20  by:广州有限元分析、培训中心-1CAE.COM  来源:仿真在线

PDM的基础与核心是数据管理。在以往的PDM的开发与实施中,CAD/CAM数据的集成管理问题往往是决定PDM成功的关键要素之一,而BOM数据的有效管理更是PDM的基础之基础。本文分析了基于Remoting的数据传输的优势,介绍利用CATIA V5 AUTOMATION获取CATIA V5零部件BOM信息,开发实用软件的具体方法和思路,提出了基于Remoting的CATIA V5 与PDM系统BOM数据传输方法,并开发出实用程序。本方法同样适用于CATIA V5与ERP、CAPP等应用系统的信息交换。
范亮宇 崔亮 叶强 来源:e-works
关键字:CATIA CAD Remoting

1.基于Remoting的数据传输技术

    1.1Remoting的优势

    一种基于.net的高效的分布式处理方式

Remoting,简而言之是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。

    实现通信方式

在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。首先,客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,即以服务的方式来发布服务器对象。远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。

    Remoting的两种通道

Remoting的通道主要有两种:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定义了IChannel接口。IChannel接口包括了TcpChannel通道类型和Http通道类型。它们分别对应Remoting通道的这两种类型。

TcpChannel类型放在名字空间System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基于Socket 的传输工具,使用Tcp协议来跨越Remoting边界传输序列化的消息流。TcpChannel类型默认使用二进制格式序列化消息对象,因此它具有更高的传输性能。HttpChannel类型放在名字空间System.Runtime.Remoting.Channel.Http中。它提供了一种使用 Http协议,使其能在Internet上穿越防火墙传输序列化消息流。默认情况下,HttpChannel类型使用Soap格式序列化消息对象,因此它具有更好的互操作性。通常在局域网内,我们更多地使用TcpChannel;如果要穿越防火墙,则使用HttpChannel。

    1.2基于Remoting的应用间数据传递

    现代企业中的应用往往是多种多样的,由于多种原因,企业应用的软硬件、技术平台也很难同一。应用间数据传输不可避免。以CATIA与UGS的PDM产品Teamcenter集成为例,如下图所示:

基于Remoting的CATIA集成技术研究autocad technology图片1


 
    2.开发工具、设计方法与思路

    CATIA V5 是法国达索公司与IBM公司开发的新一代CAD/CAM产品。它采用了全新的、基于组件的开放式体系结构(Open Architecture Products)。CATIA V5采用大量的先进工业标准;应用了许多现代软件工程思想,整个体系结构虽然十分庞大,但结构清晰、合理。维护、开发、扩展方便。有着相当优良的扩展性能。它开放的组件应用架构允许更多的第三方供应商针对用户的需要特别定制的应用解决方案。提供COM/DCOM接口支持基于AUTOMATION的开发。

    DS的CAA组件应用架构(Component Application Architecture)组件应用架构,是Dassault Systemes产品及二次开发的基础架构。所有的DS产品均构建之上。并通过PPR HUB 将其它不同用途的DS产品如ENOVIA、DELMIA等连接起来。PPR HUB是CAA的基础,是一种“软件总线标准”,凡是架构其上的产品均可互通信息,方便用户构建从方案设计、工程设计、工艺分析、知识工程、模拟分析到PLM、SCM、ERP的全生命周期、全方面的应用。

CAA AUTOMATION 使用标准的COM/DCOM开发技术,支持从脚本到VB、VC、DELPHI等通用开发工具。无需专用开发工具和专门技术,开发技术简单。CAA AUTOMATION提供了强大的开发接口,并且还在加强中。与CAA C++相比其功能覆盖超过80%,且都是最常用的功能。实际上除几何接口和某些应用外大部分CAA C++二次开发应用均可由CAA AUTOMATION开发且运行效率相当。是目前最常用的开发方法。

    开发工具的选择:

    根据实际需要选定VB 6.0主开发工具,通过VB主程序使用COM编程技术调用CATIA V5并执行相关的AUTOMATION操作。CATIA V5 的AUTOMATION操作主要完成要求PDM数据的计算和提取。

    主要设计技术:

    CATIA V5 产品数据的提取:

    CATIA V5 产品数据一部分在PRODUCT对象,其它如重量、材质、密度、惯性矩等特殊技术信息可通过参数和GetTechnologicalObject方法获得,值得注意的是材料、质量、密度要赋材质后才可取得。特别注意的是对于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

    /*求子零件质量和密度:

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

  dMass = oInertia.Mass

   dDensity = oInertia.Density
   
    如有自定义的属性可通过Set UserProps = productRoot.UserRefProperties获取。

    在Teamcenter中的显示:

基于Remoting的CATIA集成技术研究autocad technology图片2


 
    配置方法及激活模式

根据激活模式的不同,通道类型的不同服务器端的实现方式也有所不同。大体上说,服务器端应分为三步:

注册通道

要跨越应用程序域进行通信,必须实现通道。如前所述,Remoting提供了IChannel接口,分别包含TcpChannel和 HttpChannel两种类型的通道。这两种类型除了性能和序列化数据的格式不同外,实现的方式完全一致,因此下面我们就以TcpChannel为例。

注册TcpChannel,首先要在项目中添加引用“System.Runtime.Remoting”,然后using名字空间: System.Runtime.Remoting.Channel.Tcp。在实例化通道对象时,将端口号作为参数传递。然后再调用静态方法 RegisterChannel()来注册该通道对象即可。

注册远程对象

注册了通道后,要能激活远程对象,必须在通道中注册该对象。根据激活模式的不同,注册对象的方法也不同。

对于WellKnown对象,可以通过静态方法 RemotingConfiguration.RegisterWellKnownServiceType()来实现,注册对象的方法基本上和 SingleTon模式相同,只需要将枚举参数WellKnownObjectMode改为SingleCall就可以了。

注销通道

如果要关闭Remoting的服务,则需要注销通道,也可以关闭对通道的监听。在Remoting中当我们注册通道的时候,就自动开启了通道的监听。而如果关闭了对通道的监听,则该通道就无法接受客户端的请求,但通道仍然存在,如果你想再一次注册该通道,会抛出异常。

    服务器:

    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.结束语

    随着CAD/CAM技术应用的深入推广,如何应用PDM管理和使用不断增加的数据管理日益成为企业应用面临的问题。CATIA具有强大的自管理和开放的应用开发接口,使得企业可以灵活的根据需要设计适合的各种应用。


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:基于Remoting的CATIA集成技术研究 AutoCAD培训 AutoCAD培训课程 AutoCAD图纸设计 AutoCAD在线视频 AutoCAD技术学习教程 AutoCAD软件教程 AutoCAD资料下载 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 Autoform培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com