2
$\begingroup$

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?

$\endgroup$
4
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ Big thanks! I will try it out and i will mark this solved if it worked. $\endgroup$ – Jimmy Livefjord May 27 '15 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$ – Jimmy Livefjord May 27 '15 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$ – zeffii May 27 '15 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$ – zeffii May 27 '15 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$ – zeffii May 27 '15 at 17:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.