[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28001] trunk/blender/release/scripts: Fix [#21886] OBJ export crashes if attempted while in edit mode

Matt Ebb matt at mke3.net
Mon Apr 5 08:45:47 CEST 2010


Revision: 28001
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28001
Author:   broken
Date:     2010-04-05 08:45:44 +0200 (Mon, 05 Apr 2010)

Log Message:
-----------
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".

Modified Paths:
--------------
    trunk/blender/release/scripts/io/export_3ds.py
    trunk/blender/release/scripts/io/export_fbx.py
    trunk/blender/release/scripts/io/export_obj.py
    trunk/blender/release/scripts/io/export_ply.py
    trunk/blender/release/scripts/io/export_x3d.py
    trunk/blender/release/scripts/ui/space_info.py

Modified: trunk/blender/release/scripts/io/export_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/export_3ds.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/io/export_3ds.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -942,6 +942,8 @@
     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:

Modified: trunk/blender/release/scripts/io/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/io/export_fbx.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/io/export_fbx.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -344,6 +344,8 @@
         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 @@
         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 @@
 }''' % (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

Modified: trunk/blender/release/scripts/io/export_obj.py
===================================================================
--- trunk/blender/release/scripts/io/export_obj.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/io/export_obj.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -88,7 +88,7 @@
 
     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 @@
     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 @@
               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:

Modified: trunk/blender/release/scripts/io/export_ply.py
===================================================================
--- trunk/blender/release/scripts/io/export_ply.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/io/export_ply.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -99,6 +99,7 @@
 
     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 @@
 
     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))
 

Modified: trunk/blender/release/scripts/io/export_x3d.py
===================================================================
--- trunk/blender/release/scripts/io/export_x3d.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/io/export_x3d.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -1155,8 +1155,9 @@
 
 
     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

Modified: trunk/blender/release/scripts/ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/ui/space_info.py	2010-04-05 05:46:39 UTC (rev 28000)
+++ trunk/blender/release/scripts/ui/space_info.py	2010-04-05 06:45:44 UTC (rev 28001)
@@ -349,7 +349,7 @@
     '''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):





More information about the Bf-blender-cvs mailing list