Тема: intersectWith
Посмотрел по форуму, вроде все должно работать.
На самом деле что-то не так.
Есть полилиния 2D замкнутая (контур).
Есть массив полилиний 2D, которые должны делить контур на части. Но эти линии не всегда пересекают контур. Могут вообще быть внутри, может быть одна точка пересечения, может быть две точки.
Вот код.
В чем может быть ошибка?
... AcDbObjectIdAarry Cordons; // тут иды делящих полилиний ... AcDbEntity * plineEnt; // замкнутая полилиния if (acdbOpenObject(plineEnt, plineId, AcDb::kForRead) != Acad::eOk) return; AcGePoint3dArray arrOut; AcDbCurve * cordonsCurve; Acad::ErrorStatus es; for (int i = 0; i < Cordons.length(); i++) { if (acdbOpenObject(cordonsCurve , Cordons[i], AcDb::kForRead) != Acad::eOk) continue; arrOut.setLogicalLength(0); // es = cordonsCurve->intersectWith(plineEnt,AcDb::kExtendThis,arrOut); [b]// возврат eOk[/b] cordonsCurve->close(); for (int k = 0; k < arrOut.length(); k++) { AcGePoint3d pt = arrOut[i]; [b]// а тут почти всегда (0,0,0), но иногда есть и точки пересечений (их две но одинаковые) [/b] // ... } } plineEnt->close(); ...