ARTICLE · 1110337
实战|用 AI 写 CAD 插件:图块管理工具(附源码 + 提示词)

点击蓝字,关注我们
这是《零基础 CAD 插件从 0 到 1》第 13 篇
做设计的小伙伴们应该都知道,图纸里的图块一直是个隐形的大麻烦:
别人的图纸里堆了一堆垃圾块,想清又不敢清;PURGE 命令误删率极高,手动一个个找更是要命;想插入一个旧块,结果基点乱跑,点在左下角,块飞到右上角;更恐怖的是,有些块删除时直接把图纸搞崩……
今天咱们用 AI 写一个图块管理器,一次性把这些痛点全解决:
列表展示、搜索过滤、双击定位、以实体位置插入、重置基点到左下角、安全删除、一键清理未使用块,可视化窗口操作,只删该删的,不碰图纸其他内容。
先看效果:一个窗口解决所有图块的问题

GIF1(浏览+搜索):输入 ALDELBLK → 列表展示全图所有块,未使用的排在前面并标记黄色 → 输入关键字实时过滤

GIF2(双击定位):选中一个块 → 双击 → 图纸自动缩放到该块

GIF3(插入+对齐):右键 → 插入 → 点图纸任意位置 → 块的实体左下角精确对齐到你点击的位置,不再受基点偏移影响

GIF4(重置基点):右键 → 重置基点到左下角

GIF5(清理未使用):点"清理未使用" → 一键清除所有真·垃圾块
这个插件解决了什么问题?
针对图块管理的六大痛点,做了六个核心优化:
可视化列表 + 实时搜索列表展示全图所有命名块,含"引用次数、实体数、状态、嵌套于"信息。顶部搜索框实时过滤,输入关键字秒找到目标块。
双击定位到图纸选中块 → 双击 → 图纸自动缩放并高亮该块的第一个引用。用 ZOOM Window + 坐标系转换,无论 UCS 是否旋转,都能精确居中。
以实体左下角插入(不吃基点亏)普通插入是"基点对齐点击点",如果块的基点在原点、图形在几万单位外,块就会飞到看不见的地方。本插件用实体的几何边界左下角对齐点击点,无论基点在哪,插入位置永远准。
重置基点到左下角一键把块内所有实体整体平移,让实体左下角变成新的 (0,0,0)。从此以后这个块的插入、引用都规规矩矩。
安全删除块定义(不会炸图纸)有引用的块,先删引用,再用
db.Purge()判断能否安全删定义。被嵌套/被隐形引用时主动拒绝,不再让图纸崩溃。嵌套引用识别 + 真正的"未使用"判定之前只能看到"直接引用",图库里的子块会误显示"未使用"。现在用 BFS 递归收集所有嵌套引用,只在完全没有任何引用时才标记为未使用。
交互设计:可视化窗口+多功能操作
启动命令:输入 ALDELBLK 回车,弹出图块管理器窗口。
主列表:
顶部搜索框:实时过滤
右侧按钮:刷新 / 清理未使用
列表列:名称 / 引用(总) / 实体数 / 状态 / 嵌套于
双击:定位到图纸并高亮
右键菜单:
📍 定位到图纸
📌 插入到图纸(实体左下角对齐)
🎯 重置基点到左下角
✏️ 打开块编辑器
🗑️ 删除此块定义(带引用警告)
其他:
单击列表项 → 下方显示块详情 + 图形预览
按 ESC → 关闭窗口
没有复杂参数,打开就知道怎么用。
核心干货:给 AI 的精准提示词
还是那句话:
用 AI 写插件写出来的功能不对,本质是需求没说细。
下面是实测多轮、输出稳定能用的提示词模板,直接复制就能用:
写提示词的核心原则
先定身份先让 AI 进入专业 CAD 开发的角色,避免用错 API、写出行外代码。
再划边界明确命令名、CAD 版本、运行环境,从根源减少兼容问题和报错。
讲清规则怎么保存、怎么注入、怎么设为当前,每一步规则都说死,不给 AI 自由发挥的空间。
固定格式要完整代码、要注释、要部署说明,都明确提出来,输出直接能用。
照着这个结构写,AI 输出代码的可用率至少提升 80%。
实际开发不要像我分的这么细,可以一个一个功能,多轮提示词,让每个功能实现了再进行下一个功能的优化。我这里是整合了所有功能,功能太多AI容易忘记。
核心源码分享
下面是核心实现代码,基于 C# + WPF + CAD .NET API 编写
using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.Runtime;using AcApp = Autodesk.AutoCAD.ApplicationServices.Application;namespace BlockDeletePlugin{public class Commands{[CommandMethod("ALDELBLK")]publicvoidAlDelBlkCommand(){Document doc = AcApp.DocumentManager.MdiActiveDocument;if (doc == null) return;BlockDeleteWindow win = new BlockDeleteWindow();System.Windows.Interop.WindowInteropHelper helper =new System.Windows.Interop.WindowInteropHelper(win);helper.Owner = AcApp.MainWindow.Handle;AcApp.ShowModalWindow(win);}}}
说明:这是插件的入口代码,里面的命令可以自己更改,流程是统一的。
其余的代码就不放出来,代码太多怕把文章撑爆了。想要的直接拿我的工程文件
用 AI 开发插件的完整流程
这类工具型插件,用 AI 分步开发,上手最快:
需求拆解把「图块管理器」拆成「列表展示 → 搜索过滤 → 双击定位 → 插入 → 重置基点 → 删除 → 清理未使用」七个模块,逐个让 AI 实现。
分步验证先做列表加载和显示,确认能列出所有块;再加搜索过滤;再加双击定位;再加插入;最后做重置基点和安全删除。每一步跑通再往下,出问题好定位。
实测优化拿不同的图纸测试:带嵌套块的、带匿名块的、带外部参照的。每次遇到崩溃或异常,先看命令行输出的异常信息,再让 AI 针对性修复。
细节调整窗口大小、按钮文案、右键菜单项、图标,都可以根据自己的操作习惯改,让 AI 直接调参数就行。
成品领取 & 下期预告
成品插件直接领
不想自己编译、调代码的朋友,关注公众号 「下班让AI教我做插件」,后台回复 「图块管理器」,直接领取编译好的 DLL 插件文件,NETLOAD 加载或者是使用我写的dll插件加载工具箱。 完整工程源码拿到手就能二次修改。
下期预告
我是做插件的设计师,专注用 AI 提高 CAD 设计效率。关注我,下班一起做插件,把重复工作交给程序。

E
N
D