1. CATIA二次开发全景认知
在进入任何一行代码之前,先把“CATIA二次开发”这张地图看清楚,是后续所有工作的前提。很多初学者一上来就急着写宏、调API,结果卡在“为什么我的脚本在V5能跑、到V6就报错”“为什么CAA工程编译不过”这类问题上,根源往往不是语法,而是对CATIA自动化架构的整体认知缺失。本章不写代码,只解决三件事:CATIA的自动化体系是怎么分层的、CAA与Automation API到底差在哪里、以及一个真实的设计自动化项目长什么样。
一、CATIA自动化的三层体系
CATIA的二次开发能力并非单一接口,而是由三个层次构成的体系,理解它们的边界比记住API名称更重要。
最底层是CAA(Component Application Architecture),即组件应用架构。它是Dassault Systèmes用来构建CATIA自身功能的C++开发框架,CATIA的每一个命令、每一个工作台,本质上都是基于CAA构建的组件。CAA提供的是“与CATIA内核同级别”的能力:可以创建全新的工作台、定义新的特征类型、扩展几何建模内核、深度定制用户界面。代价是开发门槛高——需要C++、需要RADE(Rapid Application Development Environment)集成开发环境、需要理解组件模型(Component)、接口(Interface)、TIE(Type Information Extension)等一整套概念,且编译部署与CATIA版本强绑定。
中间层是Automation API,也就是我们常说的“自动化接口”。它是一套基于COM(Component Object Model)技术的对象模型,通过VBScript、VBA、Python(借助pycatia等封装)、C#等语言即可调用。Automation API把CATIA的功能封装成对象:Application、Documents、Part、Body、ShapeFactory、HybridShapeFactory等,开发者通过操作这些对象来驱动CATIA。它的优势是上手快、无需编译、跨语言,适合做批量处理、参数化建模、报表导出这类任务;局限是只能调用CATIA已经暴露出来的功能,无法创造CATIA本身不具备的能力。
最上层是知识工程(Knowledgeware),包括公式(Formula)、规则(Rule)、检查(Check)、设计表(Design Table)、知识顾问(Knowledge Advisor)等。严格说它不算“编程”,而是用CATIA内置的规则语言描述设计意图,适合参数联动、配置驱动这类场景,常与Automation API配合使用。
二、CAA与Automation API的核心区别
把两者放在一起对比,差异集中在五个维度上,这也是选型时的判断依据。
| 对比维度 | CAA | Automation API |
|---|---|---|
| 开发语言 | C++ | VBScript / VBA / Python / C# 等 |
| 开发环境 | RADE + Visual Studio | CATIA自带宏编辑器或任意IDE |
| 部署方式 | 编译为DLL,需注册到CATIA | 脚本文件直接运行,无需编译 |
| 能力范围 | 可扩展内核、创建新工作台与特征 | 仅调用已暴露功能 |
| 版本兼容 | 与CATIA版本强绑定,升级需重编译 | 跨版本兼容性较好 |
一个实用的判断原则是:如果CATIA现有功能能拼出来,就用Automation API;如果必须让CATIA“长出”它原本没有的能力,才上CAA。实际项目中,90%以上的设计自动化需求——批量改名、参数驱动建模、BOM导出、图纸批量生成——都属于前者。
三、设计自动化的典型应用场景
设计自动化不是炫技,它解决的是重复劳动和一致性问题。以下场景在汽车、航空、船舶等行业中非常普遍:
- 参数化模板建模:把标准件、典型结构做成模板,输入尺寸参数后自动生成完整模型。例如输入法兰外径D=120mm、内径d=80mm、厚度t=15mm、螺栓孔数n=8,脚本自动完成草图、拉伸、阵列、倒角。
- 批量数据转换与清理:将数百个CATPart批量导出为STEP、批量更新图纸标题栏、批量替换材料属性。
- 设计校验与合规检查:遍历装配体,检查最小壁厚、干涉、命名规范,输出检查报告。
- BOM与报表自动生成:从装配树提取零件号、数量、材料、质量,写入Excel。
- 与外部系统集成:从PDM/ERP读取参数,驱动CATIA建模,回写结果。
四、本课程实战项目预览
本课程将围绕一个贯穿始终的实战项目展开:“法兰类零件参数化自动建模与BOM导出工具”。选择它是因为法兰结构简单但要素完整——包含草图、旋转/拉伸、孔阵列、倒角、材料属性、自定义属性,几乎覆盖了Automation API最常用的对象和方法。
项目分四个阶段推进,每个阶段都有可验证的交付物:
- 阶段一:环境与第一个宏。配置CATIA宏环境,录制并运行第一个VBScript,理解Application、ActiveDocument、Part等基础对象的获取方式。
- 阶段二:参数化建模脚本。用ShapeFactory和HybridShapeFactory构建法兰几何,参数从Excel读取,示例参数为D=120、d=80、t=15、n=8、孔中心圆直径PCD=100。
- 阶段三:批量处理与BOM导出。遍历指定目录下的CATPart文件,提取自定义属性,生成CSV格式BOM。
- 阶段四:界面封装与部署。用VBA UserForm或Python+tkinter做简单界面,打包为可分发工具。