一、关于环境
请参考:pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客
二、关于代码
本文所给出代码仅为参考,禁止转载和引用,仅供个人学习。 本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的obj_000001.ply。
# pymeshlab需要导入,其一般被命名为ml
import pymeshlab as ml
# numpy需要导入,其一般被命名为np
import numpy as np
# 本案例所使用的3D模型为压缩包中的obj_000001.ply,请将其与本脚本放置在同一文件夹内。
input_file = 'obj_000001.ply'
# 首先需要创建一个空的容器
mesh = ml.MeshSet()
# 然后,加载物体模型
mesh.load_new_mesh(input_file)
# 获取移动中心前的顶点中心
mesh_c = mesh.current_mesh()
vertex_matrix = mesh_c.vertex_matrix().copy()
print('移动中心前的顶点中心:', np.mean(vertex_matrix, axis = 0))
# 设置移动中心
customcenter = np.array([0, 0, 200], dtype=np.float64)
# 移动模型
mesh.transform_translate_center_set_origin(traslmethod = 'XYZ translation',
axisx = customcenter[0],
axisy = customcenter[1],
axisz = customcenter[2],
)
# 获取移动中心后的顶点中心
mesh_c = mesh.current_mesh()
vertex_matrix = mesh_c.vertex_matrix().copy()
print('移动中心后的顶点中心:', np.mean(vertex_matrix, axis = 0))
# 保存移动后的模型
mesh.save_current_mesh(input_file.replace('.ply', '_move.ply'))