Как рассчитать объем, заключенный в цилиндрическую поверхность и треугольную сетку? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть замкнутая треугольная сетка, 'A' и цилиндр (либо в неявной форме, либо замкнутая треугольная сетка), 'B'.

enter image description here enter image description here Мне нужно найти значение объема и замкнутую сетку, образованную моделями A и B. В булевых терминах мне нужно найтиAB.

Существует ли какая-либо надежная библиотека с открытым исходным кодом Mesh Boolean Operations или какая-либо соответствующая библиотека, используемая в коммерческих приложениях?

Я пробовал использовать библиотеки vtk и vtkbool.Результаты обеих библиотек не являются удовлетворительными.

1 Ответ

0 голосов
/ 23 сентября 2019

Используя vtkMassProperties, можно получить значение «объема», но я не знаю, как это действительно рассчитывается:

from vtkplotter import *

cyl1 = Cylinder(res=200).triangle().color('lg').alpha(0.5)

cyl2 = Cylinder(res=200).triangle()
cyl3 = Cylinder(res=200, r=.7, height=2).triangle()
tor = booleanOperation(cyl2, '-', cyl3)
tor.rotateX(90).scale(0.3).y(0.98).color('t')

r = tor.clone().cutWithMesh(cyl1, invert=0).flipNormals()

t = Text('vol='+str(r.volume()))

show([[cyl1, tor], [r, t]], N=2)

enter image description here

...