Есть ли функция расширения/разрушения сетки в meshlab?

Я использую 3D-принтер, который создает широкие стены (все размеры на 0,3 мм больше), также мне нужно исправить файл stl, разъедая его. Есть ли такая функция в мешлабе?


person Entretoize    schedule 18.10.2019    source источник


Ответы (2)


Другой метод (более медленный, но топологически более точный) заключается в использовании фильтра равномерной повторной выборки сетки и указании положительного (отрицательного) смещения для получения эффекта расширения (размывания). В этом случае создается новая аппроксимированная сетка, а точность (и время) зависит от установленного вами параметра точности.

person ALoopingIcon    schedule 23.10.2019
comment
Но это изменит топологию сетки. Например, я расширил икосаэдр (12 вершин, 20 треугольников) с равномерной передискретизацией сетки, и в результате получилось 5520 вершин и 11036 треугольников. Кроме того, он сгладит все ребра и вершины, чтобы они были гладкими. Это может быть желательным или нежелательным эффектом. - person Rockcat; 24.10.2019
comment
Топологически правильное расширение (эрозия) требует повторного создания сетки поверхности. Простой пример: если вы расширите тор, в какой-то момент дыра исчезнет... Итак, нормальное перемещение вершин правильно работает для небольших смещений и/или правильных простых форм. - person ALoopingIcon; 11.11.2019

Существует очень простой способ добиться расширения/разрушения. Используйте фильтр -> «Сглаживание, сглаживание и деформация» -> «Геометрическая функция по вершинам» и создайте функцию, которая добавляет/вычитает значение нормали к координатам каждой вершины:

x = x-nx
y = y-nz
z = z-nz

Если вам нужно размыть данный коэффициент, просто умножьте нормаль на этот коэффициент.

x = x-0.3*nx
y = y-0.3*nz
z = z-0.3*nz
person Rockcat    schedule 23.10.2019
comment
Спасибо, но что происходит, когда вершина является общей для нескольких угловых граней? Перевод по нормали каждой грани будет меньше, чем 0,3, которые мне нужны, я думаю. - person Entretoize; 24.10.2019