# AUTOMATED VIEWER FRAME HANDLES # Add this code to the Menu.py file in your .nuke directory # This code adds commands for 24, 12, and 8 frame handles. # If you don't need all of them, you can delete the function # and nuke.menu addCommand for that frame range. # 24 Frame Handles def newViewerRange24(): # Get the node that is the current viewer v = nuke.activeViewer().node() # Get the first and last frames from the project settings firstFrame = nuke.Root()['first_frame'].value() lastFrame = nuke.Root()['last_frame'].value() # get a string for the new range and set this on the viewer newRange = str(int(firstFrame)+24) + '-' + str(int(lastFrame) - 24) v['frame_range_lock'].setValue(True) v['frame_range'].setValue(newRange) # 12 Frame Handles def newViewerRange12(): # Get the node that is the current viewer v = nuke.activeViewer().node() # Get the first and last frames from the project settings firstFrame = nuke.Root()['first_frame'].value() lastFrame = nuke.Root()['last_frame'].value() # get a string for the new range and set this on the viewer newRange = str(int(firstFrame)+12) + '-' + str(int(lastFrame) - 12) v['frame_range_lock'].setValue(True) v['frame_range'].setValue(newRange) # 8 Frame Handles def newViewerRange8(): # Get the node that is the current viewer v = nuke.activeViewer().node() # Get the first and last frames from the project settings firstFrame = nuke.Root()['first_frame'].value() lastFrame = nuke.Root()['last_frame'].value() # get a string for the new range and set this on the viewer newRange = str(int(firstFrame)+8) + '-' + str(int(lastFrame) - 8) v['frame_range_lock'].setValue(True) v['frame_range'].setValue(newRange) # Adding the commands to the Viewer Menu viewerbar = nuke.menu("Nuke").findItem("Viewer") viewerbar.addSeparator() nuke.menu('Nuke').addCommand('Viewer/Viewer Handles - 24f', "newViewerRange24()") nuke.menu('Nuke').addCommand('Viewer/Viewer Handles - 12f', "newViewerRange12()") nuke.menu('Nuke').addCommand('Viewer/Viewer Handles - 8f', "newViewerRange8()")