Blender→STLのバッチエクスポートスクリプト作成
Blenderで作成した3Dモデルを、3Dプリンターでよく使われるSTLファイルへ、collectionごとに書き出すスクリプトを作成しました。
書き出したいオブジェクトを選択して、スクリプトを実行します。
collectionに入っているオブジェクトをまとめて1つのSTLファイルとして書き出します。Blenderのシーンファイルと同じパスに、collectionの名前.stlが書き出されます。
フォルダの中にstlファイルが書き出されました。
システムコンソールを見るとこんな感じで出力されています。
スクリプトを無料公開
今回作成したスクリプトを無料で公開致しますので、是非試してみてください。
import bpy
print("\n\n************ STL BATCH EXPORT START ************\n\n")
selected_obj = bpy.context.selected_objects
# Get only collections including selected_obj
used_collection = []
for o in selected_obj:
used_collection.append(o.users_collection)
used_collection = set(used_collection)
for u in used_collection:
bpy.ops.object.select_all( action = 'DESELECT' )
print(f"Collection name is -> {u[0].name}")
# Set objects in used_collection into export_obj
obj_in_collection = u[0].all_objects
export_obj = [item for item in obj_in_collection if item in selected_obj]
for o in export_obj:
o.select_set(True)
print(f"Export object name is -> {o.name}")
# Export method
bpy.ops.export_mesh.stl(
filepath=bpy.path.abspath(f"//{u[0].name}.stl"),
use_selection=True, global_scale=1000,
)
print("STL Export Done!!\n\n")
for o in selected_obj:
o.select_set(True)
print("************ STL BATCH EXPORT FINISH ************\n\n")