基于python的三维模型格式转换汇总
本项目的主要功能为汇总了基于python语言的各种三维模型的转换程序,覆盖了5种三维模型格式,包括 .obj , .ply , .glb , .stl , .gltf ,此外本章还总结了各种模型的优缺点,并进行了汇总。使用的代码编辑和调试工具为 pycharm ,虚拟环境使用 anaconda 配置。
本期结构图为

0 环境搭建
项目开发对 anaconda 和 pycharm 的版本没有限制,按照站内的其他项目安装即可,此外,本项目中不包含任何只能在特定系统上才能顺利运行的库(对说的就是 pygraphviz 😜,p.s. 这个库虽然可以在windows下安装,但是部分代码只能在ubuntu下运行,在windows和mac系统上会报错),下面就让咱们开始本次的学习!!
在进行下面操作时,默认已安装了anaconda和pycharm,本次测试使用的是windows系统,但是ubuntu系统下的对应操作代码与ubuntu下的完全相同,mac系统下的操作代码会在之后更新
如果尚未安装anaconda,可参考往期博客
ubuntu 22.04服务器版本cuda、Anaconda、pytorch环境配置以及安装llama_factory-CSDN博客
下面回到正题
首先,给项目创建虚拟环境,这里使用的是python 3.9.20,建议使用相同的环境以确保不会出现一些奇怪的错误。在windows系统下通过 win + r 并输入 cmd ,ubuntu系统下可通过 ctrl + alt + t 打开终端,现输入下列代码
conda create -n obj_viewer python==3.9 -y
虚拟环境的创建除了网络错误外,基本不会报错,继续进入下一步。
P.S. 如果网络出现错误的话,首先查看是否使用了梯子,如果开启了,就直接关闭,如果没有开启,就换成国内源,基本可解决问题
加载创建出的虚拟环境
conda activate obj_viewer
下面,将安装所有需要用到的库,即本次的主角, trimesh 和 pyassimp
pip install trimes pyassimp
这里的库直接默认安装即可,无特殊版本需求。这里安装无报错,就可以关闭cmd窗口(windows)或终端(ubuntu),主要的代码执行和环境加载,我们会在 pycharm 中进行,作为专业的IDE平台, pycharm 具有诸多好用的小功能,感兴趣的小伙伴可以查阅其 官网 ,或者在站内搜索哈 😄。
接下来在合适的磁盘中,创建文件夹,此处使用的是 F盘 中的 demo 文件夹,及进行结果存储的 transfer_results
文件夹接着在 pycharm 中打开该文件夹,并创建本次需要测试的文件 transfer_test.py
,如下图所示

这里的 guitar.obj
是从开源网站上下载的,比较推荐的是著名的 free 3D
。
链接为 free 3D官网
接下来,要通过 设置
选项,来设置当前项目的编译器,即之前创建的环境 obj_viewer
。首先在 文件
- 设置
如下图所示

接下来,找到 Python 解释器
并点击 添加解释器
按钮,以及 添加本地解释器
按钮,如下图所示

然后,通过在 添加Python 解释器 选项卡中,索引到刚才创建 anaconda 环境的文件夹中,并找到 python.exe 。我的电脑是在 D:\anaconda\envs\interface_tester\python.exe
,最后点击确定。需要注意的是,这里的 .exe
文件,一个字母都不能不能差,要不会在之后的程序运行部分疯狂报错,或者干脆加载编译器失败。

此时这个界面也会显示出编译器的具体名称,之后一路确定即可。最后在设置界面就会看到已经加载好的环境,如果前几步成功,这一步加载的库应该与下图中完全相同,此时点击右下角 应用
即可

然后点击 Pycharm
下方的 终端
选项卡,可看到 obj_viewer
环境已经加载成功,并可供调用,且当前的运行文件夹为 ....\demo

接下来将下面的代码复制到刚创建的 inter_test.py
中,运行不报错即可
import trimesh
import os
def convert_3d_file(input_file, output_file):
"""
转换 3D 文件格式:支持 OBJ, PLY, GLB, STL 等格式之间的转换。
参数:
input_file (str): 输入文件路径(支持 obj, ply, glb, stl 等格式)。
output_file (str): 输出文件路径&#x