123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- ## set_renderdirectory.py
-
- ##
- ## version 1.2 (2012-12-28): update for new file structure
- ## version 1.1 (2010-06-07): removed unused functions
- ## version 1.0 (2010-05-11): initial version
- ##
- ## todo: ask for pretender, select different format than dpx?
-
-
- import re, os, math
- import nuke, nukescripts
-
- default_format = "dpx"
- scripts_folder = "Comp"
- render_folder = "500_Renders"
-
- debug_flag = False
-
- ##########################
-
-
- def setRenderdirectory():
- """
- change output filename of write node to proper render location
- """
-
- try:
- the_node = nuke.selectedNode()
- if the_node.Class() != "Write":
- nuke.message("Please select a write node.")
- return
- except:
- nuke.message("Please select a write node.")
- return
-
- # comp saved?
- if not nuke.knob("root.name"):
- if nuke.ask("Script needs a file name first.\nSave and continue?"):
- try:
- nuke.scriptSave()
- except RuntimeError:
- # if save dialog was cancelled
- return
- else:
- return
-
- # test if script name is valid
- script_name = nuke.knob("root.name")
- script_path = os.path.dirname(script_name)
- script_name = os.path.splitext(os.path.basename(script_name))[0]
-
- nuke.message("DEBUG: script_name" +script_name)
-
-
- new_path, num = re.subn("(?i)/"+scripts_folder+"/","/"+render_folder+"/",script_path,1)
- if num == 0:
- nuke.message("Script is not saved in "+scripts_folder+".\nRender directory can't be determined.")
- return
- # todo: make sure there are no extra directories beyond sequence and scene number (no "050_scripts/010/010_010/blabla")
-
- new_path = new_path + "/" + script_name
- the_node.knob("file").setValue(new_path + "/" + script_name + ".####." + default_format)
- print "updated directory of "+the_node.name()
- print
-
- # create directory?
- if not debug_flag:
- if not os.path.exists(new_path):
- try:
- os.makedirs(new_path)
- print "created directory "+new_path
- print
- except:
- nuke.message("Error creating "+new_path)
-
-
- # fin
|