乐于分享
好东西不私藏

如何使用AI工具进行CAD二次开发(第一篇)

如何使用AI工具进行CAD二次开发(第一篇)
在很多人眼里包括我,编程是一件很神奇的东西,通过一行行代码,一串串字符,组合起来就可以实现具体的功能,帮助我们做具体的工作,从我们日常使用的微信抖音,到工作中的Office、CAD,都可以看到他的身影。这在ChatGPT出现以前,想要开发一个属于自己的程序无比困难:不仅要学语言,还要处理开发环境、报错、接口文档和版本兼容等问题。
我个人主要的工作工具是CAD,也用过不少CAD插件,但是其中的大部分很难贴合自己的工作习惯,所在在很久以前就有做一个完全适配自己工作方式的一个插件的想法。如今借助AI工具进行编程成为了现实,AI 很擅长搭建项目骨架、生成重复代码、解释报错、查找项目问题,并根据反馈反复修改。它不能替我们判断专业需求,也不能代替最终验收;但它确实把“从零开始做出第一个插件”的门槛大幅降低了。
接下来以CAD二次开发为例,分享如何借助AI工具,让没有编程基础的人也能完成第一个可以运行的 CAD 插件,把精力从重复绘图中释放出来,投入到更重要的专业工作中。需要说明的是:我并非计算机专业出身。文中会尽量用通俗的方式解释概念;如有不严谨之处,也欢迎大家留言指正。

本文完成后,你能做到什么

本文不试图教会大家完整的 C# 语言或 CAD API,而是先打通一个最小闭环:提出需求 → 创建 C# 项目 → 配置 CAD API → 编译 DLL → NETLOAD 加载 → 在 CAD 中执行命令。完成后,你会得到一个可以继续迭代的插件项目,以及一个“批量对齐单行文字”的小工具雏形。
本篇分为以下四个部分:

CAD 二次开发语言介绍

AI 编程的发展:从补全代码到协作开发

开发环境的准备与 AI 指令

实战案例:批量对齐单行文字

1、CAD 二次开发语言介绍:为什么选择 C#

CAD 二次开发,简单说就是利用 Autodesk 为开发者开放的接口,在 CAD 原有功能基础上增加自己的命令和工作流程。例如,把“画线、创建图层、插入文字、统计图元、导出数据”等原本需要多次手工操作的步骤,组合成一个自定义命令;也可以按自己的专业规则,生成更高效的绘图、检查或整理工具。

目前常见的 AutoCAD 二次开发语言主要有 AutoLISP、C# 和 C++。

语言
更适合的场景
特点
AutoLISP / Visual LISP
快速绘图自动化、简单批处理
上手快,适合轻量级工具
C / .NET
长期维护的插件、复杂业务逻辑、界面和数据处理
工程化程度高,扩展性好
C++ / ObjectARX
对性能、底层能力要求很高的专业插件
能力强,但配置、学习和维护成本也高

AutoLISP:适合快速解决小问题

AutoLISP 是 CAD 用户最常接触到的二次开发语言之一。它可以调用 CAD 命令,也能通过实体函数直接创建、读取和修改一部分图形对象。
它的优点是轻量、上手快。代码通常保存为.lsp文件后,通过APPLOAD加载,就能在 CAD 命令行中使用。对于批量画图、修改图层、处理文字、统计对象等小任务,AutoLISP 非常实用。
它的局限主要在于:当功能逐渐复杂时,命令状态、选择集、当前空间、用户交互以及工程维护都会变得更难处理。它很适合作为快速自动化工具,但不一定适合承担复杂、长期维护的大型插件。

C#:适合做可持续迭代的 CAD 插件

C# 可以通过 AutoCAD 的 .NET API,更结构化地操作文档、数据库、实体对象和界面。对于需要复杂逻辑、文件读写、数据处理、窗口界面,或后续要接入 AI 服务的插件,C# 是很合适的选择。

这里要区分两个概念:C# 语言本身并不只能运行在 Windows;但本文演示的 AutoCAD 2014 插件运行在 Windows CAD 宿主内,因此需要使用与该宿主匹配的 .NET Framework、CAD API 和 x64 平台配置。
本系列会主要使用C#+ AutoCAD .NET API + AI 编程工具。目标不是一开始就掌握所有 API,而是先做出可以稳定运行的小插件,再通过一个个实际需求逐步积累能力。

2、AI编程发展

2022年年底,ChatGPT的发布标志着AI浪潮的正式来临。最开始的AI智能对话和处理文字,然后慢慢扩展到使用音频、图像、视频等交互方式,再到近年来AI智能体的出现,AI可以规划任务,调用工具,完成复杂任务。发展的速度太快了,很难想象这个是不到4年间的变化,也很难想象未来5年AI会发展到什么样子。

说回到AI编程,在AI发展初期阶段,即语言对话模型中,主要是通过问答的方式持续沟通,AI 不仅生成代码,还承担解释、分析和调试辅助的角色。然后随着AI智能体的出现,通过沟通,AI可以直接修改本地的代码文件。

目前作者就是通过用AI工具对话的方式,让AI智能体在直接在本地执行,然后将代码生成的插件导入到CAD中,测试其功能是否有问题。全程没有手动改过一段代码,甚至都没有看过一段代码,代码都是在本地后台直接修改完成的。当前比较主流的code工具主要有Codex、Claude,国内比较主流的是workbuddy,对于初学者来说都大差不差。我目前使用 AI code工具是Codex,也就是OpenAI公司专门用于编程的一个AI工具。

3、开发环境准备

对于C#语言开发,需要准备以下工具,一台Windows系统电脑,系统版本最好是win10及以上、Visual Studio 2019、目标CAD、Codex 或其他 AI 编程工具。

正常开发流程是:在VS2019中新建一个C# 类库编程项目;在该项目中设置好CAD API的引用,即acmgd.dll、acdbmgd.dll、accoremgd.dl。这三个核心文件位于CAD安装文件夹内,相当于CAD开放的接口。

当然,有了AI工具,这一步不需要自己做,只需要给予AI相应的提示词,它会自动完成这一步。先安装对应的智能体,如Codex,然后新建项目(此处的项目为AI智能体的项目),然后在项目中新建一个聊天,在聊天框中输入以下文字:


VS项目是CAD开发演示,插件名JQTest

请在当前工作区搭建AutoCAD 2014(64位)C#二次开发初始环境,先检查本机环境,再创建或调整项目结构;不要下载来路不明DLL,不要动无关文件。目标环境:VS2019,CAD AutoCAD 2014 x64,项目C# Class Library(插件),.NET Framework 4.5(如未安装Targeting Pack需提示安装,不能换.NET 6/8/Core),平台x64(不能Any CPU,不勾Prefer 32-bit),输出DLL,加载方式后续NETLOAD手动加载。

步骤:1.先检查当前目录是否已有.sln/.csproj或CAD项目,有则优先在原基础上修改,不要重建覆盖;

2.查找本机AutoCAD 2014(64位)安装路径,定位AcMgd.dll、AcDbMgd.dll、AcCoreMgd.dll,必须确认是2014版本不能混用;

3.创建/配置VS2019 Class Library:.NET Framework 4.5,x64,Debug/Release均x64,关闭Prefer 32-bit;

4.添加引用AcMgd.dll/AcDbMgd.dll/AcCoreMgd.dll,Copy Local=False不复制输出;

5.建议用CadApiDir统一路径(写入props或csproj);

6.创建最小插件JQTest,实现IExtensionApplication,添加命令MYHELLO,在CAD命令行输出一句话验证加载成功;

7.写README:环境说明(CAD2014+.NET4.5)、DLL配置方式、VS2019编译方法、NETLOAD加载方式、MYHELLO测试方法;

8.最后给出Debug/x64构建结果:是否成功、错误/警告数量、DLL输出路径、失败则说明原因(路径/版本/.NET4.5未装/其他)。

注意:只做基础插件环境搭建,不要加NuGet、第三方库或自动打包。


输入后,AI工具开始自动执行,等待其执行完毕后即得到如下效果,环境也已搭建完毕:

4、实战小技巧

环境搭好后,就可以做第一个真正对工作有帮助的小工具。在 CAD 中,我们经常需要把多段单行文字按水平或竖直方向对齐。手工操作通常要画辅助线,再一个个移动;数量多时既慢又容易出错。这个小案例的核心思路很简单:让所选文字的插入点 X 坐标或 Y 坐标保持一致。

具体展示如下:

然后打开CAD按提示操作试一下效果:

这样一个小插件就做好了,全程没有写一段代码,甚至不需要知道代码在什么地方,是不是还挺简单的。

好了,本篇分享到此结束,如果本文能帮助你迈出 CAD 二次开发的第一步,将不胜荣幸。