[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4402] trunk/py/scripts/addons: use object.update_from_editmode() for scripts which read object data.
Campbell Barton
ideasman42 at gmail.com
Thu Mar 21 15:55:28 CET 2013
Revision: 4402
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4402
Author: campbellbarton
Date: 2013-03-21 14:55:28 +0000 (Thu, 21 Mar 2013)
Log Message:
-----------
use object.update_from_editmode() for scripts which read object data.
Modified Paths:
--------------
trunk/py/scripts/addons/io_mesh_ply/export_ply.py
trunk/py/scripts/addons/io_mesh_stl/blender_utils.py
trunk/py/scripts/addons/io_mesh_uv_layout/__init__.py
trunk/py/scripts/addons/io_scene_3ds/export_3ds.py
trunk/py/scripts/addons/io_scene_obj/export_obj.py
trunk/py/scripts/addons/io_scene_vrml2/export_vrml2.py
trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
Modified: trunk/py/scripts/addons/io_mesh_ply/export_ply.py
===================================================================
--- trunk/py/scripts/addons/io_mesh_ply/export_ply.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_mesh_ply/export_ply.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -208,6 +208,7 @@
raise Exception("Error, could not get mesh data from active object")
mesh.transform(obj.matrix_world)
+ mesh.calc_normals()
ret = save_mesh(filepath, mesh,
use_normals=use_normals,
Modified: trunk/py/scripts/addons/io_mesh_stl/blender_utils.py
===================================================================
--- trunk/py/scripts/addons/io_mesh_stl/blender_utils.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_mesh_stl/blender_utils.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -55,6 +55,9 @@
Split the quad into two triangles
"""
+ # get the editmode data
+ ob.update_from_editmode()
+
# get the modifiers
try:
mesh = ob.to_mesh(bpy.context.scene, use_mesh_modifiers, "PREVIEW")
Modified: trunk/py/scripts/addons/io_mesh_uv_layout/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_mesh_uv_layout/__init__.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_mesh_uv_layout/__init__.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -172,9 +172,7 @@
def execute(self, context):
obj = context.active_object
- is_editmode = (obj.mode == 'EDIT')
- if is_editmode:
- bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+ obj.update_from_editmode()
mode = self.mode
@@ -204,9 +202,6 @@
if self.modified:
bpy.data.meshes.remove(mesh)
- if is_editmode:
- bpy.ops.object.mode_set(mode='EDIT', toggle=False)
-
file.close()
return {'FINISHED'}
Modified: trunk/py/scripts/addons/io_scene_3ds/export_3ds.py
===================================================================
--- trunk/py/scripts/addons/io_scene_3ds/export_3ds.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_scene_3ds/export_3ds.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -997,9 +997,6 @@
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:
@@ -1028,6 +1025,8 @@
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)
Modified: trunk/py/scripts/addons/io_scene_obj/export_obj.py
===================================================================
--- trunk/py/scripts/addons/io_scene_obj/export_obj.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_scene_obj/export_obj.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -678,6 +678,7 @@
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')
Modified: trunk/py/scripts/addons/io_scene_vrml2/export_vrml2.py
===================================================================
--- trunk/py/scripts/addons/io_scene_vrml2/export_vrml2.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_scene_vrml2/export_vrml2.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -177,16 +177,10 @@
assert(obj.type == 'MESH')
if use_mesh_modifiers:
- is_editmode = (obj.mode == 'EDIT')
- if is_editmode:
- bpy.ops.object.editmode_toggle()
-
+ obj.update_from_editmode()
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':
Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2013-03-21 14:49:55 UTC (rev 4401)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2013-03-21 14:55:28 UTC (rev 4402)
@@ -1582,8 +1582,10 @@
bpy.path.ensure_ext(filepath, '.x3dz' if use_compress else '.x3d')
- if bpy.ops.object.mode_set.poll():
- bpy.ops.object.mode_set(mode='OBJECT')
+ edit_object = context.edit_object
+ if edit_object:
+ edit_object.update_from_editmode()
+ del edit_object
if use_compress:
file = gzip_open_utf8(filepath, 'w')
More information about the Bf-extensions-cvs
mailing list