Я пытаюсь вставить новую вершину в существующую замкнутую полилинию через AutoCAD .Net API.
У меня есть метод вставки вершины в полилинию. Но это не работает для замкнутых полилиний в случае, показанном ниже. Код не работает, если точка находится на последнем краю полилинии. Может кто-нибудь увидеть, в чем проблема?
public void AddVertexOnPolyline(Point3d addPoint,Polyline editPolyline)
{
Document acDoc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
Editor pEditor = acDoc.Editor;
int chk = 1;
try
{
for (int i = 0; (i <= (editPolyline.NumberOfVertices - 1)); i++)
{
double dist1 = editPolyline.GetDistAtPoint(addPoint);
double dist2 = editPolyline.GetDistAtPoint(editPolyline.GetPoint3dAt(i));
if ((editPolyline.GetDistAtPoint(addPoint) < (editPolyline.GetDistAtPoint(editPolyline.GetPoint3dAt(i)))) && chk != 0)
{
Point2d pnt2 = new Point2d(addPoint.X, addPoint.Y);
editPolyline.AddVertexAt(i, pnt2, 0, 0, 0);
chk = 0;
break;
}
}
}
catch (System.Exception ex)
{
throw;
}
}
Примечание. Я также разместил его на дискуссионных форумах Autodesk.