Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Judas от 31-08-2020, 19:32:32

Название: 3Д грани->поверхность->объединение поверхности
Отправлено: Judas от 31-08-2020, 19:32:32
Добрейшего вечера.
Вот такой вопрос по логике/формуле.
Есть куча треугольников (поверхность изыскал построенная триангуляцией "Face"), собираю их всех в кучу, потом строю для каждого треугольника "Surface".
Получаю список данных который потом буду использовать, но появился вопрос как из этого получить единую поверхность?
Использовать BooleanUnion не получается т.к. из 100000 элементов два не смежны не объединяются, а хотелось бы как в автокаде объединить - выделил - на получи.
Может кто сталкивался с таким? Или знает как по треугольником сделать единую поверхность , что-то вроде TIN-поверхности, но без CIVIL.
И еще можно ли привязать DLL CIVILа и воспользоваться его функционалом в этой части?
Название: Re: 3Д грани->поверхность->объединение поверхности
Отправлено: Александр Ривилис от 31-08-2020, 20:19:32
а хотелось бы как в автокаде объединить - выделил - на получи.
Переведи.
И еще можно ли привязать DLL CIVILа и воспользоваться его функционалом в этой части?
Нет.
P.S.: Возможно запуск команды _CONVTOSSURFACE тебе поможет.
Название: Re: 3Д грани->поверхность->объединение поверхности
Отправлено: trir от 01-09-2020, 09:45:29
А почему просто не пользоваться Civil'ом?
Название: Re: 3Д грани->поверхность->объединение поверхности
Отправлено: Дмитрий Загорулькин от 01-09-2020, 14:32:52
Или знает как по треугольником сделать единую поверхность , что-то вроде TIN-поверхности, но без CIVIL.
А какой это в итоге будет объект AutoCAD? На ум приходит только PolyfaceMesh. Но это жутко недружелюбный объект для использования... Civil и правда в этом плане гораздо эффективнее.
Название: Re: 3Д грани->поверхность->объединение поверхности
Отправлено: Александр Ривилис от 02-09-2020, 10:42:29
Есть еще один способ на основе коллекции 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