Как найти объем незамкнутой сетки в Python? - PullRequest
1 голос
/ 30 октября 2019

Итак, у меня есть файл STL сферы, который разрезан пополам. Я хочу найти объем внутри файла, но так как он не является «водонепроницаемым», я не могу найти точный объем. Используя функцию громкости Trimesh, результат изменения громкости при разных углах поворота файла.

Например, когда я проверяю громкость без вращения, громкость равна 1,872. Но после поворота на 90, 90, 90 по x, y, z объем файла теперь равен 2,044. Что я могу сделать, чтобы получить истинный внутренний объем файла обрезанной сферы, не меняя его при вращении.

Текущий код для поиска объема:

import trimesh

my_mesh = trimesh.load('path/to/mesh/half_sphere.stl')
print(my_mesh.volume)

1 Ответ

2 голосов
/ 03 ноября 2019

Так что, не будучи «водонепроницаемым», объем поверхности не имеет большого значения. Вы можете найти объем ориентированной ограничительной рамки (mesh.bounding_box_oriented.volume) или ограничивающей сферы (mesh.bounding_sphere.volume). Я думаю, что вам лучше всего либо пытаться закрыть меш вручную, либо иметь дело с ним с точки зрения площади поверхности (mesh.area).

...