iCAx开思工具箱

标题: 一篇CATIA-CAA的论文 [打印本页]

作者: darkhorse    时间: 2003-12-23 11:40
标题: 一篇CATIA-CAA的论文
一篇CATIA-CAA的论文
作者: darkhorse    时间: 2003-12-23 11:47
CAA及其应用
第一飞机设计研究院    刘俊堂
  
[摘要] 本文就Dassault Systemes的CAA(Component Application Architecture)产品作了比较全面而详尽的介绍,包括CAA产品的构架、软件包的构成和选购。最后对CAA的安装和应用也作了简要介绍。
[关键词] 面向对象程序设计、组件对象模型(COM)CAA  RADE  
  
一、  CAA 简介
Component Application Architecture (CAA) 组件应用架构,是Dassault Systemes产品扩展和客户进行二次开发的强有力的工具。以  为商标的Dassault Systemes已形成六大支柱产品,通过PPR HUB进行集成,对产品的生命周期进行全方位管理。
  
图1 Dassault Systemes产品结构逻辑关系
这六大产品包括:
CATIA V5:产品的数字化设计和数字样机技术。
ENOVIA:产品数据管理和协同工作环境。
DELMIA:数字化工厂,包括工艺设计、资源控制、工厂布置和生产模拟等。
另外还有SOLIDWORKS、SMARTTEAM也可进行数字化设计和管理,由用户情况决定。特别要提的是SPATIAL,专门进行CAA架构的开发和研究。
PPR HUB是Dassault Systemes 3D产品生命周期管理(Product Lifecycle Management ,PLM)解决方案的核心,确保CATIA、ENOVIA、DELMIA三者之间的整合。
Dassault Systemes的这套解决方案得利于开放式,可扩展的模块化开发架构 CAA,使得全球诸多开发商可以参与Dassault Systemes的研发。
对客户而言,CAA可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密,如果没有特别的说明,无法把客户所研发的功能从原系统中区分出来,这非常有利于用户的使用和集成。
CAA的实现,是通过提供的快速应用研发环境RADE和不同的API接口程序来完成的。
快速应用研发环境Rapid Application Development Environment(RADE)是一个可视化的集成开发环境,它提供完整的编程工具组。实际上RADE以Microsoft Visual Studio VC++为载体,在VC++环境中增加了CAA的开发工具。
API提供了操作各种对象的方法、工具和接口。
Dassault Systemes提供的CAA产品包括如下内容:
[$#61548]  CAA RADE 快速开发环境,基于Microsoft Visual Studio
[$#61548]  CAA CATIA V5 API, CATIA V5应用开发工具
[$#61548]  CAA DELMIA V5 API,DELMIA V5应用开发工具
[$#61548]  CAA ENOVIA LCA V5 API,ENOVIA LCA应用开发工具
[$#61548]  CAA ENOVIA PORTAL V5 API ,ENOVIA PORTAL V5应用开发工具
二、  CAA架构
在软件开发领域,使用面向对象的程序设计(OOP:Object-Oriented-Programming)已经成为软件开发设计的主流,它为软件的发展带来了很多好处:可复用性、抽象性、封装性等。软件专家把软件开发看作是对象的组合。
面向对象程序设计是一种程序设计方法,而建立在面向对象程序设计基础之上的组件对象模型(COM)和对象的连接和嵌入(OLE)技术,使程序设计更加容易且趋于标准化,使程序的使用更加简洁明了。Microsoft是COM和OLE 的先祖,基于此种技术的应用软件,如Microsoft Word,Execl,Access 得到广泛地使用和承认,而且许多应用软件也是基于这种技术,CAA就是基于这种技术的Windows应用软件。
  
   
图 1
  
CAA产品的架构可用图1表示。它全面反映了Dassault Systemes几大产品之间的关系。在CAA架构的支撑之下,Dassault Systemes系统可像搭积木一样建立起来,这种结构非常适宜于系统的壮大和发展。表1列出了在CATIA V5应用方面为Dassault Systemes开发应用程序的部分公司。
  
表1 CATIA V5软件合作伙伴
  
序号  合作伙伴  产品
1  CADDAM Systems company Inc.   Helix Integration/Environment V1R4 CAA V5 Based/Helix Direct Interface (HDI)CAA V5 Based
2  Dimensional Control Systems Inc.  3DCS Analyst CAA V5 Based/3DCS Designer CAA V5 Based
3  Trace Parts  Trace Parts CAA V5 Based
4  T-Systems ITS GmbH  VAMOS CAA V5 Based
5  Metalsoft Inc.  Fabriwin CAA V5 Based
6  Mechanical Dynamics Inc.  Dynamic Designer CAA V5 Based
7  LMS International  LMS Virtual.Lab Acoustics
LMS Virtual.Lab Noise and Vibration
LMS Virtual.Lab Durability
LMS Virtual.Lab Motion
8  ICEMCFD  ICEM CFD Hexa CAA V5 Based
9  AIKOKU ALPHA ENGINEERING CORP.  AIKOKU Post for 4 axis CAA V5 Based/ AIKOKU Post for 5 axis CAA V5 Based
10  CENIT AG Systemhaus  CUT4AXES CAA V5 Based
11  EADS Matra Datavision  EUCLID3 Connectivity CAA V5 Based
12  ZEH Software  ZEHSever CAA V5 Based
13  Infrastructure Interface  COM/VDAFS CAA V5 Based
  
在商业运作方面,与Dassault Systemes系统的其产品一样,CAA也被划分为软件包(Configuration)和模块(Product),用户在购置CAA时要根据需要选择合适的配置和产品。
目前CAA有五个配置软件包:
[$#61548]  CAA-Multi-workspace Application Building(简称ABC)
CAA应用的基本配置.
[$#61548]  CAA-C++ Extended Development(简称CDC)
提供与C++共存的的开发环境,即对C++开发环境的客户化,用户除可使用C++开发环境的所有工具外,还可使用CAA提供的独特的开发工具.可用于CATIA和ENOVIA的二次开发.
[$#61548]  CAA-C++ Base Development(简称CDV)
与CDC类似,但规模小,针对中小市场,可有限地运用于CATIA V5和ENOVIA LCA的客户化工作.
[$#61548]  CAA-Java Base Development(简称JDV)
运行于JAVA开发环境,适用于ENOVIA LCA客户端的定制.
[$#61548]  CAA-Legacy Data Integration Development Configuration(简称LDC)
提供数据接口工具,可使用户继承原有的数据.
CAA提供的产品(模块)包括:
[$#61548]  CAA-C++ API Documentation Generator(CDG).
[$#61548]  CAA-C++ Source Checker(CSC)
[$#61548]  CAA-CAA Data Model Customizer(DMC)
[$#61548]  CAA-Java UnitTest Manager(JUT)
[$#61548]  CAA-Multi-Worksoace Application Builder(MAB)
[$#61548]  CAA-Teamwork Release Manager(TRM)
[$#61548]  CAA-C++ Interactive Dashboard(CID)
[$#61548]  CAA-C++ Unit Test Manager(CUT)
[$#61548]  CAA-Java Interactive Dashboard(JID)
[$#61548]  CAA-Web Application Generator for Legacy Database(LWG)
[$#61548]  CAA-Source Code Manager(SCM)
  
图2
图3表示了CAA产品配置及其所包含的产品的矩阵图.这里对各个模块的功能不再作详尽的解释,如果读者需要可参考相关资料或访问关于CAA的网站.
三、  CAA 安装
CAA的安装包括两大部分,一是Dassault Systemes相关应用软件的安装,如CATIA V5、ENOVIA;二是CAA本身的安装。
在安装CAA以前,要确认Dassault Systemes应用和CAA版本的一致性,甚至要考虑二者补丁的一致性,否则将导致CAA无法使用。下面以Dassault Systemes的CATIA V5R9 GA版应用程序和CAA的CDC安装为例,简要介绍CAA的安装过程。
假设用户购买了CATIA V5R9和CAA CDC的使用权,并拥有相应的产品License。
按照下面的步骤安装CAA一般就可使用CAA了:
[$#61548]  安装CATIA V5R9 GA 版,如果以前已经安装过,可忽略这一步;
[$#61548]  安装CATIA V5R9 API(此产品属CAA范畴),API自动安装在CATIA所在的目录下,由于CAA RADE不识别带有空格的目录名,所以在先前一步安装CATIA时,一定要自定义安装位置,且目录名不能包含空格。
[$#61548]  Microsoft Visual Studio V6.0的安装;
[$#61548]  CAA RADE的安装,在CAA RADE 安装前,必须安装Microsoft Visual Studio V6.0,同时注意不要把CAA RADE安装在CATIA的安装目录下,安装路径不能有空格。
通过以上四步,完成了CAA的安装,但要使用CAA,必须进行RADE产品的认证和环境的设置。
[$#61548]  RADE产品的认证,通过命令启动RADE Tools Licensing:
C:>$RADE_INSTALLATION_PATH$/intel_a/code/bin/CATVBTLicenser.exe
        这里$RADE_INSTALLATION_PATH$为RADE的安装路径。
   
图2 RADE License 配置窗口
选择有效的License,确定即可。
[$#61548]  安装联机帮助,以便在RADE开发环境下提供CAA帮助。
C:>$RADE_INSTALLATION_PATH$/intel_a/code/bin/ CATVBTSetup.exe
        这里$RADE_INSTALLATION_PATH$为RADE的安装路径。
   
选择Documentation,指定帮助文档的路径(在CATIA安装目录下)。
   
四、  CAA 启动
下面简要介绍一下CAA RADE的使用流程。
[$#61548]  启动Microsoft Visual C++,选择Tools->Customize…,在弹出的菜单上选择
   
Add-ins and Macro Files,选中有关的插接件,关闭窗口,退出Microsoft Visual C++。这一步骤在首次使用CAA RADE必须进行。
   
[$#61548]  重新启动Microsoft Visual C++,出现CAA RADE的帮助窗口。在菜单栏上增加了两个新的菜单项,CAAV5 Workspace和Source Code Manager,这是CAA RADE添加的菜单项。
   
另外,展开其他菜单项,如Project,可以到看以 图标打头的菜单项,也属于CAA RADE的菜单项。到此为止,我们就可以使用CAA RADE来开发CATIA V5R9的用户客户化程序了。
                        
  
五、  CAA 应用范例
为了帮助用户熟悉CAA RADE的开发环境和工具,Dassault Systemes各个应用系统各自提供了许多应用范例,如CATIA V5R9提供了与开发CATIA 有关的范例,用户甚至可对范例稍加修改而变成自己的产品。在安装CATIA API时,应用范例被安装在CATIA目录下的CAADoc文件夹中。所有范例的文件夹以 .edu结尾。为了防止原始范例文档的破坏,可以把CAADoc文件夹的用例拷贝到其他地方(比如,把CAASystem.edu拷贝到E:\V5R9\UsercaseWorkspace),并以此作为目标进行编程练习。
[$#61548]  启动Microsoft Visual C++,选择File菜单下的Open CAA V5 Workspace命令。
   
a、 在Open with选项列表中选择Mkmk,Mkmk是CAA RADE提供的连编命令。
b、在Workspace Directory文本框中指定范例所在的文件夹,如本例的E:\V5R9\UsercaseWorkspace。CAA RADE中的Workspace是Project存在的地方。
c、在Toollevel选项列表中选择V5R9_T09。
点击OK,RADE进行关于本用例的初始化工作,显示相关窗口和信息。
   
  
因为在新建的Workspace中不存在项目Project,CAA RADE将为用户生成一个,并给以提示。
  
[$#61548]  选择模块
Project生成之后,CAA RADE要求选择项目所包含的模块,这里我们选择CAAsysCallBack.m.
   
    点击OK,RADE提示用户需连接的资源库,RADE称其为prerequisite workspace。这是可想而知的,因为范例及其用户编写的程序,要在Dassault Systemes应用系统环境下运行,必须把Dassault Systemes资源和用户的客户化程序整合在一起。
  
       
   点击OK,RADE显示范例程序的结构,包括类和文件。
         
        
[$#61548]  定义Prerequisite Workspace,在CAAV5 Workspace菜单中选择菜单项Locate Prerequisite Workspace…。
   
a、  选择Mode下Access prerequisites from their origin location。
b、  在Origin for prerequisite Frameworks下,把CATIA的资源添加为Prerequisite Workspace。方法是点击Add…。点击OK,RADE调用相关资源。
[$#61548]  程序的连编,选择Build菜单下的mkmk命令。在出现的Code Builder(mkmk)窗口指定相关选项,见下图。
     
   点击OK,RADE开始建立连编代码。
     
[$#61548]  建立Debug时运行程序,在CAAV5 Workspace菜单下,选择Create/Update Runtime View…,在Create RunTimeView中选择all.
                  
      点击OK,RADE弹出相关窗口。
       
     把CAASysCallback.m所在的Project设为激活的状态,Class View或File View右键CAASysCallback.m classes。
             
选择Set as Active Project。
       
[$#61548]  运行范例,指定范例程序可执行代码的地址。在Project菜单中选择Settings…,RADE弹出Project Settings窗口。在Debug下指定范例程序可执行代码的地址。点击OK。
        
    在Build菜单下,点击Execute CAASysCallBack.exe运行程序。
                           
   
六、  结论.
Component Application Architecture (CAA) 组件应用架构,是第三方产品集成和一般客户进行客户化、个性化设计的强有力的工具,利用CAA完全可以实现Dassault Systemes应用的深层次开发。但是,由于Dassault Systemes应用本身的复杂性和CAA所涉及的深层次内容,利用CAA进行二次开发必然具有一定的复杂性和难度,用户在熟练掌握Dassault Systemes应用系统的同时,还必须具备软件开发的知识和能力。
作者: ldf1998    时间: 2003-12-23 14:08
darkhorse wrote:
一篇CATIA-CAA的论文

多谢!darkhorse兄!
作者: pinkwall    时间: 2003-12-23 14:12
好东东!! 呵呵
  
偶最近正在写一个项目的CAA 实现论证报告
作者: pinkwall    时间: 2003-12-23 15:15
dark兄有没有RADE阿
作者: ferarriii    时间: 2003-12-25 17:46
谢谢黑马兄!
作者: nwpu_ganzh    时间: 2004-1-18 08:44
so so
作者: pinkwall    时间: 2004-1-27 01:12
这片文章其实是翻译了caa rade帮助上的2页
作者: chenqa    时间: 2004-2-20 23:32
翻译得挺好,现在CAA对Visual Studio.net的支持还不太完善,建议大家用rade时还是用VC++6.0
作者: pinkwall    时间: 2004-2-21 17:00
感觉CAA挺强大的
  
尤其是提供的例子
作者: acoka    时间: 2004-3-25 10:13
CAA的c++的例子不完备
很多例子都只有最基础的东西
有些例子还由错
比如把Desactive()拼成Deactive()之类
作者: liketulip    时间: 2004-4-3 16:32
目前的问题:
1、现在的catia是v5r12 sp2版本,CAA API同样也是v5r12 sp2版本,但是CAA RADE却是v5r13的版本,运行时大题没问题,但是总是弹出对话框,写着“没有合适的许可证来实现CDC的请求”,不知道是不是协议 *** 还是有问题。
2、按照本贴的文章最后的例子做一一下,编译的时候有错误提示无法打开库mfc42u.lib。不知道这个库是系统的还是和CATIA有关的,是否和版本不一致有关系。编译提示如下:
  
== cmd /c mklnk ==========================================================================
## start step: headerlist   at 04/03/2004-16:16:02
## end   step: headerlist   at 04/03/2004-16:16:03
  
## start step: headermap   at 04/03/2004-16:16:03
## end   step: headermap   at 04/03/2004-16:16:03
  
## start step: compilation   at 04/03/2004-16:16:03
## end   step: compilation   at 04/03/2004-16:16:03
  
## start step: link   at 04/03/2004-16:16:03
# make: CAASystem.edu\CAASysCallBack.m intel_a\code\bin\CAASysCallBack.exe
LINK : fatal error LNK1104: cannot open file "mfc42u.lib"
# make-ERROR: intel_a\code\bin\CAASysCallBack.exe
## end   step: link   at 04/03/2004-16:16:03
  
== Command done, return code = 0
  
Tool returned code: 0
  
上面存在的错误:LINK : fatal error LNK1104: cannot open file "mfc42u.lib"
作者: acoka    时间: 2004-4-4 20:30
你用的是盗版?
正版拿不到CDC,根本连workspace都打不开, 也没法mkmk
作者: liketulip    时间: 2004-4-4 22:25
是D版的,不知道是不是 *** 的不太好,还是因为版本的问题
这个错误正常吗
作者: liketulip    时间: 2004-4-4 22:45
我的协议是可以选择CDC的
但是去总是弹出对话框
比较奇怪
作者: rocok    时间: 2004-6-30 08:44
各位大侠,哪里有这些模块的下载啊
作者: acoka    时间: 2004-6-30 09:12
不明白为什么现在把manual都可以叫论文
作者: nustcxq    时间: 2004-7-1 19:50
第十二楼兄
  
这是由于你的VC没有装好
你重装以下VC,在定制安装的时候选择Select All,然后再去掉你不需要的VFP,VB,VSS等选项,你就会发现可以了
  
原因可能在于,VC的某些选项默认的没有安装,比如对于Unicode的支持,从而导致你不能读取mfc42u.llib
作者: zouys2002    时间: 2004-7-7 22:12
谢谢!好东西,我顶!
作者: lp_a007    时间: 2006-7-21 23:24
写的不错
作者: vodka    时间: 2006-7-22 03:30
读书笔记也可以叫做“论文”?热昏头了
作者: winteraple    时间: 2008-9-4 03:49
好东西啊,谢谢。
作者: daoxiangcun    时间: 2008-12-1 15:45
不管如何,还是要谢谢楼主,大家只有相互交流才能提高得更多。
作者: xiaoh5    时间: 2008-12-6 09:48
11x
谢谢噶
作者: 415409091    时间: 2008-12-23 23:45
asdfasdfasdfsadfasdfasdf
作者: damo2008    时间: 2009-1-6 15:26
好东东!! 呵呵 13x
作者: hzynhnh    时间: 2009-2-14 18:34
多谢。。。。。。。。
作者: ytyu2004    时间: 2009-3-21 15:45
向DarkHorse学习
作者: hqshi2008    时间: 2009-3-26 09:54
谢谢   太好了
作者: pirreo    时间: 2009-5-31 15:32
还可以!!
作者: pirreo    时间: 2009-5-31 15:33
值得借鉴!!
作者: lnkk65    时间: 2009-6-8 13:50
非常感谢
作者: liu1513    时间: 2009-6-25 09:02
好东西支持
作者: 129615    时间: 2009-6-25 10:09
好东西支持
作者: fuyao10    时间: 2009-6-26 14:49
很想很想学习学习
作者: zhan_xiaohua    时间: 2010-6-20 09:05
谢谢楼主共享
作者: helloworld87    时间: 2010-7-19 22:52
绝对是好东西,顶起!另外这里用到的CATIA R14不知道哪位仁兄有啊?QQ邮箱:515565426@qq.com
作者: mengguanjun    时间: 2010-8-16 09:40
下到这篇文章了,翻译的挺清楚
作者: jzp_1981    时间: 2010-9-17 22:55
多谢!darkhorse兄!
作者: xqlu    时间: 2010-10-2 21:44
CATIA V5R9的东西了,用的是VC6.0开发,不下也罢啊,现在R17用的是VS2005。而且更要命的是作者写的语无伦次,感觉作者母语不是汉语。
作者: dongxiaow    时间: 2010-10-4 22:26
谢谢,支持
作者: 未雪    时间: 2010-12-28 15:48
1#   谢谢你
作者: chole5740    时间: 2011-6-18 17:09
xuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexixuexi
作者: P.K    时间: 2012-5-19 12:58
good ,xiexie




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3