I am currently working on a huge scene with modular building blocks and for the moment I have to export one object at the time which is extremely time consuming. Is it any way to select say 30 objects inside Blender and use the .obj exporter/some kind of script to export each object separate instead?
-
$\begingroup$ related blender.stackexchange.com/questions/5382/… (but that asks about all objects in the scene, not the selected only) $\endgroup$– zeffiiMay 27, 2015 at 9:01
-
$\begingroup$ I've written an Add-on, see blender.stackexchange.com/a/31852/3710, as usual you only have to enable selection only. $\endgroup$– p2orJun 5, 2015 at 11:03
1 Answer
certainly! but it's a little hacky. Run this from text editor for a few objects selected. Make sure to change the folder
to a valid path.
import bpy
import os
folder = '/home/zeffii/Uploads/'
selected = bpy.context.selected_objects.copy()
bpy.ops.object.select_all(action='DESELECT')
for obj in selected:
name = obj.name.replace('.', '_')
obj.select = True
fullpath = os.path.join(folder, name + '.obj')
bpy.ops.export_scene.obj(
filepath=fullpath,
check_existing=True,
axis_forward='-Z',
axis_up='Y',
use_selection=True,
use_animation=False,
use_mesh_modifiers=True,
use_edges=True,
use_smooth_groups=False,
use_smooth_groups_bitflags=False,
use_normals=True,
use_uvs=True,
use_materials=True,
use_triangles=False,
use_nurbs=False,
use_vertex_groups=False,
use_blen_objects=True,
group_by_object=False,
group_by_material=False,
keep_vertex_order=False,
global_scale=1,
path_mode='AUTO')
obj.select = False
Most of those options in export_scene are default and you can remove those lines, or comment them out, but some of them may be useful if you want to change them later.
There's a nice Template for this in (with a slightly different approach - as in, it checks to see if the destination is valid first, which is handy if you aren't too familiar with paths): TextEditor -> Templates -> Python -> Batch Export
update:
https://gist.github.com/zeffii/529d435d5853e92dcc51
I'm not entirely sure how to inherit all the properties from the original exporter operator for objs. I could add them individually if you need specific props, else it would be wasted effort adding them all.
With the exporter code, you navigate to select a folder, don't have to type any thing, just hit the Export selected Objects as obj
button at the end.
-
$\begingroup$ Big thanks! I will try it out and i will mark this solved if it worked. $\endgroup$ May 27, 2015 at 12:21
-
$\begingroup$ Thanks but it didnt work, also i dont understand what the template is suppose to do, should i run that to check the validity of the filepath i write in some text inside the text editor? can you help me to write a script so that i can attach it to a shortcut instead? thanks! $\endgroup$ May 27, 2015 at 15:44
-
$\begingroup$ Yeah, I almost finished the add-on code for it, which would let you pick a folder from a panel instead. $\endgroup$– zeffiiMay 27, 2015 at 16:06
-
$\begingroup$ but in the meantime, you sould start blender from a console / prompt and try running the code, in order to get the error. ' it's not working ' is too vague $\endgroup$– zeffiiMay 27, 2015 at 16:15
-
$\begingroup$ I've added a version of the script which when Run, in TextEditor will add a menu item to File -> Export. see the update $\endgroup$– zeffiiMay 27, 2015 at 17:47