效果如下:
public class Class1
{
[CommandMethod("xx")]
public void XX()
{
List<Curve> ents= Z.db.SelectEntities<Curve>();
//List<Polyline> polylines = new List<Polyline>();
List<Curve> curves = new List<Curve>();
Spline sp;
foreach (var item in ents)
{
if (item is Ellipse)
{
sp = item.Spline;
var curve = sp.ToPolyline();
curves.Add(curve) ;
}
if (item is Spline)
{
Spline sp2 = (Spline)item;
var curve2 = sp2.ToPolyline();
curves.Add(curve2);
}
}
Z.db.AddEntityToModeSpace(curves.ToArray());
}
}
人工按点数分割spline方法:
获取spline长度—>长度的100分之一作为增量进行循环—>getpointatdist(d)