【问题标题】:Call blender's function bpy.ops.import_mesh.stl(filepath = output_file) through a thread通过线程调用blender的函数bpy.ops.import_mesh.stl(filepath = output_file)
【发布时间】:2017-09-28 08:20:46
【问题描述】:

我尝试使用 bpy.ops.import_mesh.stl(filepath = output_file) 通过线程导入 stl 网格,但搅拌机随机崩溃。我想不支持通过线程导入网格(线程安全),所以你能建议一个更好的方法来实现这个任务吗?

这里是代码

def processData(Data, objcounter):
    SaveDataIntoSpecificFormat("File.data", Data)
    os.system("/externalexe FileData -o File%d.stl" %d objcounter)
    bpy.ops.import_mesh.stl(filepath = "File%d.stl" %d objcounter)

for objcounter in range(len(current_list_objs)):
    t = threading.Thread(target=processData, args=(current_list_objs[objcounter], objcounter,))
    t.start()

【问题讨论】:

  • 您需要在 % File%d.stl" %d objcounter 应该是 File%d.stl" % objcounter 之后删除 d 不确定这是一个解决方案,但在线程中抛出异常没有帮助。

标签: python multithreading import blender mesh


【解决方案1】:

您似乎对所有线程都使用相同的filename FileData

使用objcounter 使其独一无二。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多