CAA是DS公司正对于其一系列产品,eg:CATIA,ENOVIA,DELIMA,etc,进行二次开发的一个环境。与VC结合的比较紧密。CAAV4是用于Unix/Linux的,到CAAV5才移植到Windows系统,但是V4至V5不是简单的版本升级,其实现方法上完全不一样,甚至连数据格式都不一样。比如说,CATIAV4的数据要想转到V5版本中来,需要专用的工具进行格式转换才可以。

CATIA是一个很专业的用于三维设计的软件,比Pro/E,UG更好。我不是学机械设计的,所以我也不会用CATIA,也不会用Pro/E和UG,好在哪里我就更不知道了,只不过大家都这么说罢了。DS的这一套东西用在飞机设计(波音,飞豹等)还有汽车设计领域比较的多,因为专业,所以庞大?呵呵,确实比较大,基本都需要工作站以上的机子才能跑。当然价格也很昂贵,不是一般的小公司有能力买的。

学习CAA的过程就是整天啃CAA的那个Encyclopedia和“研究”CAA自带的Case的过程,由于机械设计的专业知识缺乏,还是有点挑战性的。

CAA的介绍和安装在我收藏的一篇文章CAA及其应用》中已经有了详细的介绍,另外还有一篇pdf文档(暂时无法上传)介绍了CAA的RADE最起步验证是否安装成功。其中在Create/Update Runtime View之后,还可以通过Tools->Open Runtime Window直接输入exe的名字和参数也是可以运行的。

下面介绍一个具体的例子来说明工程中的每个文件是做什么用的。

1、      拷贝CAAProductStructure.edu你的文件夹,然后通过CAA RADE打开这个Case编译。

2、      在File View标签里面可以看到一系列的文件。*.edu是一个Framwork(框架),*.m是Module(模块),Module下一层次才是具体的CAA Class、Component、Interface等,整个层次就是这样的三层结构。

3、      在CAAProductStructure.edu files文件夹下面有三个子文件夹,ProductedInterfaces下存放一些头文件,这些头文件基本是模块或者类、接口的头文件,只是说明可以被框架里的其他的类或者模块调用。IndentityCard文件夹下含有IndentityCard.h文件,这个文件中声明了这个框架中用到了哪些PrereqComponent(其实就是系统的框架),在开发过程中所用到的在这里必须通过AddPrereqComponent包含。还有一个文件夹是CNext,用CAA RADE环境编译后总会生成一个CNext.exe,这应该和这里的CNext文件夹有些关系吧,其中resources毫无疑问是定义资源的文件夹,对话框、菜单、位图等VC传统的资源都在这可以定义。其中需要注意的是默认的资源语言是English,在其中有一个French的文件夹,这里面定义了一套French的资源,如果添加一个Simplified_Chinese的文件夹,也可以定义一套简体中文的资源,这些资源的加载都是自动识别的,和操作系统有关,当然也可以定义其他语言的资源,具体的还请察看Encyclopedia。Code文件夹下是定义dico和iid的,这也是和CNext有关的,如果没有这里面的说明,编译后运行CNext是没有效果的,因为和环境变量的那一套东西没有加载。这个CNext文件夹,在运行Create/Update Runtime View菜单后会在intel_a文件夹下生成一套几乎对应的东西,这一套是在运行的时候需要的,把intel_a文件夹复制添加到安装CATIA的地方去,执行CNext就会自动启动了开发以后的CATIA,这就使组件的奥秘吧,我也不太清楚。

4、      还有就是各个module的文件夹,下面有src和interfaces分别包含了源文件和头文件,不用解释,每增加一个CAA Class或者Interface这里就会对应的添加文件。需要注意的是Imakefile.mk文件,这是一个声明动态链接库的文件,用到的动态链接库都需要在这声明。

文件结构就是这个样子。

使用CAA V5 Help Viewer可以给你很便捷的帮助,在CAA RADE环境中按Ctrl+F1键就可以打开Help Viewer。在Index下输入你想要找的类或者函数都是可以的。比如说输入CATIIner..就可以看到有接口出来了,这是一个读取产品惯量(其实是质量、表面积、重心和惯量等)的接口,需要用到这个需要在Framework的IndentityCard.h中添加SpaceAnalysisInterfaces这个框架,还要在用到的地方包含CATIInertia.h头文件,在这个Module的Imakefile.mk中包含CATSaiSpaceAnalysisItf模块。如果不包含框架和模块会出现LNK2001错误,典型的有声明找不到实现的错误。

在开始动手之前当然还要看懂提到多次的Encyclopedia了,这里面有全面的介绍,有Index,还有Search。在动手之前,需要对各个模块是做什么用的有个大概的了解,还有把右下角的一个红色的RADE先看一下,其中介绍的怎么使用还是蛮详细的,还有规定了一些规范,在编程过程中是实用的,不按照它的rules来,可能会遇到意想不到的错误。慢慢实践,慢慢体会,知识源于积累的。

知道了文件结构和如果使用帮助,就可以开始尝试慢慢的开发需要的东西了

CAA介绍(转)的更多相关文章

  1. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  2. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  3. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  4. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  5. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  6. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  7. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  8. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

  9. ExtJS 4.2 介绍

    本篇介绍ExtJS相关知识,是以ExtJS4.2.1版本为基础进行说明,包括:ExtJS的特点.MVC模式.4.2.1GPL版本资源的下载和说明以及4种主题的演示. 目录 1. 介绍 1.1 说明 1 ...

随机推荐

  1. 如何写javascript代码隐藏和显示这个div

    如何写javascript代码隐藏和显示这个div 浏览次数:82次悬赏分:10 | 解决时间:2011-4-21 14:41 | 提问者:hade_girl <div id="div ...

  2. drf之序列化器的使用

    一.序列化器-Serializer 作用: 1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 2. 完成数据校验功能 3. 反序列化,把客户端发送过来的数据,经 ...

  3. java Collection中的排序问题

    java Collection中的排序问题 这里讨论list.set.map的排序,包括按照map的value进行排序. 1)list排序 list排序可以直接采用Collections的sort方法 ...

  4. 字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别CNN

    本项目使用卷积神经网络识别字符型图片验证码,其基于 TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址: ht ...

  5. CI 框架中的日志处理 以及 404异常处理

    最近在整理项目中的日志问题,查了一些关于 “CI 框架中的日志处理 以及 404异常处理” 的东西,顺便记录一下: 关于错误日志: 1. 在CI框架中的 system/core/CodeIgniter ...

  6. Activemq API使用(不整合spring)

    首先需要引入activemq的jar包,这里用的是5.14.4版本的 <!-- https://mvnrepository.com/artifact/org.apache.activemq/ac ...

  7. python基础学习-思维导图总结

  8. Oracle RAC集群搭建(一)-ASM共享存储卷

    01, ASM共享存储卷 安装集群的话,必须要有共享磁盘,目的是为作裁决磁盘使用.还需要有数据文件的共享磁盘 02,规划 主机 裁决磁盘 数据 rac1        1G*1          20 ...

  9. oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp

    一,简介 存活下来的远古级别的导入导出软件exp/imp  ,软件多数使用于oracle 9i 之前 到了10g以后基本全面被数据库泵(Data Pump)取代,即expdp/impdp.本文会分别介 ...

  10. 如何发布一个包到npm && 如何使用自己发布的npm包 && 如何更新发布到npm的package && 如何更新当前项目的包?

    如何发布一个包到npm First 在https://www.npmjs.com注册一个账号. Second 编辑好项目,文件大致如下: 其中,gitignore可以如下: .DS_Store nod ...