AUTOCAD二次开发实例:C#拾取线长代码自学入门

using Autodesk.AutoCAD.ApplicationServices;

using Acap = Autodesk.AutoCAD.ApplicationServices.Application;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.EditorInput;

using Autodesk.AutoCAD.Geometry;

using Autodesk.AutoCAD.Runtime;

using IFoxCAD.Cad;

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Windows;

using System.Runtime.InteropServices;

namespace DYH.Demo

{

    public class ShiQuXianChang

    {

        //目标,选择一条线,点击文字,将线的长度赋值到文字上;

        [CommandMethod("SQXC")]

        public void SQXC()

        {

            //建事务

            using var tr = new DBTrans();

            //选择对象

            var r1 = Env.Editor.GetEntity("\n选择一条线");

            if (r1.Status == PromptStatus.OK)//如果选择到了对象

            {

                var ent1 = tr.GetObject<Entity>(r1.ObjectId);//获取对象实体

                if (ent1 is Curve cur)//如果对象是线

                {

                    var length = cur.GetLength() / 1000;//获取长度;获取到的是毫米,转为m除以1000;

                    var r2 = Env.Editor.GetEntity("\n选择要赋值的文字");//提示用户选择文字

                    if (r2.Status == PromptStatus.OK)//如果用户选到对象

                    {

                        var ent2 = tr.GetObject<Entity>(r2.ObjectId, OpenMode.ForWrite);//拿到对象;因为要赋值所以为ForWrite可写模式

                        if (ent2 is DBText text)//如果选到的对象是文字

                        {

                            text.TextString = "长度为:" + length.ToString("0.00") + "m";//按格式赋值并保留两位小数

                        }

                    }

                }

            }

        }

    }

}

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空