forked from bartvdbraak/blender
Fix [#21886] OBJ export crashes if attempted while in edit mode
Didn't crash for me, but did export incorrectly since editmode changes weren't flushed. Fixed this by setting all exporters to go back to object mode before exporting. Also cleaned up some naming in exporter creator strings, it's "Blender" not "Blender3D".
This commit is contained in:
parent
75df05b83f
commit
5478384761
@ -942,6 +942,8 @@ def save_3ds(filename, context):
|
||||
sce = context.scene
|
||||
# sce= bpy.data.scenes.active
|
||||
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
# Initialize the main chunk (primary):
|
||||
primary = _3ds_chunk(PRIMARY)
|
||||
# Add version chunk:
|
||||
|
@ -344,6 +344,8 @@ def write(filename, batch_objects = None, \
|
||||
BATCH_OWN_DIR = False
|
||||
):
|
||||
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
# ----------------- Batch support!
|
||||
if BATCH_ENABLE:
|
||||
if os == None: BATCH_OWN_DIR = False
|
||||
@ -388,7 +390,6 @@ def write(filename, batch_objects = None, \
|
||||
orig_sce = context.scene
|
||||
# orig_sce = bpy.data.scenes.active
|
||||
|
||||
|
||||
new_fbxpath = fbxpath # own dir option modifies, we need to keep an original
|
||||
for data in data_seq: # scene or group
|
||||
newname = BATCH_FILE_PREFIX + bpy.utils.clean_name(data.name)
|
||||
@ -651,7 +652,7 @@ def write(filename, batch_objects = None, \
|
||||
}''' % (curtime))
|
||||
|
||||
file.write('\nCreationTime: "%.4i-%.2i-%.2i %.2i:%.2i:%.2i:000"' % curtime)
|
||||
file.write('\nCreator: "Blender3D version %s"' % bpy.app.version_string)
|
||||
file.write('\nCreator: "Blender version %s"' % bpy.app.version_string)
|
||||
|
||||
|
||||
pose_items = [] # list of (fbxName, matrix) to write pose data for, easier to collect allong the way
|
||||
|
@ -88,7 +88,7 @@ def write_mtl(scene, filename, copy_images, mtl_dict):
|
||||
|
||||
file = open(filename, "w")
|
||||
# XXX
|
||||
# file.write('# Blender3D MTL File: %s\n' % Blender.Get('filename').split('\\')[-1].split('/')[-1])
|
||||
# file.write('# Blender MTL File: %s\n' % Blender.Get('filename').split('\\')[-1].split('/')[-1])
|
||||
file.write('# Material Count: %i\n' % len(mtl_dict))
|
||||
# Write material/image combinations we have used.
|
||||
for key, (mtl_mat_name, mat, img) in mtl_dict.items():
|
||||
@ -361,8 +361,8 @@ def write(filename, objects, scene,
|
||||
file = open(filename, "w")
|
||||
|
||||
# Write Header
|
||||
file.write('# Blender3D v%s OBJ File: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1] ))
|
||||
file.write('# www.blender3d.org\n')
|
||||
file.write('# Blender v%s OBJ File: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1] ))
|
||||
file.write('# www.blender.org\n')
|
||||
|
||||
# Tell the obj file what material file to use.
|
||||
if EXPORT_MTL:
|
||||
@ -816,14 +816,15 @@ def do_export(filename, context,
|
||||
EXPORT_KEEP_VERT_ORDER = False,
|
||||
EXPORT_POLYGROUPS = False,
|
||||
EXPORT_CURVE_AS_NURBS = True):
|
||||
# Window.EditMode(0)
|
||||
# Window.WaitCursor(1)
|
||||
|
||||
|
||||
base_name, ext = splitExt(filename)
|
||||
context_name = [base_name, '', '', ext] # Base name, scene name, frame number, extension
|
||||
|
||||
orig_scene = context.scene
|
||||
|
||||
# Exit edit mode before exporting, so current object states are exported properly.
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
# if EXPORT_ALL_SCENES:
|
||||
# export_scenes = bpy.data.scenes
|
||||
# else:
|
||||
|
@ -99,6 +99,7 @@ def write(filename, scene, ob, \
|
||||
|
||||
Window.WaitCursor(1)
|
||||
"""
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
#mesh = BPyMesh.getMeshFromObject(ob, None, EXPORT_APPLY_MODIFIERS, False, scn) # XXX
|
||||
if EXPORT_APPLY_MODIFIERS:
|
||||
@ -202,7 +203,7 @@ def write(filename, scene, ob, \
|
||||
|
||||
file.write('ply\n')
|
||||
file.write('format ascii 1.0\n')
|
||||
file.write('comment Created by Blender3D %s - www.blender.org, source file: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1]))
|
||||
file.write('comment Created by Blender %s - www.blender.org, source file: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1]))
|
||||
|
||||
file.write('element vertex %d\n' % len(ply_verts))
|
||||
|
||||
|
@ -1155,8 +1155,9 @@ def x3d_export(filename,
|
||||
|
||||
|
||||
scene = context.scene
|
||||
# scene = Blender.Scene.GetCurrent()
|
||||
world = scene.world
|
||||
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
# XXX these are global textures while .Get() returned only scene's?
|
||||
alltextures = bpy.data.textures
|
||||
|
@ -349,7 +349,7 @@ class HELP_OT_blender_eshop(HelpOperator):
|
||||
'''Buy official Blender resources and merchandise online'''
|
||||
bl_idname = "help.blender_eshop"
|
||||
bl_label = "Blender e-Shop"
|
||||
_url = 'http://www.blender3d.org/e-shop'
|
||||
_url = 'http://www.blender.org/e-shop'
|
||||
|
||||
|
||||
class HELP_OT_developer_community(HelpOperator):
|
||||
|
Loading…
Reference in New Issue
Block a user