From 2d048308c69a7671b43c246ef882f99661dd771d Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Sun, 24 Mar 2013 19:47:31 +0000 Subject: [PATCH] remove use of ob.update_from_editmode() since editmode meshes don't get access to customdata layers. --- io_mesh_ply/export_ply.py | 3 ++- io_mesh_uv_layout/__init__.py | 7 ++++++- io_scene_3ds/export_3ds.py | 5 +++-- io_scene_obj/export_obj.py | 1 - io_scene_vrml2/export_vrml2.py | 8 +++++++- io_scene_x3d/export_x3d.py | 6 ++---- 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/io_mesh_ply/export_ply.py b/io_mesh_ply/export_ply.py index 48d1542f8..4ef8b5fbc 100644 --- a/io_mesh_ply/export_ply.py +++ b/io_mesh_ply/export_ply.py @@ -197,7 +197,8 @@ def save(operator, if not obj: raise Exception("Error, Select 1 active object") - obj.update_from_editmode() + if bpy.ops.object.mode_set.poll(): + bpy.ops.object.mode_set(mode='OBJECT') if use_mesh_modifiers and obj.modifiers: mesh = obj.to_mesh(scene, True, 'PREVIEW') diff --git a/io_mesh_uv_layout/__init__.py b/io_mesh_uv_layout/__init__.py index 07e9e5879..dc6c05d53 100644 --- a/io_mesh_uv_layout/__init__.py +++ b/io_mesh_uv_layout/__init__.py @@ -172,7 +172,9 @@ class ExportUVLayout(bpy.types.Operator): def execute(self, context): obj = context.active_object - obj.update_from_editmode() + is_editmode = (obj.mode == 'EDIT') + if is_editmode: + bpy.ops.object.mode_set(mode='OBJECT', toggle=False) mode = self.mode @@ -202,6 +204,9 @@ class ExportUVLayout(bpy.types.Operator): if self.modified: bpy.data.meshes.remove(mesh) + if is_editmode: + bpy.ops.object.mode_set(mode='EDIT', toggle=False) + file.close() return {'FINISHED'} diff --git a/io_scene_3ds/export_3ds.py b/io_scene_3ds/export_3ds.py index 1bab73116..e7f624ac7 100644 --- a/io_scene_3ds/export_3ds.py +++ b/io_scene_3ds/export_3ds.py @@ -997,6 +997,9 @@ def save(operator, if global_matrix is None: global_matrix = mathutils.Matrix() + if bpy.ops.object.mode_set.poll(): + bpy.ops.object.mode_set(mode='OBJECT') + # Initialize the main chunk (primary): primary = _3ds_chunk(PRIMARY) # Add version chunk: @@ -1025,8 +1028,6 @@ def save(operator, objects = (ob for ob in scene.objects if ob.is_visible(scene)) for ob in objects: - ob.update_from_editmode() - # get derived objects free, derived = create_derived_objects(scene, ob) diff --git a/io_scene_obj/export_obj.py b/io_scene_obj/export_obj.py index 681e45343..90d693168 100644 --- a/io_scene_obj/export_obj.py +++ b/io_scene_obj/export_obj.py @@ -678,7 +678,6 @@ def _write(context, filepath, scene = context.scene # Exit edit mode before exporting, so current object states are exported properly. - # use this over obj.update_from_editmode() because of animation export. if bpy.ops.object.mode_set.poll(): bpy.ops.object.mode_set(mode='OBJECT') diff --git a/io_scene_vrml2/export_vrml2.py b/io_scene_vrml2/export_vrml2.py index 78d1e45b0..29b76ddb9 100644 --- a/io_scene_vrml2/export_vrml2.py +++ b/io_scene_vrml2/export_vrml2.py @@ -177,10 +177,16 @@ def save_object(fw, global_matrix, assert(obj.type == 'MESH') if use_mesh_modifiers: - obj.update_from_editmode() + is_editmode = (obj.mode == 'EDIT') + if is_editmode: + bpy.ops.object.editmode_toggle() + me = obj.to_mesh(scene, True, 'PREVIEW', calc_tessface=False) bm = bmesh.new() bm.from_mesh(me) + + if is_editmode: + bpy.ops.object.editmode_toggle() else: me = obj.data if obj.mode == 'EDIT': diff --git a/io_scene_x3d/export_x3d.py b/io_scene_x3d/export_x3d.py index 8e2c62db0..0b3250441 100644 --- a/io_scene_x3d/export_x3d.py +++ b/io_scene_x3d/export_x3d.py @@ -1582,10 +1582,8 @@ def save(operator, context, filepath="", bpy.path.ensure_ext(filepath, '.x3dz' if use_compress else '.x3d') - edit_object = context.edit_object - if edit_object: - edit_object.update_from_editmode() - del edit_object + if bpy.ops.object.mode_set.poll(): + bpy.ops.object.mode_set(mode='OBJECT') if use_compress: file = gzip_open_utf8(filepath, 'w') -- GitLab