我仍然相对较新的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默认值。正如在我的工作流程中,我发现更容易告诉它我希望保留哪些频道。
答案 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