夜雨聆风学习资料网

ARTICLE · 1112987

实战|用 AI 写 CAD 插件:CAD 快捷键编辑器(附源码 + 提示词)

实战|用 AI 写 CAD 插件:CAD 快捷键编辑器(附源码 + 提示词)

点击蓝字,关注我们

这是《零基础 CAD 插件从 0 到 1》第 14 篇

做设计的小伙伴肯定都想有一套自己的快捷键,可是打开系统的自定义编辑快捷键修改,生怕改错,密密麻麻一大串的英文,还不好找,改完还怕改重复,就算加进去了,一不小心把 LINE、COPY 这些原生命令改坏了,整个命令要恢复都很难搞。

更烦的是,公司电脑和自己电脑的快捷键不一定一样,改一次记一次,每次换机都要重来。

今天咱们用 AI 写一个 CAD 快捷键编辑工具,一次性解决这些痛点:

可视化列表、实时搜索、一键新增、实时去重、系统命令可编辑(默认隐藏)、双备份——打开就知道怎么用。

先看效果:一个窗口搞定快捷键修改,新手也能轻松上手

GIF1(打开编辑器):输入 PGPEDIT → 弹出编辑器 → 自动定位到你的 acad.pgp → 显示"我的快捷键"列表

GIF2(新增快捷键):点"+ 新增" → 出现模板行 快捷名+ *命令名 → 改成你想要的 → 保存

GIF3(编辑系统命令):勾选"显示系统命令" → 弹窗警告 → 确认 → 出现第二个 Tab → 可以直接改原生命令

GIF4(恢复备份):点"恢复原始备份" → 一键回到最初状态

这个插件解决了什么问题?

针对快捷键编辑的六大痛点,做了五个核心优化:

  •  可视化列表 + 实时搜索不用再拿记事本翻 800 行。列表里直接显示别名、命令、备注三列,顶部搜索框实时过滤。

  •  "我的快捷键"和"系统命令"分 Tab工具自动识别:你通过工具加的快捷键进"我的快捷键" Tab;CAD 原生的 800 条进"系统命令" Tab。互不干扰。

  • 系统命令默认隐藏,可解锁编辑默认只看到"我的快捷键",界面干净。想改原生命令时,勾选顶部"显示系统命令"开关,弹窗二次确认后才能编辑,避免误操作。

  • 实时去重检测别名一改,立即检测:

    跟"我的快捷键"内部重复 → 红色高亮

    跟 CAD 系统命令冲突 → 红色高亮 + 状态栏提示"已被 CAD 占用"

    系统命令内部本身的重复 → 不报警(不是你的责任)

  • 双备份,秒级恢复

    acad.pgp.origin.bak:首次打开工具时自动创建,永不覆盖——可以一键回到"从没被工具碰过"的状态

    acad.pgp.bak:每次保存时覆盖——可以一键回到"上次保存前"

交互设计:一个窗口,两个页面

启动命令:输入 PGPEDIT 回车,弹出编辑器。

顶部:显示 pgp 文件路径 + 显示系统命令开关 + 打开文件夹按钮

页面1「 我的快捷键」:

  • 搜索框:实时过滤

  • 右侧按钮:新增 / 删除 / 重载

  • 列表:别名 / 命令 / 备注

页面2「 系统命令」(默认隐藏):

  • 搜索框:实时过滤

  • 列表:别名 / 命令 / 备注(可直接编辑)

底部:

  • 恢复原始备份 / 恢复上次保存 / 保存并重载 / 取消

其他:

  • 按 ESC 关闭窗口

  • 保存/恢复后自动关闭窗口,提示"重启 CAD 生效"

核心干货:给 AI 的精准提示词

还是那句话:用 AI 写插件写出来的功能不对,本质是需求没说细。

下面是实测多轮、输出稳定能用的提示词模板:

角色设定:

你是资深 CAD .NET 二次开发工程师,精通 C# 与 CAD 原生 API。

功能需求:

开发一个「CAD 快捷键编辑器」插件,命令名 PGPEDIT。

界面:

使用 WPF 制作操作窗口,包含:

- 顶部:pgp 文件路径 + "显示系统命令"开关 + "打开文件夹"按钮

- Tab1「我的快捷键」:搜索框、新增、删除、重载按钮 + 列表(别名/命令/备注)

- Tab2「系统命令」(默认隐藏):搜索框 + 列表(可直接编辑)

- 底部:恢复原始备份、恢复上次保存、保存、取消

功能要求:

1. 查找 acad.pgp 路径

- 优先使用 ACADPREFIX 系统变量

- 兜底:扫描 %AppData%\Autodesk\AutoCAD 20* 目录

- 找到后写入窗口标题栏

2. 首次打开时创建"原始备份"

- 备份为 acad.pgp.origin.bak,永不覆盖

- 每次保存时覆盖 acad.pgp.bak

3. 解析 pgp 文件

- 标记区(KJTOOL MANAGED ALIASES - START/END 之间)= "我的快捷键"

- 标记区外 = "系统命令"

- 保留原有注释、缩进、空行

4. 新增

- 默认模板:别名 BB、命令 *ALDELBLK、备注"打开图块管理器"

- 直接进入别名编辑状态

5. 实时去重

- 编辑别名后立即检测

- "我的快捷键"内部重复 → 全部标红

- "我的快捷键"跟系统命令冲突 → 标红 + 状态栏提示

- 系统命令内部本身的重复 → 不报警

6. 保存

- 校验:别名/命令不能为空

- 校验:内部不能重复

- 校验:不能跟系统命令冲突

- 保存前自动备份为 acad.pgp.bak(覆盖式)

- 标记区外一字不动

- 保存后弹窗提示"请重启 CAD",关闭窗口

7. 恢复备份

- 恢复原始备份:用 acad.pgp.origin.bak 覆盖

- 恢复上次保存:用 acad.pgp.bak 覆盖

- 恢复后弹窗提示"请重启 CAD",关闭窗口

8. 其他

- 按 ESC 关闭窗口

- 现代 WPF 毛玻璃卡片样式

- 无边框圆角窗口,可拖动

环境:

.NET Framework 4.8,AutoCAD 2021+,引用 AcMgd、AcDbMgd

输出要求:

给出完整可复制编译的代码

关键逻辑加中文注释

说明编译和加载方法

写提示词的核心原则

  1. 先定身份先让 AI 进入专业 CAD 开发的角色,避免用错 API、写出行外代码。

  2. 再划边界明确命令名、CAD 版本、运行环境,从根源减少兼容问题和报错。

  3. 讲清规则怎么保存、怎么注入、怎么设为当前,每一步规则都说死,不给 AI 自由发挥的空间。

  4. 固定格式要完整代码、要注释、要部署说明,都明确提出来,输出直接能用。

照着这个结构写,AI 输出代码的可用率至少提升 80%。

上面这份提示词是最终整合版,方便你看到全貌。但实际开发时,不要像我分的这么细,一个一个功能、多轮提示词,让每个功能实现了再进行下一个功能的优化。我这里是整合了所有功能,功能太多 AI 容易忘记。

核心源码分享

代码一共 4 个文件,加起来 1200+ 行。全部贴出来会把文章撑爆,下面只给入口代码做示例,其余的完整工程源码请在后台回复领取。
using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.Runtime;using AcApp = Autodesk.AutoCAD.ApplicationServices.Application;namespace PgpEditPlugin{    public class Commands    {        [CommandMethod("PGPEDIT")]        publicvoidPgpEditCommand()        {            Document doc = AcApp.DocumentManager.MdiActiveDocument;            if (doc == null) return;            PgpEditorWindow win = new PgpEditorWindow();            System.Windows.Interop.WindowInteropHelper helper =                new System.Windows.Interop.WindowInteropHelper(win);            helper.Owner = AcApp.MainWindow.Handle;            AcApp.ShowModalWindow(win);        }    }}

用 AI 开发插件的完整流程

需求拆解把「快捷键编辑器」拆成「查找 pgp → 读取解析 → 显示列表 → 搜索过滤 → 新增保存 → 系统 Tab → 实时去重 → 双备份恢复」八个模块,逐个让 AI 实现。

分步验证先做"能读出来",再做"能改",最后做"能恢复"。每一步跑通再往下,出问题好定位。

实测优化拿不同 CAD 版本测试:2021、2024、2026 的 pgp 路径都不一样,挨个验证。发现重复检测的误报 bug,就是在这个阶段暴露的。

细节调整窗口大小、按钮文案、颜色、图标,都可以根据自己的操作习惯改,让 AI 直接调参数就行。

成品领取 & 下期预告

成品插件直接领

不想自己编译、调代码的朋友,关注公众号 「下班让AI教我做插件」,后台回复 「快捷键」,直接领取编译好的 DLL 插件文件,NETLOAD 加载或者是使用我写的dll插件加载工具箱。 完整工程源码拿到手就能二次修改。

下期预告

下一篇咱们继续图纸提效工具,如果有想要的插件可以在评论区留言,我看看哪个留言最多就做哪个。

我是做插件的设计师,专注用 AI 提高 CAD 设计效率。关注我,下班一起做插件,把重复工作交给程序。

E

N

D

相关学习资料