[Bf-extensions-cvs] [92064b3] master: NewFeature: Copy Render Settings and Copy Cycles Settings

Eugenio Pignataro noreply at git.blender.org
Fri Aug 29 17:41:14 CEST 2014


Commit: 92064b33ee922f478a579f03cfe36b508403ae75
Author: Eugenio Pignataro
Date:   Fri Aug 29 12:40:59 2014 -0300
Branches: master
https://developer.blender.org/rBAC92064b33ee922f478a579f03cfe36b508403ae75

NewFeature: Copy Render Settings and Copy Cycles Settings

===================================================================

M	oscurart_tools/__init__.py
M	oscurart_tools/oscurart_render.py

===================================================================

diff --git a/oscurart_tools/__init__.py b/oscurart_tools/__init__.py
index 4c2057b..0699af6 100644
--- a/oscurart_tools/__init__.py
+++ b/oscurart_tools/__init__.py
@@ -217,7 +217,10 @@ class OscPanelRender(OscPollRender, bpy.types.Panel):
         active_obj = context.active_object
         layout = self.layout
         col = layout.column(align=1)
-
+        
+        colrow = col.row(align=1)
+        colrow.operator("render.copy_render_settings_osc", icon="LIBRARY_DATA_DIRECT", text="Copy Render Settings").mode="render"
+        colrow.operator("render.copy_render_settings_osc", icon="LIBRARY_DATA_DIRECT", text="Copy Cycles Settings").mode="cycles"
         col.operator("file.create_batch_maker_osc", icon="LINENUMBERS_ON", text="Make Render Batch")
         col.operator("file.create_batch_python", icon="LINENUMBERS_ON", text="Make Python Batch")
         colrow = col.row(align=1)
@@ -296,3 +299,4 @@ if __name__ == "__main__":
     register()
 
 
+
diff --git a/oscurart_tools/oscurart_render.py b/oscurart_tools/oscurart_render.py
index 1deeb89..860aa95 100644
--- a/oscurart_tools/oscurart_render.py
+++ b/oscurart_tools/oscurart_render.py
@@ -369,3 +369,73 @@ class BrokenFramesPanel (bpy.types.Panel):
         colrow.operator("object.clear_broken_file")
         colrow = col.row(align=1)
         colrow.operator("object.delete_broken_file")
+
+
+##--------------------------------COPY RENDER SETTINGS----------------------------
+
+def defCopyRenderSettings(mode):
+    
+    sc = bpy.context.scene
+    sceneslist = bpy.data.scenes[:]
+    sceneslist.remove(sc)    
+
+    excludes = {'name','objects', 'object_bases', 'has_multiple_engines', 'display_settings', 'broken_files', 'rna_type', 'frame_subframe', 'view_settings', 'tool_settings', 'render', 'user_clear', 'animation_data_create', 'collada_export', 'keying_sets', 'icon_props', 'image_settings', 'library', 'bake', 'active_layer', 'frame_current_final', 'sequence_editor_clear', 'rigidbody_world', 'unit_settings', 'orientations', '__slots__', 'ray_cast', 'sequencer_colorspace_settings', 'ffmpeg', ' [...]
+   
+
+    
+    
+    if mode == "render":    
+        scenerenderdict = {prop : eval("bpy.context.scene.render.%s" % (prop)) for prop in dir(bpy.context.scene.render)}        
+        scenedict = {prop : eval("bpy.context.scene.%s" % (prop)) for prop in dir(bpy.context.scene) if prop not in excludes}
+        sceneimagesettingdict = {prop : eval("bpy.context.scene.render.image_settings.%s" % (prop)) for prop in dir(bpy.context.scene.render.image_settings)}        
+   
+        # render
+        for escena in sceneslist:
+            for prop,value in scenerenderdict.items():
+                try:
+                    setattr(escena.render, str(prop),value)
+                except:
+                    print("%s was not copied!" % (prop))
+                    pass
+        # scene        
+        for escena in sceneslist:    
+            for prop,value in scenedict.items():
+                try:
+                    setattr(escena, str(prop),value)
+                except:
+                    print("%s was not copied!" % (prop))
+                    pass
+        # imageSettings             
+        for escena in sceneslist:
+            for prop,value in sceneimagesettingdict.items():  
+                try:
+                    setattr(escena.render.image_settings, str(prop),value)
+                except:
+                    print("%s was not copied!" % (prop))                             
+                    pass
+                    
+    if mode == "cycles":  
+        scenecyclesdict = {prop : eval("bpy.context.scene.cycles.%s" % (prop)) for prop in dir(bpy.context.scene.cycles)}              
+        # cycles
+        for escena in sceneslist:
+            for prop,value in scenecyclesdict.items():   
+                try:
+                    setattr(escena.cycles, str(prop),value)
+                except:
+                    print("%s was not copied!" % (prop))                             
+                    pass
+              
+   
+
+class copyRenderSettings (bpy.types.Operator):
+    bl_idname="render.copy_render_settings_osc"
+    bl_label="Copy Render Settings"
+    #bl_options = {'REGISTER', 'UNDO'}
+
+    mode = bpy.props.StringProperty(default="")
+
+    def execute(self,context):
+        
+        defCopyRenderSettings(self.mode)
+
+        return {'FINISHED'}



More information about the Bf-extensions-cvs mailing list