I don't know of a one-call way of doing this, but I may have missed an
addition somewhere. However, is there a reason you can't just create a new
version of the node and swap it for the existing one?
If you can't, a couple options might be:
1) Loop through and manually unsplit all views, clear animation, and set to
defaultValue() on all knobs, using hasattr calls to avoid AttributeErrors.
Some knobs could be somewhat trickier (ChannelMask knobs, for example), but
you may also just know what those are supposed to be and hard-code that into
your script.
2) Use <node>.writeKnobs() to dump your default values and then .readKnobs()
to restore them. This will remove any expressions, but you'll still have to
unsplit any knob views manually (fairly trivial using hasattr).
3) If you know what knobs could be changed (and which ones you explicitly
want to restore), you could store all their .toScript() values somewhere
persistent as a dictionary of name:toScript() (maybe serialize it and store
it on the node in a hidden text knob or something), and then just load from
that every time. Storing it on the node keeps things self-contained, and
prevents your startup script from having to hit a disk any more than is
necessary, but something like DB or file storage would work as well.
4) Create a fresh version of the node, but instead of swapping it out, get a
list of all the knobs on your current node that aren't default
(nuke.tcl('knobs -d nodeName') can still come in handy for this), use those
.toScript values from the fresh node on your existing node, and clean up the
new one.
Anyway, just some early morning brainstorming. Hope some of this is useful.
-Nathan
-----Original Message-----
From: John RA Benson
Sent: Friday, August 05, 2011 12:48 AM
To: Nuke Python discussion
Subject: [Nuke-python] setting all knobs on a node to default state
Hey there -
I must've missed something simple - isn't there a command to reset all knobs
of a node to a default state? Get rid of splits, animation, expressions etc
all in one go? Like from the gui, selecting "Set knobs to default"? I need
to reset a node when I 'reload' it so things don't get messy.
thanks
jrab_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python