[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13426] trunk/blender/release/scripts/ render_save_layers.py: script to save renderlayers to a file so you can load them in other blend' s - useful when applying settings in a pipeline (andy tells me ; ) )

Campbell Barton ideasman42 at gmail.com
Mon Jan 28 01:05:17 CET 2008


Revision: 13426
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13426
Author:   campbellbarton
Date:     2008-01-28 01:05:15 +0100 (Mon, 28 Jan 2008)

Log Message:
-----------
script to save renderlayers to a file so you can load them in other blend's - useful when applying settings in a pipeline (andy tells me ;) )

Added Paths:
-----------
    trunk/blender/release/scripts/render_save_layers.py

Added: trunk/blender/release/scripts/render_save_layers.py
===================================================================
--- trunk/blender/release/scripts/render_save_layers.py	                        (rev 0)
+++ trunk/blender/release/scripts/render_save_layers.py	2008-01-28 00:05:15 UTC (rev 13426)
@@ -0,0 +1,116 @@
+#!BPY
+
+"""
+Name: 'Save Render Layers...'
+Blender: 245
+Group: 'Render'
+Tooltip: 'Save current renderlayers as a BPython script'
+"""
+
+__author__ = "Campbell Barton"
+__url__ = ("blender", "elysiun")
+__version__ = "1.0"
+
+__bpydoc__ = """\
+"""
+
+# --------------------------------------------------------------------------
+# The scripts generated by this script are put under Public Domain by
+# default, but you are free to edit the ones you generate with this script
+# and change their license to another one of your choice.
+# --------------------------------------------------------------------------
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# ***** END GPL LICENCE BLOCK *****
+# --------------------------------------------------------------------------
+
+import Blender
+from Blender.Window import Theme, FileSelector
+from Blender import Scene
+
+sce = Scene.GetCurrent()
+rend = sce.render
+
+# default filename: theme's name + '_theme.py' in user's scripts dir:
+default_fname = Blender.Get("scriptsdir")
+default_fname = Blender.sys.join(default_fname, sce.name + '_renderlayer.py')
+default_fname = default_fname.replace(' ','_')
+
+def write_renderlayers(filename):
+	"Write the current renderlayer as a bpython script"
+	
+	if not filename.endswith('.py'): filename += '.py'
+
+	fout = file(filename, "w")
+
+	fout.write("""#!BPY
+
+# \"\"\"
+# Name: '%s'
+# Blender: 245
+# Group: 'Render'
+# Tooltip: ''
+# \"\"\"
+
+__%s__ = "????"
+__%s__ = "2.43"
+__%s__ = ["blender"]
+__%s__ = \"\"\"\\
+You can edit this section to write something about your script that can
+be read then with the Scripts Help Browser script in Blender.
+
+Remember to also set author, version and possibly url(s) above.  You can also
+define an __email__ tag, check some bundled script's source for examples.
+\"\"\"
+
+# This script was automatically generated by the save_theme.py bpython script.
+# By default, these generated scripts are released as Public Domain, but you
+# are free to change the license of the scripts you generate with
+# save_theme.py before releasing them.
+
+import Blender
+from Blender import Scene
+
+sce = Scene.GetCurrent()
+rend = sce.render
+""" % (sce.name, "author", "version", "url", "bpydoc"))
+
+	for lay in rend.renderLayers: # 
+		fout.write("\nlay = rend.addRenderLayer()\n")
+		fout.write("lay.name = \"%s\"\n" % lay.name)
+		
+		exec("vars = dir(lay)")
+
+		for var in vars:
+			if var.startswith('_'):
+				continue
+				
+			v = "lay.%s" % var
+			exec("value = %s" % v)
+			if type(value) == str:
+				fout.write("%s = '%s'\n" % (v, value))
+			else:
+				fout.write("%s = %s\n" % (v, value))
+
+	fout.write('\nBlender.Redraw(-1)')
+	fout.close()
+	try:
+		Blender.UpdateMenus()
+	except:
+		Blender.Draw.PupMenu("Warning - check console!%t|Menus could not be automatically updated")
+
+FileSelector(write_renderlayers, "Save RenderLayers", default_fname)
\ No newline at end of file





More information about the Bf-blender-cvs mailing list