我需要生成薄壁物体的四面体(体积)网格。想想瓶子或塑料碗等物体,它们大多是空心的。FEM 模拟需要体积网格。对象外表面的表面网格可从测量中获得,例如使用 octomap 或 KinectFusion。因此顶点间距是比较规则的。物体的内表面可以通过移动内部的所有点从外表面计算出来,因为壁厚是已知的。
到目前为止,我已经考虑了以下方法:
创建一个 3D Delaunay 三角剖分(这将破坏现有的曲面网格),然后移除所有不在两个原始曲面之间的四面体。对于此检查,可能需要创建 2 个表面的隐式表面表示。
创建一个 3D Delaunay 三角剖分并使用 Alphashapes 移除“内部”(在空心空间中)或“外部”(外表面)的四面体。
关闭外部和内部网格并将它们分别作为外壳和孔加载到 tetgen 中。
这些方法对我来说似乎有点不雅,而且它们仍然存在一些缺陷。我可能需要几个库/工具。对于 1 和 2,可能仍需要 tetgen 或其他 FEM 网格划分工具来创建条件良好的四面体。有没有人有更直接的解决方案?我想这应该也是3D打印中的一个常见问题。
关于工具/库,到目前为止,我已经研究过 PCL、meshlab 和 tetgen。他们似乎都只完成了部分工作。理想情况下,我只想使用开源库并避免使用需要手动干预的工具。