for (int i = 0; i < sorted.Count - 1; i++) //minus 1 so it doesn't fail on last parameter
{
Point3d parampoint = temppoly.GetPointAtParameter(i);
Point3d afterpoint = temppoly.GetPointAtParameter(i + 1);
double distance = parampoint.DistanceTo(afterpoint);
if (distance > 5.1 && (distance + 5.1) < temppoly.GetDistanceAtParameter(i + 1))
{
Circle cr = new Circle(temppoly.GetPointAtDist(temppoly.GetDistanceAtParameter(i) + 5), Vector3d.ZAxis, 1.0);
acBlkTblRec.AppendEntity(cr);
MyTrans.AddNewlyCreatedDBObject(cr, true);
}
}
Something like this should do it.Code - C#: [Select]
for (int i = 0; i < poly.EndParam; i++) { var len = 5.0; var startlen = poly.GetDistanceAtParameter(i); var endlen = poly.GetDistanceAtParameter(i + 1); while ((startlen += len) < (endlen - 5.0)) { var pt = poly.GetPointAtDist(startlen); acBlkTblRec.AppendEntity(cr); MyTrans.AddNewlyCreatedDBObject(cr, true); } }