Hi,

I have a plugin that writes luts, but only by viewing through the node
itself. There is no execute button a la GenerateLUT or Write. I use python
to troll my Nuke flow-graph when setting up multiple lut outputs.

The problem is when I have many luts only the last one is writing out in a
for loop. I know that each one should be working since I have a print
statement to show that it should be. Also, if I throw up a
nuke.message("writing lut") then it works and all the luts are written. I
just don't want to have to hit the 'OK' button. That pause is allowing
enough time to get the node to successfully write. Having said that a
regular python pause or a Nuke python progress bar doesn't work in the same
way. My question is if the nuke.message is actually allowing the viewer to
update. Any suggestions of other ways to force viewer update or similar?
I've tried having the viewer forward a frame and back, but that isn't doing
the same thing as the nuke.message. Maybe there's a way to automatically
close the nuke.message pop-up?

Here's a snippet of the code:

def writeIt(n):
    n.setSelected( True )
    nukescripts.connect_selected_to_viewer(0)
    n.setSelected( False )

def setLutNodes():

    for n in nuke.allNodes():

        if n.name() == "SHOT_LUT_CDL_3DL":
            n['lookFile'].setValue(file_output_lut_cdl_3dl)
            print "writing " + file_output_lut_cdl_3dl
            writeIt(n)
        elif n.name() == "SHOT_LUT_3DL":
            n['lookFile'].setValue(file_output_lut_3dl)
            print "writing " + file_output_lut_3dl
            writeIt(n)
        elif n.name() == "SHOT_LUT_3DL_W_OFFSET":
            n['lookFile'].setValue(file_output_lut_3dl_w_offset)
            print "writing " + file_output_lut_3dl_w_offset
            writeIt(n)
        elif n.name() == "SHOT_LUT_CUBE":
            n['lookFile'].setValue(file_output_lut_cube)
            print "writing " + file_output_lut_cube
            writeIt(n)
        elif n.name() == "SHOT_LUT_TXT":
            n['lookFile'].setValue(file_output_lut_txt)
            print "writing " + file_output_lut_txt
            writeIt(n)
        elif n.name() == "SHOT_LUT_LUT":
            n['lookFile'].setValue(file_output_lut_lut)
            print "writing " + file_output_lut_lut
            writeIt(n)
        elif n.name() == "SHOT_LUT_ACV":
            n['lookFile'].setValue(file_output_lut_acv)
            print "writing " + file_output_lut_acv
            writeIt(n)
        elif n.name() == "SHOT_LUT_ICC":
            n['lookFile'].setValue(file_output_lut_icc)
            print "writing " + file_output_lut_icc
            writeIt(n)
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to