Difference between revisions of "Nuke Python"

From Antoine Vienne | Wiki
Jump to navigation Jump to search
(Created page with "=Nuke Python Scripts= === Count selected nodes === <pre> len(nuke.selectedNodes()) </pre>")
 
Line 3: Line 3:
 
<pre>
 
<pre>
 
len(nuke.selectedNodes())
 
len(nuke.selectedNodes())
 +
 +
</pre>
 +
 +
=== Maxwell Render - Check .mxi sequence Sampling levels ===
 +
<pre>
 +
//This script comes from the Great Marc Dubrois
 +
 +
def checkMXI_SL():
 +
    '''takes mxi read node and checks its SLs metadata and outputs frames under certain treshold'''
 +
 +
    sl_threshold = 18.0
 +
    txt = nuke.getInput('Print frames with SL below:', str(sl_threshold))
 +
    if txt:
 +
        sl_threshold = float(txt)
 +
    output = ''
 +
 +
    task = nuke.ProgressTask("Checking MXI SLs")
 +
    task.setMessage("Progress")
 +
 +
    for node in nuke.selectedNodes():
 +
        if node.Class() == 'Read':
 +
            firstframe = int(node['first'].value())
 +
            #lastframe = firstframe + 10
 +
            lastframe = int(node['last'].value())
 +
            for i in range(firstframe, lastframe):
 +
                percentage = int(100.0*(i-firstframe)/(lastframe-firstframe))
 +
                task.setProgress(percentage)
 +
                if task.isCancelled():
 +
                    break;
 +
 +
                sl = node.metadata('SAMPLING_LEVEL',i)
 +
                if  sl < sl_threshold:
 +
                        task.setMessage('Frame ['+str(i)+'] SL'+"{0:.1f}".format(sl))                       
 +
                        logline = 'Frame ' + str(i) + ': ' + "{0:.2f}".format(sl) + '\n'
 +
                        output = output + logline
 +
            task.setProgress(100)
 +
    del task
 +
 +
    p = nuke.Panel('Results')
 +
    if output == '':
 +
        output = 'All MXI are above or equal to '+str(sl_threshold)
 +
    p.addNotepad('Results:',output)
 +
    ret = p.show()
 +
 +
checkMXI_SL()
  
 
</pre>
 
</pre>

Revision as of 23:57, 7 June 2019

Nuke Python Scripts

Count selected nodes

len(nuke.selectedNodes())

Maxwell Render - Check .mxi sequence Sampling levels

//This script comes from the Great Marc Dubrois

def checkMXI_SL():
    '''takes mxi read node and checks its SLs metadata and outputs frames under certain treshold'''

    sl_threshold = 18.0
    txt = nuke.getInput('Print frames with SL below:', str(sl_threshold))
    if txt:
        sl_threshold = float(txt)
    output = ''

    task = nuke.ProgressTask("Checking MXI SLs") 
    task.setMessage("Progress")

    for node in nuke.selectedNodes():
        if node.Class() == 'Read':
            firstframe = int(node['first'].value())
            #lastframe = firstframe + 10
            lastframe = int(node['last'].value())
            for i in range(firstframe, lastframe):
                percentage = int(100.0*(i-firstframe)/(lastframe-firstframe))
                task.setProgress(percentage)
                if task.isCancelled(): 
                    break;

                sl = node.metadata('SAMPLING_LEVEL',i)
                if  sl < sl_threshold:
                        task.setMessage('Frame ['+str(i)+'] SL'+"{0:.1f}".format(sl))                        
                        logline = 'Frame ' + str(i) + ': ' + "{0:.2f}".format(sl) + '\n'
                        output = output + logline
            task.setProgress(100)
    del task

    p = nuke.Panel('Results')
    if output == '':
        output = 'All MXI are above or equal to '+str(sl_threshold)
    p.addNotepad('Results:',output)
    ret = p.show()

checkMXI_SL()