I want to export my selected meshes in .obj in a relative path from the .blend file in python.
Asked
Active
Viewed 1.9k times
10
-
3Related https://blender.stackexchange.com/questions/5382/export-multiple-objects-to-obj – Duarte Farrajota Ramos Jul 19 '17 at 23:32
-
^ see that question for Blender 2.8 solution – ComputerScientist Jun 03 '20 at 15:42
-
Does this answer your question? Export multiple objects to .obj – p2or Jan 23 '24 at 22:02
3 Answers
12
export obj to relative file path script:
import bpy
import os
blend_file_path = bpy.data.filepath
directory = os.path.dirname(blend_file_path)
target_file = os.path.join(directory, 'myfile.obj')
bpy.ops.export_scene.obj(filepath=target_file)
further export obj options:
bpy.ops.export_scene.obj(
filepath="",
check_existing=True,
axis_forward='-Z',
axis_up='Y',
filter_glob="*.obj;*.mtl",
use_selection=False,
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'
)
Bikram Kumar
- 105
- 4
Madlaina Kalunder
- 749
- 5
- 14
-
Hi, thank you it works. And how can i export it in a relative subfolder and an absolute path? – Danyl Bekhoucha Jul 20 '17 at 22:22
-
1he script i gave you exports to the folder of the .blend file if you want to ad a subfolder you can just add it in this line:
target_file = os.path.join(directory, 'subfolder', 'myfile.obj')
An absolute path you can provide as a string bpy.ops.export_scene.obj(filepath="C:/path/to/file.obj")
– Madlaina Kalunder Jul 21 '17 at 08:23 -
I don't undertand which line i should replace. I want the user to type the absolute or relative path in the same place, then after the path it adds 'lod0_' then it takes the mesh's + name name = 'game_asset' and add + '.obj'. – Danyl Bekhoucha Jul 22 '17 at 12:02
-
-
2
In Blender 4.0 and up, the operator bpy.ops.export_scene.obj no longer exists. Use bpy.ops.wm.obj_export
bpy.ops.wm.obj_export(
filepath="filename.obj",
check_existing=True,
filter_blender=False,
filter_backup=False,
filter_image=False,
filter_movie=False,
filter_python=False,
filter_font=False,
filter_sound=False,
filter_text=False,
filter_archive=False,
filter_btx=False,
filter_collada=False,
filter_alembic=False,
filter_usd=False,
filter_obj=False,
filter_volume=False,
filter_folder=True,
filter_blenlib=False,
filemode=8,
display_type='DEFAULT',
sort_method='DEFAULT',
export_animation=False,
start_frame=-2147483648,
end_frame=2147483647,
forward_axis='NEGATIVE_Z',
up_axis='Y',
global_scale=1.0,
apply_modifiers=True,
export_eval_mode='DAG_EVAL_VIEWPORT',
export_selected_objects=False,
export_uv=True,
export_normals=True,
export_colors=False,
export_materials=True,
export_pbr_extensions=False,
path_mode='AUTO',
export_triangulated_mesh=False,
export_curves_as_nurbs=False,
export_object_groups=False,
export_material_groups=False,
export_vertex_groups=False,
export_smooth_groups=False,
smooth_group_bitflags=False,
filter_glob='*.obj;*.mtl'
)
Harry McKenzie
- 10,995
- 8
- 23
- 51
-5
See if that helps you :
How to write a simple Wavefront-OBJ exporter in Python?
Or you can simply use the export button in blender :
Imkls
- 113
- 4

