3D 网格的布尔几何减法

hig*_*yte 5 python 3d geometry mesh

我正在使用 pywavefront 从 .obj 解析 3D 网格,它给我顶点、面和法线。我想计算减去另一个网格的剩余面积。

在计算体积之后,我想知道如何对网格执行相交和相减等操作。

jim*_*ley 3

如果我理解正确,为了获得剩余区域的体积,您应该首先计算生成的网格。这称为布尔运算,通常在封套上实现(如 .obj 文件中的表面网格)

有几个 python 模块提出了网格上布尔运算的实现。

  • pymesh 公开了CGAL(c++库)的算法
  • pymadcad 在纯 python 中具有不同的算法
  • Blender 是一个完整的软件,但在其 API 中提供布尔运算
  • 依赖CGAL和Blender的trimesh

几乎没有其他模块,但据我所知,所有这些模块都依赖于 pymesh 或外套下的搅拌机。