Blender,使用提示命令将 .stl 转换为 .obj

Blender, convert .stl to .obj with prompt commande

我想在不使用 blender 界面的情况下将 .stl 文件转换为 .obj。

为此,我想分两步完成:

1 个要混合的 STL

2 混合到 OBJ

实际上 BLEND 到 OBJ 使用此 python 代码可以正常工作:

import bpy
import sys


argv = sys.argv
argv = argv[argv.index("--") + 1:] # get all args after "--"

obj_out = argv[0]

bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y')

这批:

@echo off

rem Put the path of the blender folder
set PATH=C:\Program Files\Blender Foundation\Blender

set FILENAME=guitar.blend
set TARGET=guitar.obj
rem Launch
blender %FILENAME% --background --python convert_blend_to_obj.py -- %TARGET%


pause

这很完美。

问题在于要混合的 STL,它不适用于此 python 代码:

import bpy
import sys

argv = sys.argv
argv = argv[argv.index("--") + 1:] # get all args after "--"

blend_out = argv[0]

bpy.ops.import_mesh.stl(filepath=blend_out, axis_forward='-Z', axis_up='Y')

与批次关联:

@echo off

rem Put the path of the blender folder
set PATH=C:\Program Files\Blender Foundation\Blender

set FILENAME=turbine.stl

set TARGET=turbine.blend

rem Launch
blender %FILENAME% --background --python convert_stl_to_blend.py -- %TARGET%


pause

我得到一个错误:文件 C:..\turbine.stl 不支持文件格式 Blender 退出

我认为问题出在我的 python 代码中,但我不知道要更改什么。

我在这里找到了第一个脚本的帮助:https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Wavefront_OBJ

在此先感谢您的帮助,也许有更好的方法。我不想启动搅拌机并手动进行。我只需要一个提示命令。

i got as an error : File format is not supported in file C:..\turbine.stl Blender quit

您收到的错误意味着 Blender 正在尝试将第一个命令参数读取为 .blend 文件。只需将脚本的参数放在“--”之后(如脚本注释中所述),它应该可以工作。

对脚本进行了一些更改,一步导入​​ STL 并导出 OBJ,以测试它是否有效:

import bpy
import sys

argv = sys.argv
argv = argv[argv.index("--") + 1:] # get all args after "--"

stl_in = argv[0]
obj_out = argv[1]

bpy.ops.import_mesh.stl(filepath=stl_in, axis_forward='-Z', axis_up='Y')
bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y')

并启动如下:

blender --background --python convert_stl_to_blend.py -- test.stl test.obj

我 运行 此代码在 OSX

上输入以下内容
/Applications/blender-2.77a-OSX_10.6-x86_64/blender.app/Contents/MacOS/blender --background --python convert_stl_to_blend.py -- fileIN.stl FileOut.obj

这段代码很有用,谢谢大家!

顺便说一句,我需要这段代码来处理目录中的所有文件,它们是数字,所以我使用以下代码让 blender 为我转换所有文件:

import bpy
import sys

for x in range(1, 20):
    stl_in = str(x) +'.stl'
    obj_out = str(x) +'.obj'
    bpy.ops.import_mesh.stl(filepath=stl_in, axis_forward='-Z', axis_up='Y')
    bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y')