news 2026/6/10 18:06:11

CAA脚手架工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CAA脚手架工具

CAA Scaffold CLI:为 CAA Vibe Coding 铺路的命令行工具

CAA V6 是 Dassault Systèmes 3DEXPERIENCE 平台的 C++ 二次开发框架。它的学习曲线陡峭——严格的目录层级、繁琐的宏定义、依赖注册表的环境配置、GBK 编码的编译输出,每一项都在拉高开发门槛。

2025 年以来,Claude Code、Codex、Trae 等 AI 编码 Agent 的崛起让 “Vibe Coding” 成为可能——开发者用自然语言描述意图,Agent 自动编码、编译、测试。但这一切的前提是:开发工具必须是命令行友好的。GUI 插件对 Agent 而言是一堵墙。

CAA Scaffold CLI就是为此而生的。它是一个纯命令行工具,把 CAA V6 开发全流程——从创建项目骨架到打包安装程序——全部暴露为 11 个简洁的子命令。Agent 可以直接调用,不需要模拟鼠标点击,不需要解析 IDE 日志,不需要猜测环境变量在哪儿。


Agent 能做什么

1. 项目脚手架 —— 一句话就建好了

用户对 Agent 说:「帮我建一个叫 MyFramework 的开发框架,包含 3 个模块,一个 command,一个 interface」

Agent 执行:

caa-scaffold fw MyFramework--typeimpl caa-scaffold mod CoreMod--fwMyFramework--apipublic caa-scaffold mod UtilMod--fwMyFramework--apiprivate caa-scaffold mod TestMod--fwMyFramework--apiprotected caa-scaffoldsourcecommandDoWork--fwMyFramework--moduleCoreMod caa-scaffoldsourceinterface IPubIface--fwMyFramework--moduleCoreMod--apipublic

几秒内,完整的 CAA 目录树落地,所有头文件、Imakefile、IdentityCard、导出宏自动就位。Agent 不需要背 CAA 项目规范——CLI 已经把规范编码进 YAML 模板了。

覆盖的模板类型:

类别覆盖
FrameworkImplementation / Interface / Interface-IDL / Test
Modulepublic / protected / private 三级 API 暴露
SourceCommand、StateCmd、Class、Interface、Component(5 子类型)、Adapter
自动注入IID UUID、COM GUID 初始器、导出宏头文件、.dico/.func 字典更新

2. 构建工具链 —— Agent 自动搞定环境

CAA 的编译命令行(mkmkmksccmkodt)出名的难伺候:必须先tck_init,再tck_profile,再mkGetPreq,而且终端得切到 GBK 编码不然中文全是乱码。让 Agent 自己去试这些步骤,大概率迷失在半路上。

CLI 把这些环境和编码细节全部封装了。Agent 只需要:

caa-scaffold init# 一次性:自动从注册表发现 CAA 版本,初始化环境caa-scaffold build# 编译caa-scaffold check# C++ 静态分析caa-scaffoldtest# 运行单元测试(可按用例名筛选)caa-scaffold rtv# 创建运行时视图caa-scaffold run# 启动 3DEXPERIENCEcaa-scaffold all# 全流程一键到底

Agent 不需要知道 RADE 路径在哪里(自动读注册表),不需要知道 TCK profile 叫什么(自动从Install_config_win_b64推断),不需要手动维护.caa-config.yaml(自动发现工作区标记文件CATIAV5Level.lvl)。CLI 替 Agent 消化了所有这些 CAA 特有的环境偶发复杂度。

3. NSIS 安装包生成 —— Agent 帮你打包交付

编译完的win_b64要分发给用户?VS CAA 插件干不了这个。CLI 能:

caa-scaffold package--nameMyCAAApp --win-b64 ./win_b64

Agent 调用这一行命令,背后发生的事情:

  • 从内置 NSIS 模板生成完整的.nsi安装脚本
  • 调用makensis.exe编译成.exe安装包
  • 安装包自动包含:许可证页、3DE 版本选择、组件选择、Env.txt 环境文件生成、桌面快捷方式创建、VC++ 运行时安装、旧版本卸载、完整卸载程序

NSIS 路径只需首次指定一次(--nsis-path),后续自动从~/.caa-scaffold/config.json读取。Agent 完全无感。


技术路线

整体架构

Agent 调用 → cli.py (argparse) → generator.py (模板引擎) → 文件系统 → config.py (环境发现) → Windows 注册表 → executor.py (子进程封装) → CAA 原生命令 → packager.py (NSIS 编译) → makensis.exe

五个模块各司其职,Agent 只看到一个统一入口。

模板驱动

脚手架和打包共用同一套{variable}变量替换引擎。脚手架用 11 个 YAML 模板定义 CAA 项目骨架,打包用 10 个 NSIS 模板定义安装脚本。Agent 传参数,CLI 填模板,一次性生成所有文件。修行为不用改 Python——改模板即可。

环境零配置

不依赖任何配置文件。工作区通过向上遍历目录找CATIAV5Level.lvl标记。CAA 版本和安装路径从HKLM\SOFTWARE\Dassault Systemes\V6注册表枚举。TCK profile 从工作区Install_config_win_b64→ build level →tck_list反向匹配。Agent 在任何目录下执行命令都能正确发现环境。

编码无忧

所有子进程强制chcp 936(GBK),stdout/stderr 统一 GBK 解码后输出,解码失败回退 UTF-8。Agent 拿到的是干净的文本,不会遇到乱码。

零依赖分发

PyInstaller 打包为单文件.exe(~8MB),无需 Python 环境,放到 PATH 即可。Agent 的 system prompt 里加一句caa-scaffold就能用。


为 CAA Vibe Coding 打基础

Vibe Coding 的核心假设是你有一组可靠的、Agent 可直接调用的工具。GUI 不是工具——它是给人用的界面。命令行才是工具——它是给 Agent 用的 API。

CAA Scaffold CLI 做的不只是 “CLI 版 VS 插件”。它把 CAA 开发的隐性知识(在哪里看注册表、TCK profile 怎么匹配、编码怎么处理、Environment 文件怎么生成)编码成了 Agent 可直接执行的子命令。这让 Claude Code、Codex、Trae 等 AI 编码助手得以在 CAA 开发场景中真正发挥作用:

  • Agent 在 CLAUDE.md 中声明caa-scaffold即可获得全部 CAA 能力
  • CI/CD 流水线全自动化:提交 → 编译 → 检查 → 测试 → 打包 一条命令
  • 新人上手成本从几周降到几十分钟

目前自己测试使用中后期稳定后考虑开源,读者自己可以根据本文提供思路vibe coding起来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 18:02:55

郑州AIGEO服务商哪家更安全

在郑州,随着AIGEO智能营销服务需求的增长,企业在选择服务商时,安全性成为重要考量因素。安全的服务不仅关系到企业的数据安全,还影响着营销效果和长期发展。 行业现状与痛点 当前,郑州AIGEO服务市场鱼龙混杂。部分外地…

作者头像 李华
网站建设 2026/6/10 17:57:41

全球覆盖的IP数据库哪家性价比高?5款主流方案对比与选型建议

全球IP数据库选型,本质是在精度、覆盖、部署方式和成本之间寻找平衡点。把IP数据库下载到本地,是高频IP归属地查询高性价比方案之一:在线API替换为本地查询后,延迟可从100ms降至0.1ms以内,成本从每月数千元降至接近零。…

作者头像 李华
网站建设 2026/6/10 17:57:14

2026年中国用户订阅 ChatGPT Plus 方案汇总与实测指南

8.8 元 GPT 的时代,正在成为过去 一个时代的结束 过去几个月里,不少用户通过 Team 拼车、共享账号等方式,以极低成本体验到了 ChatGPT 的高级功能。 曾经,十几元甚至个位数价格,就能获得接近官方付费版本的使用体验&am…

作者头像 李华
网站建设 2026/6/10 17:57:10

AtomGit Flutter鸿蒙客户端:数据模型

模型设计原则 本项目中的所有数据模型都遵循不可变性(Immutability)原则——所有字段声明为 final,对象创建后无法修改。这不是 Flutter 或 Dart 的强制要求,而是从工程实践出发的设计选择。 不可变模型带来的好处: 安…

作者头像 李华
网站建设 2026/6/10 17:54:29

五大主流英语记忆工具技术与实用性深度评测:欧路词典、Anki、背单词花园、百词斩、不背单词

英语单词记忆是程序员、考研学子、留学人群、外语阅读从业者的刚需。不同工具底层架构、记忆算法、拓展能力、多端同步机制、自定义开放度差异巨大。本文从技术原理、拓展性、资源生态、性能开销、付费体系、适用场景六个维度,横向拆解五款热门工具,面向…

作者头像 李华
网站建设 2026/6/10 17:54:25

AI生成的原型能直接给开发用吗?GemDesign MCP代码导出实战教程

产品经理画完原型,把截图贴到PRD里,开发看完说"看不懂交互逻辑"。这种场景你是不是很熟悉?设计到代码之间,隔着一道理解鸿沟。产品经理画的是"长什么样",开发需要的是"怎么实现"。中间的…

作者头像 李华