ARTICLE · 1112987
实战|用 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 输出要求: 给出完整可复制编译的代码 关键逻辑加中文注释 说明编译和加载方法 |
写提示词的核心原则
先定身份先让 AI 进入专业 CAD 开发的角色,避免用错 API、写出行外代码。
再划边界明确命令名、CAD 版本、运行环境,从根源减少兼容问题和报错。
讲清规则怎么保存、怎么注入、怎么设为当前,每一步规则都说死,不给 AI 自由发挥的空间。
固定格式要完整代码、要注释、要部署说明,都明确提出来,输出直接能用。
照着这个结构写,AI 输出代码的可用率至少提升 80%。
上面这份提示词是最终整合版,方便你看到全貌。但实际开发时,不要像我分的这么细,一个一个功能、多轮提示词,让每个功能实现了再进行下一个功能的优化。我这里是整合了所有功能,功能太多 AI 容易忘记。
核心源码分享
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