Производные кривые
Производные кривые строятся на основе уже созданных объектов: исходная кривая (а для кривой на поверхности — ещё и поверхность) задаётся своим идентификатором, а результат получает новый ID. Такие кривые можно обрезать, инвертировать, перепараметризовать или построить на поверхности. Как и аналитические кривые, результат можно добавить в дерево через AddEntity либо использовать как строительный блок (например, кривую петли для обрезки поверхностей).
При создании производных объектов исходные объекты не меняются, но при использовании одинаковых ID новый объект перезапишет старый.
Виды производных кривых:
- Кривая на поверхности —
CreateCurveOnSurface. - Обрезанная кривая —
CreateTrimmedCurve/CreateTrimmedCurve2. - Инвертированная кривая —
CreateInversedCurve. - Кривая пересечения —
StartIntersectionCurve…CloseIntersectionCurve. - Граница скругления —
CreateBlendBound.
Пример сохранения производной кривой
Для сохранения производной кривой сначала необходимо сохранить все опорные объекты и только потом — её саму.
bool SaveTrimmedEdge(string edgeId, CADEdge edge)
{
// сначала сохраняем опорную кривую
if (!SaveCurve(edge.Curve))
return false;
// затем — саму обрезанную кривую по опорной (по двум граничным точкам;
// координаты CAD-вершин приводим к TST3DPoint)
return sgr.CreateTrimmedCurve2(edgeId, edge.Curve.Id,
ToPoint(edge.Start.Point), ToPoint(edge.End.Point));
}