AUTOCAD二次开发实例:C#负筋加钩代码分享

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.EditorInput;

using Autodesk.AutoCAD.Runtime;

using DYH.Tools;

using IFoxCAD.Cad;

using System;

namespace DYH.Demo

{

    public class FuJinJiaGou

    {

        /// <summary>

        /// 朋友提的负筋加钩需求测试

        /// </summary>

        [CommandMethod("FJJG")]

        public void FJJG()

        {

            //建事务

            using var tr = new DBTrans();

            var pso1 = new PromptSelectionOptions() { MessageForAdding = "\n框选要修改的钢筋" };//设置选择集选项

            var sf = new SelectionFilter(new TypedValue[] { new TypedValue(0, "LWPOLYLINE"), new TypedValue(90, 2) });//设置选择集筛选

            var r1 = Env.Editor.GetSelection(pso1, sf);

            if (r1.Status == PromptStatus.OK)

            {

                var list1 = r1.GetEntities<Polyline>(tr, OpenMode.ForWrite);//拿到选择的所有pl线

                foreach (var pl in list1)//对每个pl线进行处理

                {

                    var linewidth = pl.GetStartWidthAt(0);//获取线宽

                    var startPoint = pl.StartPoint.Z20();//获取起点

                    var endPoint = pl.EndPoint.Z20();//获取终点

                    var angle = startPoint.GetAngle(endPoint);//获取角度

                    //double czAngle;//声明一个角度,用于计算与线垂直的角度;

                    var czAngle = angle + (angle >= Math.PI * 0.75 && angle < Math.PI * 1.75 ? Math.PI * 0.5 : -Math.PI * 0.5);

                    var aPoint = startPoint.Polar(czAngle, 200);//计算出新增的亮点坐标

                    var dPoint = endPoint.Polar(czAngle, 200);

                    pl.AddVertexAt(0, aPoint.Point2d(), 0, linewidth, linewidth);//将新增的两个点坐标加入pl线内

                    pl.AddVertexAt(pl.NumberOfVertices, dPoint.Point2d(), 0, linewidth, linewidth);

                    pl.UpdateScreenEx();//刷新图元

                }

            }

        }

    }

}

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空