Создание триангулированной сетки для завершения 3D-объекта (в коде или программном обеспечении для моделирования)

Вот краткий обзор проблемы: http://i55.tinypic.com/2uy6nah.jpg

У меня есть 3D-модели зубов в формате STL (простой двоичный/ASCII-формат, хранящий триангулированные сетка как набор вершин граней и нормалей).

Некоторые модели имеют только верхнюю поверхность и не имеют нижней (левый рисунок). Однако, чтобы использовать их по назначению, их необходимо преобразовать в твердый объект (рисунок справа).

Неважно, какой формы будет нижняя часть или какую высоту она добавит объекту.

Файлы STL в настоящее время обрабатываются программой C#/.NET.

  1. Было бы здорово, если бы я мог генерировать эту нижнюю сетку на лету в программе.
  2. В противном случае это можно сделать вручную в каком-нибудь программном обеспечении для 3D-моделирования (желательно бесплатном или недорогом).

Ждем предложений по обоим вариантам. Алгоритмы и/или ссылки на соответствующие руководства всегда приветствуются.


person roldugin    schedule 08.03.2011    source источник


Ответы (1)


Я бы сказал, что нормали избыточны. Все, что вам нужно, это вершины и связность для каждого треугольника.

Когда я зарабатывал на жизнь анализом конечных элементов, существовали алгоритмы автоматического создания сетки quadtree для 2D и octree для 3D. Я думаю, вы хотите что-то вроде этого:

http://www.ctcms.nist.gov/~langer/oof2man/Section-Tasks-FEMesh.html

Я не уверен, сколько из этого доступно бесплатно.

Если вы собираетесь провести анализ напряжений на модели зуба, вы можете рассмотреть методы граничных элементов. В отличие от конечных элементов или конечных разностей, им не нужна внутренняя сетка для линейных задач.

person duffymo    schedule 08.03.2011