0

尝试在循环中运行pymesh.boolean函数时出现错误。我有一个循环,里面有 pymesh 网格和布尔联合操作。错误发生在engine.compute_union()的pymesh/boolean.py中并导致MemoryError: std::bad_alloc

  result = pymesh.boolean(meshes[0], meshes[1], "union")

  for mesh in meshes:
    result = pymesh.boolean(final_mesh, mesh, "union")

从https://hub.docker.com/r/pymesh/pymesh安装 pymesh

提前感谢您的帮助!

4

1 回答 1

0

我遇到了同样的问题,虽然我使用 CSG 树来运行布尔联合,但我认为它执行相同的布尔运算。

就我而言,我正在对两个 stl 文件进行布尔运算,其中一个是 20MB 的怪异模型(基本上它是一个有头发的人,头发没有体积,只是很多三角形组成了 2D 线),我怀疑pymesh 遇到该文件时会发疯(尽管我不能肯定地说)。Docker 以退出代码停止137(这可能来自 docker 杀死进程,因为它使用了太多内存)。

你的文件有什么不寻常的地方吗?你使用的是什么 docker 镜像?

在 pymesh github repo 上打开一个问题可能是值得的。

我在pymesh/pymesh:py3.72GB RAM Debian 主机上使用 docker 映像

于 2020-04-29T15:04:15.087 回答