简介:面向CATIA二次开发入门者的环境搭建文档,围绕CAA、RADE与Visual Studio 2005的安装及联调配置展开,帮助初学者跨过专业软件部署这道门槛。内容按VS2005(含MSDN帮助文档)、CATIA V5R19(虚拟光驱挂载、根目录安装与破解)、CAA(完全安装、第二张光盘切换、include解压)、RADE(安装、破解文件替换、许可证注册)以及CATVBTSetup开发环境搭建的顺序推进,每一步都配有界面截图与文字说明,并记录了作者摸索过程中遇到的问题与处理办法。压缩包内为1个doc文档,约4.8MB,可直接查阅或打印后对照操作。目前已有5407人学习,适合刚接触CATIA二次开发、需要一份可照做配置清单的高校学生与工程技术人员。
1. CAA+RADE 这套环境到底卡在哪:一份十多年前的装机笔记为什么还值得翻
装 CATIA 二次开发环境的人,十个里有八个会在第三天卡住——不是 C++ 不会写,而是装完 RADE 之后,VS2005 的菜单里那个 Open CAA V5 Workspace 根本点不出可用的东西。这份流传于 2011 年前后的装机笔记,记录的恰好是 CATIA 二次开发里最脏、最绕、也最没法跳过去的一段:CAA、RADE、VS2005 三件套的安装与串联。它不讲几何内核,也不讲 C++ 语法,只解决一件事——让一个从没碰过 CAA 的人,在一台干净的 32 位 Windows 上把 Mkmk 工作空间建起来,把 CAASysCallBack 编译通过,让整条链路真正跑通。适合手里已经有安装介质、却被环境拦在门外的在校生和刚转岗的工程师,也适合需要给新人搭一台“能编译”的机器、又不想每次从头回忆的老手。
2. 装之前先把目录和版本固定下来:四个决定成败的前置约定
这套环境的坑,八成都不是装的时候踩的,是装之前没想清楚埋下的。CAA 和 RADE 不是那种“装上就能用”的普通软件,它们要往 CATIA 的安装树里插东西、要往 VS 的注册表里写插件、要靠一堆环境变量互相找得到对方。任何一个路径对不上,最后的表现都长一个样:菜单是灰的,或者点了弹一个说不清原因的对话框。所以正经干活之前,先把下面四件事定死,后面能省掉至少两次重装。
2.1 版本矩阵:VS2005、V5R19、CAA、RADE 为什么必须成套
CAA 这条技术栈对版本是硬绑定,不是“差不多就行”。RADE 安装完了要在 VS 里注册一个叫 CAA V5 Workspace 的插件,这个插件是按特定 VS 版本的 COM 接口编的;CAA 的编译工具链 mkmk 又要求 Tool level 和 CATIA 主版本严格对齐,V5R19 对应的就是V5R19_B19,填错一位,工作空间能打开,但一编译就报找不到 framework。这也是为什么笔记里写死 VS2005:那个年代的 CAA 只认 VS2003 和 VS2005,你装 2008 或 2010,RADE 的安装程序可能连插件都注册不进去,或者注册进去了菜单也点不动。
我一般会把版本关系直接写成一张表贴在机器旁边,避免装到一半凭记忆去猜:
| 组件 | 版本 | 关键约束 |
|---|---|---|
| Visual Studio | 2005 | 必须含 C++、C#、.NET、VB,且装 MSDN |
| CATIA | V5R19 SP0,32 位 | 装在盘符根目录,如D:\catia_v5r19 |
| CAA | 与 V5R19 配套 | 安装目录必须指向 CATIA 安装目录 |
| RADE | 与 V5R19 配套 | 与 CATIA 目录平级,如D:\RADE |
| 编译工具链 | mkmk | Tool level 选V5R19_B19 |
装之前在纸上确认这五行全部对得上,比装完再排查省事得多。特别注意那位“32 位”:这套组合里所有二进制都是 x86 的,64 位系统上跑得起来,但目录、DLL 和许可文件全按 32 位布局走,混着装 x64 版本会把 JS0GROUP.dll 这类共享库的版本搞乱。
2.2 目录规划:为什么 CATIA 和 RADE 都要装在盘符根目录
笔记里反复强调“安装目录为本地盘符的根目录”,很多人当废话一路回车,结果后面就翻车。原因不玄学:CAA 的 framework 路径是拼接出来的,CATInstallPath会去拼intel_a\code\bin、CAADoc\Doc、win_b64(这里是win_b32/intel_a)这些固定子目录,路径层级越深,拼出来的绝对路径越长;而 mkmk 和部分老工具对路径长度、对空格和中文都极其敏感。装在D:\Program Files\Dassault Systemes\B19\这种带空格的路径下,编译脚本里没加引号的地方会当场断掉。
所以定两个目录:CATIA 装D:\catia_v5r19,RADE 装D:\RADE,两者平级。平级不是审美问题,RADE 的CATVBTSetup.exe需要你去指定 CATIA 的安装目录,它据此去 CATIA 的 bin 下找依赖库;如果 RADE 被塞进 CATIA 目录里面,某些相对路径解析会跑偏。我自己习惯在装之前先建好这两个空目录,装的时候直接选,省得安装程序帮你新建一个带空格的默认路径。另外,整个路径上不要出现中文,用户名是中文的都建议新建一个纯英文的本地账户再开干。
2.3 标识、环境目录与安装类型:三个容易被一路回车带过的选项
安装向导里有三处特别容易被无脑下一步糊弄过去。第一处是标识(Identifier),CATIA、CAA、RADE 三次安装都会问,它不是一个随便填的名字,而是这套环境在注册表和环境变量里的身份,三处填的必须是同一个值,否则 RADE 找不到它该挂到哪个 CATIA 上。第二处是环境目录,向导会给你一个默认值,如果提示目录不存在就选“是”让它新建——这一步千万别跳过,跳过之后环境变量文件没生成,后面启动 CATIA 会直接报环境错误。
第三处是安装类型,CAA 和 RADE 都必须选完全安装。很多人觉得“我只写 C++,不装文档行不行”,不行。CAA 的完全安装里包含了编译要用的头文件、库、工具链和文档,缺一块,编译时就是一堆找不到符号的错误,而且报错信息不会告诉你是哪个组件没装。联机文档那一页倒是可以选不装——那是给 CATIA 用的在线帮助,跟开发链路无关,装了纯粹占硬盘。
2.4 许可与授权文件的放置原则
这里只讲原则,具体文件按你手上的合法授权介质和供应商说明来。整套组件的许可分成两层:CATIA 侧和 RADE 侧。CATIA 侧的许可是在安装完成后、通过供应商提供的许可配置流程完成的,配置没走完之前 CATIA 主程序是打不开的,这不是故障,是设计如此。RADE 侧则依赖一组放在D:\RADE\intel_a\code\bin下的可执行组件,以及一个从 CATIA 的 bin 目录复制过来的共享库。
关于那个共享库,原理值得说清楚:JS0GROUP.dll是 CATIA 的基础运行时库,RADE 的编译和链接过程会调用到它。如果 RADE 目录下自带的版本和 CATIA 主程序的版本对不上,表现出来就是编译能过、一运行就崩,或者在 CATVBTLicenser 里点 Apply 之后没有任何回执。所以流程是反过来的:先确认 CATIA 已经能独立启动,再把 CATIA 的JS0GROUP.dll复制到 RADE 的 bin 下覆盖,让两边的运行时严格一致。顺序搞反,等于拿一个来路不明的库去覆盖一个正常的库。
3. VS2005 与 CATIA V5R19 正式安装:从虚拟光驱到 intel_a\code\bin
这一章是纯操作,但每一步都带着“为什么”。顺序上必须先 VS 后 CATIA,因为 RADE 安装时会往 VS 里注册插件,VS 不在,插件无处可挂;而 CAA 又要装进 CATIA 的目录树,CATIA 不在,CAA 的安装程序会直接拒绝往下走。所以链条是:VS2005 → CATIA → CAA → RADE,一个都不能调换。
3.1 VS2005:组件勾选与 MSDN 的必要性
VS2005 安装时重点只有两个。一是组件,VB、.NET、C#、C++ 四项在笔记里被标为必装。实际情况是 CAA 的工程模板和部分工具依赖 .NET 运行时和 C# 的编译组件,你只勾 C++ 也能装完,但后面在 VS 里挂 CAA 插件、或者在解决方案里展开 CAA 的托管节点时会缺东西。二是 MSDN 帮助文档,很多人嫌它占空间跳过,然后第一次写 CAA 代码就抓瞎——CAA 的 API 命名和参数约定跟普通 Win32 完全是两套风格,没有本地文档,查一个接口签名能翻半天。
安装完成后先别急着装 CATIA,启动一次 VS2005 确认能正常进入主界面,顺便看一眼“工具 → 选项”里有没有异常。这一步是给自己留个基准点:后面 RADE 装完,如果 VS 启动报插件加载失败,你能立刻判断是 RADE 带来的问题,而不是 VS 本身没装好。我一般还会在这一步把 VS 的默认解决方案目录改到一个纯英文短路径下,避免后面 CAA 工程生成时路径过长。
3.2 CATIA V5R19:镜像挂载与七个安装页面的决策点
CATIA 的安装介质是 ISO,先用虚拟光驱工具挂载,再运行里面的 setup。整个向导有七八个页面,大部分可以默认,但有几个必须自己拿主意。把决策点整理成下表,装的时候照着走:
| 页面 | 选择 | 说明 |
|---|---|---|
| 目标文件夹 | D:\catia_v5r19 | 必须盘符根目录,目录不存在则新建 |
| 标识 | 与后续 CAA、RADE 一致 | 三处必须同一值 |
| 环境目录 | 默认,不存在则新建 | 生成环境变量文件,不能跳过 |
| 安装类型 | 完全安装 | 缺组件后面编译会莫名报错 |
| 后续默认页 | 直接下一步 | 无需改动 |
| 联机文档 | 不安装 | 与开发链路无关 |
| 确认页 | 点安装 | 等待完成,不要中断 |
装完之后先别双击图标,许可没配置之前打不开是正常的。这时候正确的动作是去D:\catia_v5r19\intel_a\code\bin下确认目录结构完整——这个code\bin是整个技术栈的枢纽,后面 CAA 的编译输出、RADE 的许可组件、VS 的调试配置全要往这里对。目录不存在或者里面只有零星几个文件,说明安装没走完,别急着往下装 CAA。
3.3 许可配置与首次启动验证
许可配置按你手上合法授权介质附带的说明执行,配置完成后第一次启动 CATIA。这一步的验收标准很朴素:主界面能正常打开,新建一个 Part 能进草图,退出时不报错。三个动作都过,说明 CATIA 这一层是健康的,可以往上叠 CAA 了。如果启动时报环境相关的错误,八成是 3.2 里环境目录那一步跳过了,回去检查环境变量里有没有指向D:\catia_v5r19的条目。
这里有个血泪经验:CATIA 首次启动会初始化一堆用户配置,这个过程不要在远程桌面或者分辨率异常的会话里做,也不要在装了一半的时候强杀进程。初始化没写完,后面 CAA 的CATVBTSetup去读 CATIA 的配置目录时会读到半截文件,表现是 Target 页面选完目录点 OK 没反应,也不报错,就干耗着——这个现象我在两台机器上见过,最后都是删掉用户配置目录重来才好的。
3.4 装完先做一次目录自检
在装 CAA 之前,花两分钟把关键目录列一遍,比装完再回头找问题快得多。在 cmd 里跑:
:: 检查 CATIA 安装树的关键子目录是否存在 dir /b D:\catia_v5r19 :: 应能看到 intel_a、CAADoc 等目录 dir /b D:\catia_v5r19\intel_a\code\bin :: 应能看到大量 dll 和 exe,这是后续所有配置的基准第一行确认根目录下有没有intel_a和CAADoc。intel_a是 32 位平台的二进制目录,CAADoc是文档和示例 framework 的所在,CAA 安装时会往这里写东西,RADE 的CATVBTSetup又要去CAADoc\Doc找文档路径,两个都在才说明 CATIA 装完整了。第二行确认code\bin里有没有成规模的 DLL,如果只有几个文件,说明“完全安装”没生效,这时候装 CAA 只会把问题往后推。
命令本身没什么技术含量,关键是养成“每装一层就验一层”的习惯。这套环境的故障有个特点:后一层的报错往往是前一层没装好导致的,如果你不在每层之间设检查点,最后面对的就是一个笼统的“工作空间打不开”,排查范围大到离谱。
4. CAA 与 RADE 联调:把开发框架挂到 CATIA 的目录树上
CAA 和 RADE 的关系,很多新手一开始是懵的:两个都要装,都要跟 CATIA 版本配套,那它们到底谁是谁的上位?简单说,CAA 是那套庞大的开发框架和文档体系,它必须长在 CATIA 的安装树里,因为它要复用 CATIA 的库和头文件;RADE 是快速应用开发环境,提供 VS 里的插件、mkmk 的封装和一键编译的能力,它独立于 CATIA 目录存在,靠配置去“指向”CATIA。理解了这层,后面每一步为什么这么选就都顺了。
4.1 CAA 安装:为什么必须落在 CATIA 安装目录里
CAA 的安装向导第一页之后就会问安装目录,这里必须选D:\catia_v5r19,也就是 CATIA 的根,不是它下面的某个子目录。原因在于 CAA 装进去之后会往intel_a、CAADoc这些既有目录里合并文件,编译时要用的头文件和静态库就散落在这套结构里,路径是相对 CATIA 根来解析的。你如果把它装到D:\CAA这种独立目录,装是能装完,但后面 mkmk 编译时找不到CATInstallPath下的库,报的错还特别含糊。
安装类型同样选完全安装。中途会提示插入第二张盘,这时候把 CAA 的第二张光盘映像挂到虚拟光驱里,再点确定,向导会继续从新挂载的盘符读文件。这里有个细节:不要在第一张盘还挂着的时候去“弹出”它,虚拟光驱的盘符一变,向导缓存的路径就失效了,表现是卡在某个百分比不动。稳妥做法是先挂第二张,确认盘符出现,再回向导点确定。
CAA 装完后还有一步收尾:把include.rar解压到D:\catia_v5r19。这个压缩包里是 CAA 的头文件集合,解压后会在 CATIA 根下形成 include 目录结构。这一步漏了,编译时第一个报错就是找不到CATSysFoundation.h之类的头文件。解压时注意别多套一层文件夹,要让 include 目录直接出现在D:\catia_v5r19下面。
4.2 RADE 安装与二进制文件对齐
RADE 装到D:\RADE,与 CATIA 平级。向导里的标识要跟前两次填的一致,环境目录用默认值、不存在就新建,安装类型选完全安装。装完之后它还不能用,需要做一轮二进制对齐,这一步是整个流程里最容易出错的地方,我按顺序拆开说。
第一步,把授权介质里那组 RADE 侧的可执行组件(LaunchCommandControl.exe、mkmkM.exe、mkstepM.exe、ReleaseServer.exe)放到D:\RADE\intel_a\code\bin下,覆盖同名文件。这四个分别对应启动控制、mkmk 编译、步骤编译和许可服务,缺一个,编译链路就在对应环节断掉。
第二步,把D:\catia_v5r19\intel_a\code\bin\JS0GROUP.dll复制到D:\RADE\intel_a\code\bin并覆盖。前面说过,这是为了让 RADE 侧的运行时和 CATIA 主程序严格同版本。覆盖之前建议把 RADE 自带的那个备份一下,万一后面出问题还能回退。
第三步,运行D:\RADE\intel_a\code\bin\CATVBTLicenser.exe,在弹出的界面里把右侧的选项全部勾上,点 Apply。这个工具做的是 RADE 侧的许可登记,勾选不全的话,编译时会在链接阶段报许可类错误,错误码和“找不到库”长得很像,容易误判。点完之后要看到成功提示,没有提示就说明前面某一步的文件没放对位置。
4.3 CATVBTSetup:把 RADE 和 CATIA 正式接起来
CATVBTSetup.exe也在D:\RADE\intel_a\code\bin下,它的作用是把 RADE 和 CATIA 的路径关系写进配置,让 VS 里的插件知道去哪找 CATIA。运行后会弹一个提示,忽略它继续。界面上两个关键项:
| 选项 | 填写内容 | 作用 |
|---|---|---|
| Target → Installation Directory | D:\catia_v5r19 | 告诉 RADE 去哪找 CATIA 的库和 bin |
| Documentation → Documentation installation Path | D:\catia_v5r19\CAADoc\Doc | 指定本地文档路径,供 VS 内联帮助使用 |
填完点 OK,看到验证消息就说明写进去了。这里最常见的翻车是 Documentation 那栏路径填错——CAADoc\Doc这个子目录是 CAA 装完之后才有的,如果你在装 CAA 之前就跑了 CATVBTSetup,这个目录不存在,工具可能不报错但写入一个无效路径,后面在 VS 里查文档就是一片空白。所以顺序一定要守住:CATIA → CAA(含 include 解压)→ RADE → CATVBTSetup。
4.4 在 VS2005 里建立第一个 CAA 工作空间
前面全是铺垫,到这一步才真正进到开发工具里。先在D:\catia_v5r19下新建一个工作空间目录,比如CAAWorkspaceR19,然后把CAADoc下的CAASystem.edu整个文件夹复制进去。这个.edu目录是一套官方示例框架,包含 IdentityCard、源码和 mkmk 描述文件,拿它当第一个工程最省事,因为它的依赖最少、结构最标准。
打开 VS2005,走“文件 → Open CAA V5 Workspace”,With 下拉选MkmkWorkspace,Directory 选刚才那个CAAWorkspaceR19,Tool level 选V5R19_B19,点 OK。会先弹一个警告,点 OK;再提示工作空间里没有工程,点确定。然后展开树形结构,找到CAASysCallBack.m这个文件,选中点 OK。VS 的解决方案视图里就会出现框架节点了。
还没完。菜单栏此时多出 CAAV5Workspace 菜单,点开选Locate Prerequisite Workspaces...,Mode 选Access prerequisites from their origin location,然后在下方的 Origin for prerequisite Frameworks 里点 Add,把D:\catia_v5r19加进去,点 OK。这一步是告诉编译系统“依赖的框架在 CATIA 安装目录里”,不加的话,编译时所有 CATIA 提供的库都会被判为找不到。
5. 避坑与排查:七个让你重装三次的细节
这套环境最气人的地方是错误信息几乎没有指向性。同一个“工作空间打不开”,可能是路径有空格,可能是标识不一致,也可能是某个 DLL 版本不对。下面这几条是实际装机里反复出现的,按“现象 → 原因 → 解决”记下来,出问题时对着查。
5.1 安装阶段:路径、盘符与权限
现象一:CAA 安装到一半卡住不动,进度条停在同一位置十几分钟。原因基本是第二张盘没挂上,或者挂上之后盘符变了而向导还在等原来那个盘符。解决方法是先确认虚拟光驱里已经是第二张映像,盘符在资源管理器里能看到,再回向导点确定;如果已经卡死,只能结束进程,删掉 CAA 装了一半的残留目录重来,不要试图在原目录上覆盖安装。
现象二:CATIA 能装完,但一启动就报环境错误,或者干脆闪退。八成是安装时环境目录那一步选了“否”或者跳过了,导致环境变量文件缺项。解决方法是重新跑一次安装程序选修复,或者手工确认系统环境变量里有指向D:\catia_v5r19的条目。还有一种可能是安装路径里带了空格或中文,这种情况改不回来,只能卸了重装到纯英文短路径。
现象三:许可配置工具点了没反应,或者 Apply 之后没有任何回执。原因通常是前面某个文件放的目录不对,或者JS0GROUP.dll还是 RADE 自带的旧版本。解决方法是按 4.2 的三步重新走一遍,重点确认四个可执行组件确实落在D:\RADE\intel_a\code\bin而不是它的上级目录,以及 DLL 的复制方向没有搞反。
5.2 工作空间阶段:没有工程、找不到 Prerequisite
现象四:Open CAA V5 Workspace 之后提示工作空间里无工程,展开树也看不到.m文件。原因通常是CAASystem.edu复制的位置不对——它必须直接在工作空间根目录下,而不是再多套一层。另一个可能是 Tool level 选错,选成别的版本号,插件认不出这套 framework。解决方法是检查目录层级,确认工作空间根下有CAASystem.edu文件夹,再核对 Tool level 是否为V5R19_B19。
现象五:编译报大量“找不到头文件”或“无法解析的外部符号”。前者是include.rar没解压到 CATIA 根,或者解压时多套了一层目录;后者是Locate Prerequisite Workspaces里没加 CATIA 安装目录,或者加了但 Mode 选错。解决办法是先dir确认D:\catia_v5r19\include存在且有内容,再回 VS 的 CAAV5Workspace 菜单里重新配一次 Prerequisite。
现象六:VS2005 启动时提示加载项失败,CAA 菜单不出现。原因是 RADE 装在了 VS 之后但注册插件失败,常见于装 VS 时跳过了 .NET 相关组件。解决办法是确认 VS2005 的 .NET 组件完整,然后重新运行 RADE 的安装程序选修复,让它重走一遍插件注册。修完重启 VS,CAAV5Workspace 菜单应该就回来了。
5.3 环境变量与多版本共存
现象七:机器上同时装过别的 CATIA 版本,装完这套之后编译行为诡异。原因是环境变量里存在多个CATInstallPath或同类变量,后写的覆盖了先写的,导致 RADE 找错 CATIA。解决办法是在系统环境变量里逐个检查,只保留指向D:\catia_v5r19的那一份,其余删掉或改名,然后重启 VS 让新环境生效。多版本共存不是不能做,但必须靠独立的环境变量文件隔离,不能指望默认那一套自己分清楚。
这条坑值得多说一句:尽量不要在同一台机器上装两套 CAA 环境给不同版本用,除非你很清楚环境变量文件怎么切换。我见过为了省事把 V5R19 和另一个版本装在一起,结果两个的工作空间互相串,编译出来的东西运行时崩得莫名其妙,最后只能重装系统。如果确实有并行需求,用虚拟机做隔离,成本远低于排查串环境的时间。
6. 在 VS2005 里跑通 CAASysCallBack:一次可复现的验收
环境装完,最后要做的是“验收”。验收不是看菜单有没有出现,而是真的把示例工程编译一次、运行一次,确认整条链路通。以CAASystem.edu里的CAASysCallBack为目标,动作分三步。
第一步,在 VS 的解决方案视图里选中CAASysCallBack的框架节点,右键看有没有 Build 相关选项。如果有,直接编译;如果菜单是灰的,说明 Prerequisite 没配好,回第 4.4 节重做Locate Prerequisite Workspaces。编译前顺手打开该框架下的IdentityCard.h,确认里面声明的依赖框架名拼写正确——这是 CAA 里最容易被手滑改坏的文件,一个字母错了,编译报错会指向完全无关的头文件。
第二步,编译时打开输出窗口盯住三个阶段:mkmk 解析 framework、逐个编译源文件、链接生成 DLL。三个阶段里任何一个失败,报错的位置都直接对应前面某一章:解析失败查 Prerequisite,编译失败查 include 路径,链接失败查许可和库版本。这种“报错位置反查配置层”的思路,比逐条读错误信息有用得多。
第三步,编译成功后到输出目录确认 DLL 生成,文件名和框架名对得上,时间戳是刚才那一次。然后回到 CATIA 里加载这个 DLL 做一次最小功能验证——示例本身做的事情很简单,能加载、能不崩,就说明运行时库版本是对齐的。这一步过了,整个环境才算真正可用。
我自己的习惯是,每搭好一台机器,就把这台机器的最终验证结果记一行:日期、各组件版本、编译通过的框架名、CATIA 加载是否正常。后面再遇到“同样的步骤为什么这台就不行”,第一件事是把这一行拿出来对照,往往差异就在某个被忽略的小版本上。从那以后我每次给新人配环境,都强制走一遍这个三步验收,绝不允许“装完看起来没问题”就算结束——这套环境里,看起来没问题的机器,通常只是还没到报错的时候。希望帮到你。
本文还有配套的精品资源,点击获取