前面我们分享了不少开发环境的搭建以及c#二次开发的一些基础知识,已在网站开设了AI辅助CAD二次开发专题:点击查看,今天我们来分享如何给VS安装通义灵码,编写第一个AutoCAD插件。
注:在AI的加持下,努力分享零代码进行CAD二次开发。遇到问题解决问题,而不刻意学习怎么写代码。
在编写之前我们先要安装通义灵码。
打开VS,点击拓展,管理拓展。

浏览处搜索通义灵码,免费的,直接安装即可,我这边已经安装就不展示安装过程了。

安装之后重启VS,打开后在右侧会有通义灵码,点击登录。
注:登录很简单,阿里旗下APP都能直接登录,比如支付宝,淘宝,阿里云等。

登录之后直接问通义灵码,写一个统计AutoCAD对象长度的功能。

很快就用c#给你写好了。
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using System;
namespace AutoCADLengthCalculator
{
public class LengthCalculator
{
[CommandMethod("CalculateLength")]
public void CalculateLength()
{
// 获取当前文档和数据库
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
// 开始事务
using (Transaction tr = db.TransactionManager.StartTransaction())
{
// 提示用户选择对象
PromptSelectionOptions opts = new PromptSelectionOptions();
opts.MessageForAdding = "\n选择要计算长度的对象: ";
PromptSelectionResult psr = ed.GetSelection(opts);
if (psr.Status == PromptStatus.OK)
{
SelectionSet ss = psr.Value;
double totalLength = 0.0;
// 遍历选择集中的每个对象
foreach (SelectedObject so in ss)
{
if (so != null && so.ObjectId.IsValid)
{
Entity ent = (Entity)tr.GetObject(so.ObjectId, OpenMode.ForRead);
// 检查对象是否为线性对象(如Line, Polyline等)
if (ent is Line line)
{
totalLength += line.Length;
}
else if (ent is Polyline polyline)
{
totalLength += polyline.Length;
}
else if (ent is Circle circle)
{
totalLength += circle.Circumference;
}
else if (ent is Arc arc)
{
totalLength += arc.Length;
}
// 可以继续添加其他类型的对象
}
}
// 显示总长度
ed.WriteMessage($"\n所选对象的总长度为: {totalLength}");
}
else
{
ed.WriteMessage("\n未选择任何对象。");
}
// 提交事务
tr.Commit();
}
}
}
}
还给生成了代码解释和程序流程图。

最后我们直接把程序插入到VS里面。

点击生产解决方案。

点击启动。

自动打开CAD。

打开后输入netload加载生成的插件。

测试插件,输入命令,他提示选择对象。

框选需要统计的对象。

直接就给你把长度统计出来了。

完。









