前面我们分享了不少开发环境的搭建以及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加载生成的插件。
测试插件,输入命令,他提示选择对象。
框选需要统计的对象。
直接就给你把长度统计出来了。
完。
CAD自学网公众号
微信扫一扫关注我,每天分享各种免费设计干货小技巧。

我的微信
育设学堂服务号
微信扫一扫关注我,各种设计实战全套视频教程在线学。

我的公众号
评论