许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  用VSCode+Codex写CATIA VBS脚本开发教程

用VSCode+Codex写CATIA VBS脚本开发教程

阅读数 3
点赞 0
article_banner

这个流程几乎可以做到半自动甚至接近全自动。给 Codex 一个明确指令后,它可以自己写代码、自己运行测试、自己根据报错修改,最后给出一个能跑通的程序。

最近两天试了一下,感觉确实很好用——之前再咸鱼买过一个链接图纸的插件,我让CODEX给我破译一下,尝试了五分钟就把乱码逆向回来了。

相比前阵子那种“大模型网页版生成代码 → 手动复制粘贴 → 试运行 → 报错 → 再把错误反馈给大模型 → 反复修改 N 次”的方式,这种流程效率高很多。更不用说比我自己一点点吭哧吭哧写代码要快得多。

像是雇了一个程序员给自己打工。

用 VSCode 加 Codex 来写 CATIA 的 VBScript 脚本,这个路子现在越来越多人走了。CATIA 自带的 VBA 编辑器确实难用,VSCode 不管是写代码的体验还是 AI 辅助,都比它强太多了。下面把整个流程捋一遍。

一、VSCode 环境搭建

1. 安装 VSCode 和必要插件

VSCode 去官网下就行,装完打开扩展商店(Ctrl+Shift+X),搜这几个插件装上:

  • VBScript 语法高亮:搜 VBScript 或 VBS-VSCode,装那个能识别 .vbs 和 .CATScript 后缀的。装完之后,把 .CATScript 文件关联到 VBScript 语言,这样语法高亮和代码缩进就都有了。
  • Codex:这个放下一节单独说。
  • 可选:如果后面打算用 Python 写自动化(pycatia),可以装 Python 插件。

2. 设置文件关联

想让 VSCode 正确识别 CATIA 宏文件,在项目根目录建一个 .vscode 文件夹,里面放 settings.json,写上:

{    "files.associations": {        "*.CATScript": "vbscript",        "*.catvbs": "vbscript"    }}

这样 .CATScript.catvbs 文件打开就是 VBScript 的语法高亮。

3. 让 CATIA 识别你的脚本文件夹

CATIA 默认的宏存放路径在 工具 → 宏 → 宏库 里可以设置。把你要写脚本的文件夹加到宏库里,或者直接把脚本放在 CATIA 默认的宏目录下(一般是 C:\Users\你的用户名\AppData\Roaming\DassaultSystemes\CATMacros)。这样在 CATIA 里按 Alt+F8 就能直接看到你写的脚本。

二、Codex 安装与配置

Codex 在 VSCode 里的官方插件是 GitHub Copilot Chat(现在 Codex 的能力整合到这里面了)。

1. 安装插件

打开 VSCode 扩展商店,搜 GitHub Copilot Chat,找到 GitHub 官方发布的那个,点安装。

2. 登录授权

装完后,VSCode 右下角或者左侧会出现 Copilot 的图标。第一次点开会提示登录:

  • 用 ChatGPT 账号登录:如果你的 ChatGPT 订阅包含 Codex 用量,直接账号登录就行,不用额外配 API Key。
  • 用 API Key:也可以在设置里填 OpenAI 的 API Key。

登录成功后,写代码的时候 Codex 就能自动补全、生成代码了。

3. 使用技巧

写 CATIA 宏的时候,在注释里描述你要干什么,Codex 会自动生成对应的 VBScript 代码。比如输入:

' 获取当前打开的零件文档,遍历所有实体,把每个实体的名称输出到消息框

Codex 会帮你补全剩下的代码。这个对不熟悉 CATIA API 的人来说特别实用。

三、编写 CATIA VBScript 脚本

1. 脚本的基本结构

CATIA 的 VBScript 宏必须以 Sub CATMain() 开头:

Sub CATMain()    ' 你的代码写在这里    MsgBox "Hello CATIA!"End Sub

2. 常用对象模型

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")

3. 一个完整的示例:自动创建带参数的圆柱

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

4. 录制宏获取代码

如果不知道某个操作对应的 API 怎么写,可以用 CATIA 自带的宏录制功能:

  1. 在 CATIA 里点 工具 → 宏 → 录制
  2. 做一遍你想自动化的操作
  3. 点停止录制,CATIA 会生成对应的 VBScript 代码
  4. 把代码复制到 VSCode 里,用 Codex 帮你优化和参数化

这个办法特别适合初学者——先让 CATIA 给你写一遍,你再在 VSCode 里改。

四、在 VSCode 里运行脚本

方法一:直接双击运行

把脚本保存为 .CATScript.catvbs 文件,在文件资源管理器里双击,如果文件扩展名关联到了 CATIA,它就会在 CATIA 里执行。

方法二:从 CATIA 内部运行

Alt+F8 打开宏对话框,找到你写的宏,选中点运行。

方法三:配置 VSCode 任务(一键运行)

想在 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 那里的路径要改成你自己电脑上的。

五、调试技巧

1. 用 MsgBox 输出调试信息

VBScript 没有专门的调试器,最土的办法就是用 MsgBox 弹窗看变量值:

Dim strName As StringstrName = oPart.NameMsgBox "零件名称: " & strName

2. 用 Err 对象捕获错误

On Error Resume Next' 可能出错的代码If Err.Number <> 0 Then    MsgBox "错误: " & Err.Description    Err.ClearEnd IfOn Error GoTo 0

3. 在 CATIA 的 VBA 编辑器里调试

如果脚本跑不通,可以把代码粘回 CATIA 自带的 VBA 编辑器(工具 → 宏 → 宏... → 创建),那里有断点和单步执行的功能。找到问题了再回 VSCode 改。

六、推荐的代码规范

  • 文件命名:用英文命名,比如 CreateCylinder.CATScript
  • 注释:每个脚本开头写明功能、作者、日期
  • 变量命名:用有意义的英文,oPart 表示 Part 对象,strName 表示字符串
  • 缩进:VSCode 自动格式化,保持代码整洁

七、进阶:用 Python + pycatia

如果觉得 VBScript 不够用,CATIA 也支持 Python 自动化。用 pycatia 库,在 VSCode 里写 Python 脚本控制 CATIA:

import pycatiafrom pycatia import catia​caa = catia()doc = caa.active_documentproduct = doc.product# 遍历装配体、生成 BOM 等等

这个路子比 VBScript 更灵活,能做的事情也多。

八、有用的资源

  • GitHub:搜 catia-v5 主题,有大量开源宏可以参考
  • Cat5Dev 插件:一个能把 VSCode 和 CATIA VBA 模块同步的扩展,省去复制粘贴的麻烦
  • CATIA V5 Macro Programming with Visual Basic Script:一本专门讲 CATIA 宏的书,例子很全

大概就这些。先把环境搭起来,录个宏看看 CATIA 生成的代码长什么样,慢慢就有感觉了。遇到具体问题再说。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空