def knobChange(): print nuke.thisKnob().name() #nuke.addKnobChanged(knobChange) # ------ Import NK functions from other modules into current namespace ------ # #from nk_rotoreveal import nk_get_roto_from_color from nk_threadrender import nk_multithreadedRender from nk_panelreopen import nk_reopen_panels if nuke.env['gui']: # --- Return list of nodes in the order they were selected --- # nukeOriginalSelectedNodes = nuke.selectedNodes reverseSelected = lambda: nukeOriginalSelectedNodes()[::-1] nuke.selectedNodes = reverseSelected # ------------------------------------------------------------ # funcs = [func for (k,func) in locals().items() if k.startswith('nk')] from nk_load_nk import createMenu createMenu('NK',funcs) toolbar = nuke.menu('Nodes') gizMenu = toolbar.addMenu('Gizmos') for giz in [os.path.splitext(n)[0] for n in os.listdir(os.path.join(os.environ["HOME"],".nuke")) if re.search("gizmo",n)]: gizMenu.addCommand(giz,"nuke.createNode('%s')"%giz)
import nuke from nk_load_nk import createMenu def nk_align_vert(): """ V Align """ positions = [t.ypos() for t in nuke.selectedNodes()] mid = (min(positions)+max(positions))/2 [t.setYpos(mid) for t in nuke.selectedNodes()] def nk_align_distribute_across(): """ H Spread """ nodes = sorted([n for n in nuke.selectedNodes()], key=lambda n: n.xpos()) minX = nodes[0].xpos() distance = 150 print [nodes[i].setXpos(minX+distance*i) for i in range(1,len(nodes))] funcs = [func for (k,func) in locals().items() if k.startswith('nk')] createMenu('DAG Clean',funcs)