CAD精简多段线顶点、优化、删除多余、重复顶点——CAD c#二次开发

 附部分代码如下:

 public static void Pl精简()
 {
     Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
     Database db = doc.Database;
     Editor ed = doc.Editor;

     var plOrigon = db.SelectCurve("\n选择多段线:");
     if (plOrigon == null) return;
     else if (plOrigon is Polyline2d)
     {

         Polyline pl = new Polyline();
         var pl2d = plOrigon.Clone() as Polyline2d;
         if (pl2d.PolyType != Poly2dType.SimplePoly) pl2d.PolyType = Poly2dType.SimplePoly; //将二维多段线转换为简单多段线
         pl.ConvertFrom(pl2d, false);
         pl.ColorIndex = 1;
         var plid = db.AddEntityToModeSpace(pl);
         var resultId = Simplify(plid, 0.1);//0.01
         List<ObjectId> 选中亮显s = new List<ObjectId>();
         if (resultId != null)
         {选中亮显s.Add(resultId); }
         ed.SetImpliedSelection(选中亮显s.ToArray());
         db.Erase(pl);
     }
     else if (plOrigon is Polyline pl)
     {
         ObjectId plid = pl.ObjectId;
         using (var tr = db.TransactionManager.StartTransaction())
         { plid = pl.ObjectId; }
         var resultId = Simplify(plid, 0.1);//0.01
         List<ObjectId> 选中亮显s = new List<ObjectId>();
         if (resultId != null)
         { 选中亮显s.Add(resultId); }
         ed.SetImpliedSelection(选中亮显s.ToArray());
     }
     else
     {
         ed.WriteMessage("\n仅支持多段线或二维多段线");
         return;
     }

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值