Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Judas от 31-08-2020, 19:32:32
-
Добрейшего вечера.
Вот такой вопрос по логике/формуле.
Есть куча треугольников (поверхность изыскал построенная триангуляцией "Face"), собираю их всех в кучу, потом строю для каждого треугольника "Surface".
Получаю список данных который потом буду использовать, но появился вопрос как из этого получить единую поверхность?
Использовать BooleanUnion не получается т.к. из 100000 элементов два не смежны не объединяются, а хотелось бы как в автокаде объединить - выделил - на получи.
Может кто сталкивался с таким? Или знает как по треугольником сделать единую поверхность , что-то вроде TIN-поверхности, но без CIVIL.
И еще можно ли привязать DLL CIVILа и воспользоваться его функционалом в этой части?
-
а хотелось бы как в автокаде объединить - выделил - на получи.
Переведи.
И еще можно ли привязать DLL CIVILа и воспользоваться его функционалом в этой части?
Нет.
P.S.: Возможно запуск команды _CONVTOSSURFACE тебе поможет.
-
А почему просто не пользоваться Civil'ом?
-
Или знает как по треугольником сделать единую поверхность , что-то вроде TIN-поверхности, но без CIVIL.
А какой это в итоге будет объект AutoCAD? На ум приходит только PolyfaceMesh. Но это жутко недружелюбный объект для использования... Civil и правда в этом плане гораздо эффективнее.
-
Есть еще один способ на основе коллекции 3DFACE'ов получить сеть. Для этой цели можно использовать класс SubDMesh. Эта статья будет полезна: https://www.keanw.com/2009/07/triangulating-an-autocad-sub-division-mesh-from-a-set-of-points-using-net.html
Результат можно сконвертировать и в Surface и в Solid3d используя методы SubDMesh.ConvertToSurface и SubDMesh.ConvertToSolid