基本上,我现在想做的是使用python在Nuke中设置一个脚本,该脚本获取用户选择的节点,并为它们添加随机节点,以实现简单的合成工作流程。然而,我坚持让Nuke将洗牌添加到选定的节点上。它在选定时适用于1个节点,但如果选定多个节点,则仅适用于选定的第一个节点。我问了一个朋友这件事,她说可以试试while循环,代码如下:
while True:
if n in nuke.selectedNodes():
name = n.name()
node = nuke.toNode(name)
blue.setInput(0,node)
green.setInput(0,node)
red.setInput(0,node)
except StopIteration :
break这一切都工作得很好,直到例外部分。我在没有异常的情况下运行了脚本,它冻结了Nuke,这表明它正在无限运行,但我需要它停止。Nuke告诉我except是一个无效的语法。有谁知道我如何解决这个问题,或者为我正在尝试的过程创建一个更好的解决方案?
发布于 2013-03-06 09:32:54
也许你应该考虑你在做什么,而不是仅仅在问题上抛出语法,然后希望它会消失。如果没有try块,except就没有意义,而且您也不会将其赋值给n anywhere。大概你的意思是这样的:
for n in nuke.selectedNodes():
name = n.name()
node = nuke.toNode(name)
blue.setInput(0,node)
green.setInput(0,node)
red.setInput(0,node)如果你使用像这样的迭代器,就不需要捕获StopIteration。
发布于 2013-03-06 07:48:06
捕获名称为<exception_name>的异常的正确语法为:
try:
#code here...
except <exception_name>:
#code here...编辑:
它看起来你的代码还有其他问题...
https://stackoverflow.com/questions/15236316
复制相似问题