附部分代码如下:
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;
}
}