[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32434] trunk/blender: patch [#24221] Creating graph from armature doesn't work with unsaved .blend files ( with fix).

Campbell Barton ideasman42 at gmail.com
Wed Oct 13 02:08:24 CEST 2010


Revision: 32434
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32434
Author:   campbellbarton
Date:     2010-10-13 02:08:24 +0200 (Wed, 13 Oct 2010)

Log Message:
-----------
patch [#24221] Creating graph from armature doesn't work with unsaved .blend files (with fix).
from Sergej Reich (sergof)

Made some corrections to the patch as well as using bpy.app.tempdir with tempfile python module.

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rigify/__init__.py
    trunk/blender/release/scripts/ui/properties_data_armature_rigify.py
    trunk/blender/source/blender/python/intern/bpy_app.c

Modified: trunk/blender/release/scripts/modules/rigify/__init__.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify/__init__.py	2010-10-12 23:47:43 UTC (rev 32433)
+++ trunk/blender/release/scripts/modules/rigify/__init__.py	2010-10-13 00:08:24 UTC (rev 32434)
@@ -534,7 +534,11 @@
     new_objects = rigify.generate_test(context)
 
     if GRAPH:
-        base_name = os.path.splitext(bpy.data.filepath)[0]
+        if(bpy.data.filepath):
+            base_name = os.path.splitext(bpy.data.filepath)[0]
+        else:
+            import tempfile
+            base_name = tempfile.mktemp(prefix=bpy.app.tempdir)
         for obj, obj_new in new_objects:
             for obj in (obj, obj_new):
                 fn = base_name + "-" + bpy.path.clean_name(obj.name)

Modified: trunk/blender/release/scripts/ui/properties_data_armature_rigify.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_armature_rigify.py	2010-10-12 23:47:43 UTC (rev 32433)
+++ trunk/blender/release/scripts/ui/properties_data_armature_rigify.py	2010-10-13 00:08:24 UTC (rev 32434)
@@ -211,14 +211,23 @@
         import bpy
         reload(graphviz_export)
         obj = bpy.context.object
-        path = os.path.splitext(bpy.data.filepath)[0] + "-" + bpy.path.clean_name(obj.name)
+        if(bpy.data.filepath):
+            path = os.path.splitext(bpy.data.filepath)[0] + "-" + bpy.path.clean_name(obj.name)
+        else:
+            import tempfile
+            path = tempfile.mktemp(prefix=bpy.app.tempdir) + "-" + bpy.path.clean_name(obj.name)
         path_dot = path + ".dot"
         path_png = path + ".png"
         saved = graphviz_export.graph_armature(bpy.context.object, path_dot, CONSTRAINTS=False, DRIVERS=False)
 
         if saved:
             # if we seriously want this working everywhere we'll need some new approach
-            os.system("dot -Tpng %s > %s; gnome-open %s &" % (path_dot, path_png, path_png))
+            os.system("dot -Tpng %r > %r" % (path_dot, path_png))
+            if not os.path.exists(path_png) or os.stat(path_png)[6] == 0:
+                self.report('ERROR', "Graphvis could not create %r check graphviz is installed" % path_png)
+                return {'CANCELLED'}
+
+            bpy.ops.image.external_edit(filepath=path_png)
             #os.system("python /b/xdot.py '%s' &" % path_dot)
 
         return {'FINISHED'}

Modified: trunk/blender/source/blender/python/intern/bpy_app.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_app.c	2010-10-12 23:47:43 UTC (rev 32433)
+++ trunk/blender/source/blender/python/intern/bpy_app.c	2010-10-13 00:08:24 UTC (rev 32434)
@@ -94,11 +94,11 @@
 	SetStrItem(build_platform);
 	SetStrItem(build_type);
 #else
-		SetStrItem("Unknown");
-		SetStrItem("Unknown");
-		SetStrItem("Unknown");
-		SetStrItem("Unknown");
-		SetStrItem("Unknown");
+	SetStrItem("Unknown");
+	SetStrItem("Unknown");
+	SetStrItem("Unknown");
+	SetStrItem("Unknown");
+	SetStrItem("Unknown");
 #endif
 
 #undef SetIntItem





More information about the Bf-blender-cvs mailing list