从 COM 桥接到 Function Calling,实现自然语言驱动 CATIA 建模的完整实验记录。
实验动机
CATIA 的操作门槛很高——即使是有经验的工程师,完成一个中等复杂度的建模任务也需要几十次鼠标点击和菜单操作。如果能用自然语言直接描述建模意图,让 AI 来执行操作,会是什么体验?
技术路线
用户输入(中文) → DeepSeek API (Function Calling) → 结构化函数调用 → CATIA COM 执行 → 返回结果核心组件:
- COM 桥接层:C# 通过 COM Interop 连接 CATIA,封装常用操作为标准化函数
- 函数目录:将 CATIA 操作抽象为 Function Calling 的 tool definitions
- AI 客户端:DeepSeek API 接收自然语言,输出结构化函数调用
已实现的函数
connect_catia()— 连接 CATIA 应用get_document_info()— 获取当前文档信息list_hybrid_bodies()— 列出所有几何图形集create_hybrid_body(name)— 创建几何图形集create_point(body, x, y, z)— 创建点create_line(body, from, to)— 创建直线create_circle(body, center, radius, plane)— 创建圆create_plane_offset(body, ref, offset)— 创建偏移平面measure_length(body, shape)— 测量长度
关键发现
- Function Calling 对 CAD 操作非常有效:CATIA 的建模操作天然适合函数调用范式——有明确的输入参数、确定的执行结果
- COM Interop 的脆弱性:C# 调用 CATIA COM API 时频繁出现 E_FAIL 错误,生产环境建议改用 CAA C++
- 自然语言的歧义问题:"在 xy 平面上画一个圆"——AI 需要理解"xy 平面"是 CATIA 的 XY 平面引用
完整代码
项目代码见 GitHub 仓库(示例仓库,含 tool definitions 与 prompt 模板)。
*这是 CATIA AI 驱动实验系列的第一篇。下一篇将深入 Function Calling 的 tool definition 设计和 prompt engineering 实践。*