pymesh库由于对window的兼容性有问题,于是就在ubuntu虚拟机中使用pymesh库,根据官方库:PyMesh/PyMesh:Python 几何处理库,使用docker是最简单方便的,所以在宝塔的docker中,拉去镜像pymesh/pymesh镜像,然后使用下面的命令来直接运行一个容器,并且允许某个python脚本:
docker run -it --rm -v `pwd`:/models pymesh/pymesh python /models/main.py我的main.py内容如下:
import pymesh
import time
import os
def perform_boolean_operation(main_file, subtract_file, output_file, operation="difference"):
# 加载网格
main_mesh = pymesh.load_mesh(main_file)
subtract_mesh = pymesh.load_mesh(subtract_file)
# 执行布尔操作
result = pymesh.boolean(main_mesh, subtract_mesh, operation=operation)
# 保存结果
pymesh.save_mesh(output_file, result)
print(f"布尔操作完成,结果已保存到 {output_file}")
# 使用示例
if __name__ == "__main__":
#将当前文件所在的路径作为工作路径
wordfolder = os.path.dirname(os.path.abspath(__file__))
os.chdir(wordfolder)
main_model = "MeshMesh.stl"
subtract_model = "bar_mesh.stl"
output_model = "result.obj"
print('开始')
# 执行布尔减操作
time0 = time.time()
perform_boolean_operation(main_model, subtract_model, output_model, operation="difference")
print(f'完成,耗时:{time.time()-time0}')需要注意的是,必须要使用os.chdir修改当前工作目录为项目的路径,否则后面的代码会找不到三维模型文件,因为默认是/root路径,而不是所允许的py文件的所在路径。