一、简介
本文介绍了如何使用python
将.stl
格式的mesh转为.obj
格式的文件。
二、将stl转为obj
1. 使用aspose-3d进行转换
- 安装 aspose-3d
pip install aspose-3d
- 将stl转换为obj
python">import aspose.threed as a3d stl_file_path = 'input.stl' obj_file_path = 'output.obj' scene = a3d.Scene.from_file(stl_file_path) scene.save(obj_file_path)
2. 使用trimesh进行转换
- 安装 trimesh
pip install numpy-stl trimesh
- 将stl转换为obj
python">#!/usr/bin/env python3 import numpy as np import trimesh import trimesh.exchange.export import trimesh.exchange.obj from stl import meshdef stl_to_obj(stl_file_path, obj_file_path):# Load the STL filestl_mesh = mesh.Mesh.from_file(stl_file_path)# Extract vertices and facesvertices = stl_mesh.vectors.reshape(-1, 3)faces = np.arange(len(vertices)).reshape(-1, 3)# Calculate normals if not presentstl_mesh.update_normals()# Create a Trimesh object from the STL meshtrimesh_mesh = trimesh.Trimesh(vertices=vertices, faces=faces, face_normals=stl_mesh.normals)trimesh_mesh.export(obj_file_path, include_normals=True)print(f"Converted {stl_file_path} to {obj_file_path}")# Example usage stl_file_path = 'input.stl' obj_file_path = 'output.obj' stl_to_obj(stl_file_path, obj_file_path)