Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. import sys
  2. import bpy
  3.  
  4. def deleteNodeTree(scene, override):
  5. scene.node_tree.nodes.clear()
  6.  
  7.  
  8. def copyNodeTree(scene, override):
  9. bpy.ops.node.select_all(override, action = 'DESELECT')
  10. bpy.ops.node.select_all(override, action = 'SELECT')
  11. bpy.ops.node.clipboard_copy(override)
  12.  
  13. def pasteNodeTree(scene, override):
  14. bpy.ops.node.select_all(override, action = 'DESELECT')
  15. bpy.ops.node.select_all(override, action = 'SELECT')
  16. bpy.ops.node.clipboard_paste(override)
  17.  
  18. def getOverride(type, regionType):
  19. Override = False
  20. for window in bpy.context.window_manager.windows:
  21. for area in window.screen.areas:
  22. if(area.type == type):
  23. Override = {"window": window, "screen": window.screen, "area": area, "scene" : bpy.context.scene}
  24. break
  25. if(not Override):
  26. bpy.context.window_manager.windows[0].screen.areas[0].type = type
  27. Override = {"window": bpy.context.window_manager.windows[0], "screen": bpy.context.window_manager.windows[0].screen, "area": bpy.context.window_manager.windows[0].screen.areas[0], "scene" : bpy.context.scene, "region" : bpy.context.region}
  28. if(regionType):
  29. for region in Override["area"].regions:
  30. if(region.type == regionType):
  31. Override["region"] = region
  32. return Override
  33.  
  34. if len(sys.argv) < 6:
  35. raise Exception("Usage: blender -b blend_file --python script.py
  36. target_scene_name")
  37.  
  38. blend_file = sys.argv[2]
  39. target_scene_name = sys.argv[5]
  40.  
  41. bpy.ops.wm.open_mainfile( filepath = blend_file )
  42.  
  43. #Copia su tutte le scene le impostazioni dei nodi di output prese dalla scena selezionata (target_scene_name)
  44.  
  45. bpy.context.screen.scene = bpy.data.scenes[target_scene_name]
  46. override = getOverride('NODE_EDITOR', False)
  47. copyNodeTree( bpy.context.screen.scene, override)
  48.  
  49. for scene in bpy.data.scenes:
  50. if scene.name != target_scene_name:
  51. bpy.context.screen.scene = bpy.data.scenes[scene.name]
  52. scene = bpy.context.screen.scene
  53. print("Deleting output options from scene: " +
  54. bpy.context.screen.scene.name)
  55. deleteNodeTree(scene, override)
  56. print("Pasting output options to scene: " +
  57. bpy.context.screen.scene.name)
  58. pasteNodeTree(scene, override)
  59.  
  60. bpy.ops.wm.save_as_mainfile(filepath = blend_file, compress=False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement