def guiFarm(): disableAll = 'for i in nuke.allNodes():\n\tfor k in i.knobs():\n\t\tif i.knob(k).name() == "knobName2":\n\t\t\tknobName = i.knob("knobName2").value()\n\t\t\ti.knob(knobName).clearAnimated()\n\t\t\ti.knob("GUIFarmEnabled").setValue(False)' enableAll = 'for i in nuke.allNodes():\n\tfor k in i.knobs():\n\t\tif i.knob(k).name() == "knobName2":\n\t\t\tknobName = i.knob("knobName2").value()\n\t\t\ti.knob(knobName).setExpression("$gui?gui:farm")\n\t\t\ti.knob("GUIFarmEnabled").setValue(True)' disableThis = 'nuke.thisNode()[nuke.thisNode()["knobName2"].value()].clearAnimated()\nnuke.thisNode()["GUIFarmEnabled"].setValue(False)' enableThis = 'nuke.thisNode()[nuke.thisNode()["knobName2"].value()].setExpression("$gui?gui:farm")\nnuke.thisNode()["GUIFarmEnabled"].setValue(True)' if nuke.thisNode().knob('GUIFarm'): nuke.message('GUI/Farm already exists') else: knobName = nuke.thisKnob().name() nuke.selectedNode().addKnob(nuke.Tab_Knob('GUIFarm', 'GUI/Farm')) nuke.selectedNode().addKnob(nuke.String_Knob('knobName2', 'Knob name')) nuke.selectedNode().addKnob(nuke.Int_Knob('gui')) nuke.selectedNode().addKnob(nuke.Int_Knob('farm')) nuke.selectedNode().addKnob(nuke.PyScript_Knob('enableThis', 'Enable')) nuke.selectedNode().addKnob(nuke.PyScript_Knob('disableThis', 'Disable')) nuke.selectedNode().addKnob(nuke.Text_Knob("globalSettings","Global Settings")) nuke.selectedNode().addKnob(nuke.PyScript_Knob('enableAll', 'Enable all')) nuke.selectedNode().addKnob(nuke.PyScript_Knob('disableAll', 'Disable all')) nuke.selectedNode().addKnob(nuke.Text_Knob("divider2","")) nuke.selectedNode().addKnob(nuke.Boolean_Knob('GUIFarmEnabled')) nuke.selectedNode().knob('knobName2').setValue(knobName) nuke.selectedNode().knob('knobName2').setEnabled(False) nuke.selectedNode().knob(knobName).setExpression('$gui?gui:farm') nuke.selectedNode().knob('enableThis').setValue(enableThis) nuke.selectedNode().knob('disableThis').setValue(disableThis) nuke.selectedNode().knob('disableAll').setValue(disableAll) nuke.selectedNode().knob('enableAll').setValue(enableAll) nuke.selectedNode().knob('GUIFarmEnabled').setValue(True) nuke.selectedNode().knob('GUIFarmEnabled').setVisible(False) def previewOn(): for i in nuke.allNodes(): for k in i.knobs(): if i.knob(k).name() == "knobName2" and i.knob("GUIFarmEnabled").value() == True: knobName = i.knob("knobName2").value() i.knob(knobName).setExpression("farm") def previewOff(): for i in nuke.allNodes(): for k in i.knobs(): if i.knob(k).name() == "knobName2" and i.knob("GUIFarmEnabled").value() == True: knobName = i.knob("knobName2").value() i.knob(knobName).setExpression("$gui?gui:farm")