这个流程几乎可以做到半自动甚至接近全自动。给 Codex 一个明确指令后,它可以自己写代码、自己运行测试、自己根据报错修改,最后给出一个能跑通的程序。
最近两天试了一下,感觉确实很好用——之前再咸鱼买过一个链接图纸的插件,我让CODEX给我破译一下,尝试了五分钟就把乱码逆向回来了。
相比前阵子那种“大模型网页版生成代码 → 手动复制粘贴 → 试运行 → 报错 → 再把错误反馈给大模型 → 反复修改 N 次”的方式,这种流程效率高很多。更不用说比我自己一点点吭哧吭哧写代码要快得多。
像是雇了一个程序员给自己打工。
用 VSCode 加 Codex 来写 CATIA 的 VBScript 脚本,这个路子现在越来越多人走了。CATIA 自带的 VBA 编辑器确实难用,VSCode 不管是写代码的体验还是 AI 辅助,都比它强太多了。下面把整个流程捋一遍。
VSCode 去官网下就行,装完打开扩展商店(Ctrl+Shift+X),搜这几个插件装上:
想让 VSCode 正确识别 CATIA 宏文件,在项目根目录建一个 .vscode 文件夹,里面放 settings.json,写上:
{ "files.associations": { "*.CATScript": "vbscript", "*.catvbs": "vbscript" }}这样 .CATScript 和 .catvbs 文件打开就是 VBScript 的语法高亮。

CATIA 默认的宏存放路径在 工具 → 宏 → 宏库 里可以设置。把你要写脚本的文件夹加到宏库里,或者直接把脚本放在 CATIA 默认的宏目录下(一般是 C:\Users\你的用户名\AppData\Roaming\DassaultSystemes\CATMacros)。这样在 CATIA 里按 Alt+F8 就能直接看到你写的脚本。
Codex 在 VSCode 里的官方插件是 GitHub Copilot Chat(现在 Codex 的能力整合到这里面了)。
打开 VSCode 扩展商店,搜 GitHub Copilot Chat,找到 GitHub 官方发布的那个,点安装。
装完后,VSCode 右下角或者左侧会出现 Copilot 的图标。第一次点开会提示登录:
登录成功后,写代码的时候 Codex 就能自动补全、生成代码了。
写 CATIA 宏的时候,在注释里描述你要干什么,Codex 会自动生成对应的 VBScript 代码。比如输入:
' 获取当前打开的零件文档,遍历所有实体,把每个实体的名称输出到消息框Codex 会帮你补全剩下的代码。这个对不熟悉 CATIA API 的人来说特别实用。
CATIA 的 VBScript 宏必须以 Sub CATMain() 开头:
Sub CATMain() ' 你的代码写在这里 MsgBox "Hello CATIA!"End Sub
CATIA 的自动化是通过 COM 接口实现的。最常用的几个对象:
' 获取 CATIA 应用程序对象Dim CATIA As ObjectSet CATIA = GetObject(, "CATIA.Application")' 如果 CATIA 没打开,用 CreateObject 启动' Set CATIA = CreateObject("CATIA.Application")' 获取当前活动文档Dim oDoc As DocumentSet oDoc = CATIA.ActiveDocument' 如果是零件文档,获取 Part 对象Dim oPart As PartSet oPart = oDoc.Part' 获取 PartBody(主体)Dim oBody As BodySet oBody = oPart.Bodies.Item("PartBody")Sub CATMain() ' 获取 CATIA 应用 Dim CATIA As Object Set CATIA = GetObject(, "CATIA.Application") ' 新建一个零件文档 Dim oDoc As Document Set oDoc = CATIA.Documents.Add("Part") Dim oPart As Part Set oPart = oDoc.Part ' 获取 PartBody Dim oBody As Body Set oBody = oPart.Bodies.Item("PartBody") ' 创建草图(在 XY 平面上) Dim oSketch As Sketch Set oSketch = oBody.Sketches.Add(oPart.OriginElements.PlaneXY) oSketch.OpenEdition() ' 画一个圆 Dim oFactory2D As Factory2D Set oFactory2D = oSketch.Factory2D Dim oCircle As Circle2D Set oCircle = oFactory2D.CreateCircle(0, 0, 50) ' 半径 50mm ' 关闭草图 oSketch.CloseEdition() ' 拉伸成圆柱 Dim oPad As Pad Set oPad = oBody.Pads.Add(oSketch, 100) ' 拉伸 100mm ' 更新 oPart.Update() MsgBox "圆柱创建完成!"End Sub如果不知道某个操作对应的 API 怎么写,可以用 CATIA 自带的宏录制功能:
这个办法特别适合初学者——先让 CATIA 给你写一遍,你再在 VSCode 里改。

把脚本保存为 .CATScript 或 .catvbs 文件,在文件资源管理器里双击,如果文件扩展名关联到了 CATIA,它就会在 CATIA 里执行。
按 Alt+F8 打开宏对话框,找到你写的宏,选中点运行。
想在 VSCode 里按 F5 就直接运行脚本,可以建一个任务。在项目根目录的 .vscode 文件夹里创建 tasks.json:
{ "version": "2.0.0", "tasks": [ { "label": "Run CATIA Macro", "type": "shell", "command": "C:\\Program Files\\Dassault Systemes\\B28\\win_b64\\code\\bin\\CATIA.exe", "args": ["-macro", "${file}"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": [] } ]}然后按 Ctrl+Shift+B 就能运行当前打开的脚本。不同版本的 CATIA 安装路径不一样,command 那里的路径要改成你自己电脑上的。
VBScript 没有专门的调试器,最土的办法就是用 MsgBox 弹窗看变量值:
Dim strName As StringstrName = oPart.NameMsgBox "零件名称: " & strNameOn Error Resume Next' 可能出错的代码If Err.Number <> 0 Then MsgBox "错误: " & Err.Description Err.ClearEnd IfOn Error GoTo 0
如果脚本跑不通,可以把代码粘回 CATIA 自带的 VBA 编辑器(工具 → 宏 → 宏... → 创建),那里有断点和单步执行的功能。找到问题了再回 VSCode 改。
如果觉得 VBScript 不够用,CATIA 也支持 Python 自动化。用 pycatia 库,在 VSCode 里写 Python 脚本控制 CATIA:
import pycatiafrom pycatia import catiacaa = catia()doc = caa.active_documentproduct = doc.product# 遍历装配体、生成 BOM 等等这个路子比 VBScript 更灵活,能做的事情也多。
大概就这些。先把环境搭起来,录个宏看看 CATIA 生成的代码长什么样,慢慢就有感觉了。遇到具体问题再说。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删