使用python设置nuke中下拉菜单的默认值

时间:2018-01-10 06:42:33

标签: python nuke

我仍然相对较新的python,我一直在尝试写一些简单的东西,为我的工作风格做核心覆盖。其中一个是删除节点。

import nuke

def removeOverride():
    nuke.thisNode()["operation"].setValue("keep")
    nuke.thisNode()["channels"].setValue("rgb")
##Adds end lined commands to run when node is created by the user.

nuke.addOnUserCreate(removeOverride, nodeClass = "remove")

以上代码是我尝试更改操作旋钮中的值而不是删除nuke默认值。正如在我的工作流程中,我发现更容易告诉它我希望保留哪些频道。

2 个答案:

答案 0 :(得分:1)

尝试以下方法。将此代码用于具有特定名称的节点:

def removeOverride():
    nuke.toNode("Remove1")['operation'].setValue('keep')
    nuke.toNode("Remove1")['channels'].setValue('rgb')

nuke.addOnUserCreate(removeOverride(), nodeClass='Remove') 

# use UpperCamelCasing for any class name ('Blur','Read','Remove')

对于创建的任何后续节点,请使用以下代码:

def removeOverride():
    for node in nuke.allNodes():
        if node.Class() == "Remove":
            node["operation"].setValue("keep")
            node["channels"].setValue("rgb")

removeOverride()
# OR
nuke.addOnUserCreate(removeOverride(), nodeClass='Remove')

使用nuke.selectedNodes()nuke.thisNode()方法的最后一个配置适用于DAG中的选定节点:

def removeOverride():

    thisNode = nuke.thisNode()
    rootDAG = nuke.root()

    with rootDAG:
        allNodesSelected = nuke.selectedNodes()
    try:
        allNodesSelected.remove(thisNode)
    except:
        pass

    for node in allNodesSelected:
        node["operation"].setValue("keep")
        node["channels"].setValue("rgb")

    return allNodesSelected

nuke.addOnUserCreate(removeOverride(), nodeClass='Remove') 

答案 1 :(得分:0)

我认为您可能需要考虑使用旋钮默认值而不是回调。

tfsconfig accounts /updatepassword /account:[account name] /password:[password](或init.py,如果您只想将其应用于在GUI会话中创建的新节点):

menu.py