Yea, that is sweet. If you have any groups on the target tab it will mess things up though since they're also classed as Tab_Knobs and will be the next one found. In that case maybe you could specify a target stop tab as well.
On 27 January 2016 at 01:57, Igor Majdandzic <subscripti...@badgerfx.com> wrote: > Nice one Ben. > > Am 27.01.2016 7:02 vorm. schrieb Ben Dickson <ben.dick...@rsp.com.au>: > > > > You can get knobs in order by using the nuke.Node.knob(n) and the number > > of knobs via nuke.Node.numKnobs > > > > Meaning you can iterate over the knobs, start removing knobs when you > > get to the target tab, and stop at the next Tab_Knob: > > > > > > def remove_user_knobs(node): > > in_user_tab = False > > to_remove = [] > > for n in range(node.numKnobs()): > > cur_knob = node.knob(n) > > is_tab = isinstance(cur_knob, nuke.Tab_Knob) > > > > # Track is-in-tab state > > if is_tab and cur_knob.name() == "User": # Tab name to remove > > in_user_tab = True > > elif is_tab and in_user_tab: > > in_user_tab = False > > > > # Collect up knobs to remove later > > if in_user_tab: > > to_remove.append(cur_knob) > > > > # Remove in reverse order so tab is empty before removing Tab_Knob > > for k in reversed(to_remove): > > node.removeKnob(k) > > > > # Select first tab > > node.knob(0).setFlag(0) > > > > > > remove_user_knobs(nuke.selectedNode()) > > > > On 23/01/16 04:32, Daniel Stein wrote: > > > I think Igor's suggestion would be the easiest workaround to implement > > > moving forward. If you haven't already stored that information another > > > option is get the output of node.writeKnobs with the > > > nuke.WRITE_USER_KNOB_DEFS flag and parse it to find the tab knobs and > > > the knobs nested inside them. > > > > > > Super dirty and would only work for user knobs but it would do the > trick. > > > > > > On 22 January 2016 at 10:53, Igor Majdandzic < > subscripti...@badgerfx.com > > > <mailto:subscripti...@badgerfx.com>> wrote: > > > > > > nope, thats what he meant. He has to kill all the knobs on the tab > > > before he can remove the tab itself > > > > > > > > > Am 22.01.2016 um 17:46 schrieb Fredrik Averpil: > > >> Not in front of a machine at the moment but... > > >> > > >> Does this work? > > >> nuke.removeKnob( myknob ) > > >> > > >> // Fredrik > > >> > > >> > > >> On Fri, Jan 22, 2016 at 12:20 PM Igor Majdandzic > > >> <subscripti...@badgerfx.com <mailto:subscripti...@badgerfx.com>> > > >> wrote: > > >> > > >> Hey Abraham, > > >> I dont know if there is a nice fast fancy way of doing this. > > >> But you could store a directory in a hidden knob, key could be > > >> the tab and knobs are the values. > > >> Work around I know, but it should do the trick. > > >> > > >> Cheers > > >> > > >> Igor > > >> > > >> > > >> Am 21.01.2016 um 12:59 schrieb Schneider, Abraham: > > >>> Hi there! > > >>> > > >>> I have some user knobs in my root node, that I want to get > > >>> rid of. It's a 'tab_knob' at the root level (let's call it > > >>> 'testtab'), that contains several different knobs (strings, > > >>> etc.). Now I want to delete all the knobs inside this tab > > >>> knob and the tab knob itself. > > >>> > > >>> I can get to the tab knob via "myknob = > > >>> nuke.Root().knob('testtab')" and I can remove knobs like > > >>> this: "nuke.Root().removeKnob(myknob)". This should work, if > > >>> the tab is empty. But because the tab contains other knobs, > > >>> it won't be deleted, as the removeKnob doesn't delete knobs > > >>> recursively. > > >>> > > >>> So how would I find all the knobs of nuke.Root() that belong > > >>> to my tab knob, so that I can delete them first before > > >>> deleting the tab knob itself? > > >>> > > >>> Or is there an even better way to remove the tab and all the > > >>> related knobs quickly? > > >>> > > >>> Thanks, Abraham > > >>> > > >>> > > >>> > > >>> *Abraham Schneider* > > >>> Head of VFX pipeline / VFX Supervisor > > >>> > > >>> > > >>> > > >>> ARRI Media GmbH > > >>> Türkenstr. 89, 80799 München > > >>> Phone +49 89 3809-1096 <tel:%2B49%2089%203809-1096> > > >>> > > >>> EMail aschnei...@arri.de <mailto:aschnei...@arri.de> > > >>> www.arri.de/arrimedia <http://www.arri.de/arrimedia> > > >>> > > >>> <http://www.facebook.com/arrimedia> Click here > > >>> <http://www.facebook.com/arrimedia> to visit us on Facebook! > > >>> > > >>> > > >>> > > >>> _______________________________________________ > > >>> Nuke-python mailing list > > >>> Nuke-python@support.thefoundry.co.uk <mailto: > Nuke-python@support.thefoundry.co.uk>,http://forums.thefoundry.co.uk/ > > >>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > >> > > >> _______________________________________________ > > >> Nuke-python mailing list > > >> Nuke-python@support.thefoundry.co.uk > > >> <mailto:Nuke-python@support.thefoundry.co.uk>, > > >> <http://forums.thefoundry.co.uk/> > http://forums.thefoundry.co.uk/ > > >> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > >> > > >> > > >> > > >> _______________________________________________ > > >> Nuke-python mailing list > > >> Nuke-python@support.thefoundry.co.uk <mailto: > Nuke-python@support.thefoundry.co.uk>,http://forums.thefoundry.co.uk/ > > >> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > > -- > > > > > > CHIMNEY > > > > > > *Igor Majdandzic* > > > Compositing Supervisor > > > > > > __CHIMNEY Deutschland GmbH & Co. KG__ > > > __Hanauer Landstraße 196__ > > > 60314 Frankfurt am Main > > > __Direct: +49 69 989 56 431 <tel:%2B49%2069%20989%2056%20431> > -*NEW > > > PHONE NUMBER*- __ > > > __Fax: +49__ 69 904 36 68 29 > > > __Mobile: +49 176 321 375 72 <tel:%2B49%20176%20321%20375%2072>__ > > > __Berlin, Frankfurt/Main, Stockholm, Malmö, ____Warsaw, Copenhagen, > > > Sydney, Singapore__ > > > > > > www.chimneygroup.com <http://www.chimneygroup.com/> > > > > > > > > > __AG Charlottenburg HRA 44507 B; Pers. haft. Gesellschafter: > Chimney > > > Deutschland GmbH__ > > > __AG Charlottenburg HRB 130013 B; Geschäftsführer: ____Ralf > > > Drechsler, __Michal Kalinowski,Carl Henric Larsson > > > > > > > > > _______________________________________________ > > > Nuke-python mailing list > > > Nuke-python@support.thefoundry.co.uk > > > <mailto:Nuke-python@support.thefoundry.co.uk>, > > > http://forums.thefoundry.co.uk/ > > > > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > > > > > > > > > > > _______________________________________________ > > > Nuke-python mailing list > > > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > > > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > > > -- > > ben dickson > > 2D TD | ben.dick...@rsp.com.au > > rising sun pictures | www.rsp.com.au > > _______________________________________________ > > Nuke-python mailing list > > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >
_______________________________________________ Nuke-python mailing list Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python