给VS装上通义灵码编写第一个AutoCAD插件

周站长 图文教程评论4,6052字数 1665阅读5分33秒阅读模式
CAD自学网会员

前面我们分享了不少开发环境的搭建以及c#二次开发的一些基础知识,已在网站开设了AI辅助CAD二次开发专题:点击查看,今天我们来分享如何给VS安装通义灵码,编写第一个AutoCAD插件。

注:在AI的加持下,努力分享零代码进行CAD二次开发。遇到问题解决问题,而不刻意学习怎么写代码。

在编写之前我们先要安装通义灵码

打开VS,点击拓展,管理拓展。

给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个AutoCAD插件

安装之后重启VS,打开后在右侧会有通义灵码,点击登录。

注:登录很简单,阿里旗下APP都能直接登录,比如支付宝,淘宝,阿里云等。

给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个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装上通义灵码编写第一个AutoCAD插件 给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个AutoCAD插件

点击生产解决方案。

给VS装上通义灵码编写第一个AutoCAD插件

点击启动。

给VS装上通义灵码编写第一个AutoCAD插件

自动打开CAD。

给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个AutoCAD插件 给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个AutoCAD插件

框选需要统计的对象。

给VS装上通义灵码编写第一个AutoCAD插件

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

给VS装上通义灵码编写第一个AutoCAD插件

完。

CAD自学网公众号
微信扫一扫关注我,每天分享各种免费设计干货小技巧。
weinxin
我的微信
育设学堂服务号
微信扫一扫关注我,各种设计实战全套视频教程在线学。
weinxin
我的公众号
育设学堂建筑学院
周站长
  • 本文由 发表于 2025年3月17日 12:42:21
  • 转载请务必保留本文链接:https://www.cadzxw.com/59511.html
育设学堂CAD课程
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定