Hi

This (with some refinement) should do what I want

vues=[]
views=len(nuke.views())
n=nuke.selectedNode()
for v in range (views+1):
    vu=n['translate'].animations(v)[0].view()
    vues.append(vu)
print vues

this returns
# Result: [None, 'le', 're'] 
when all split and

# Result: [None, 'le', None]
when only one split 

and 
# Result: [None, None, None]
if no splits

so I can count the non None values and add 1 to get the amount of split knobs

ie
numViews=1
for i in vues:
    if i:
        numViews+=1
print numViews

so for all split
# Result: [None, 'le', 're']
3
 so I know to loop through 3 times (as default is always first and I do need to 
copy it)

Thanks again

Howard

Twenty4D VFX Ltd
www.twenty4d.com





________________________________
From: Howard Jones <[email protected]>
To: Nuke Python discussion <[email protected]>
Sent: Thu, 31 March, 2011 8:21:29
Subject: Re: [Nuke-python] more views than actual views


Thanks again. 

In this case animated only knobs are all I need but thanks for both methods. 
Puts my python to shame!

Howard

On 31 Mar 2011, at 07:34, Nathan Rusch <[email protected]> wrote:


True, that works if your knob is animated...
> 
>What happens when it’s split but just set to static values? Or a mixture of  
>static and animated components?
> 
>-Nathan
>
> 
>From: Nathan Dunsworth 
>Sent: Wednesday, March 30, 2011 3:27 PM
>To: Nuke Python discussion 
>Cc: Nathan Rusch 
>Subject: Re: [Nuke-python] more views than actual  views
>  No  need to parse Knob::toScript.  Just iterator over the knobs Animation  
>objects. 
>
> 
>for v in nuke.views():
>    print theKnob.animations(view=v)[0].view()
> 
>On Wed, Mar 30, 2011 at 3:00 PM, Nathan Rusch <[email protected]> wrote:
>
>I recently posted a little info in this vein on VFXNation 
>(http://www.vfxnation.com/showthread.php/252-Multiview-setExpression%28%29?p=2196#post2196),
>    as I found myself dealing with a similar case recently.
>> 
>>Basically the only reliable way to deal with split knobs (to my    knowledge) 
>>for the time being is to parse the knob’s .toScript() string. The    code I 
>>wrote is for seeing if a given node name is present in any expression    
>>links 
>>on a knob, and if so, at which indices and views. Needless to say, it    gets 
>>pretty indented 
>>
.
>> 
>>The rough code to check how many view curves exist for a knob is    something 
>>like this:
>> 
>>------------------------------------------
>># Assumes the knob in question is assigned to    ‘knob’
>>import re
>>fullViewsString = r’default\s\{|’ + ‘|’.join([r‘%s\s\{’    % v for v in 
>>nuke.views()])
>>viewsRE = re.compile(‘(%s)’ %    fullViewsString)
>>knobViews = [match.rstrip(‘ {‘) for match in    
>>viewsRE.findall(knob.toScript())]
>>------------------------------------------
>> 
>>‘knobViews’ will be a nice list of all the view curves    that exist on that 
>>knob. Just ignore the ‘default’ and you’ve got all the    split views.
>> 
>>Hope this helps.
>> 
>>-Nathan
>>
>> 
>>From: Howard Jones 
>>Sent: Wednesday, March 30, 2011 2:33 PM
>>To: Nuke Python    discussion 
>>Subject: Re: [Nuke-python] more views than actual    views
>>  
>>Thanks    Nathan (and other Nathan)
>>
>>One of the other things that is odd is that    if you unsplit right it 
>>changes 
>>to default rather than take the right's values    which is counter intuitive.
>>I guess the question is if any body bothers    splitting to this level. I'm 
>>coding for it but it means things running more    often to catch it.
>>
>>Is there a way of checking if a knob has been split    and to how far?
>>
>>
>>H
>> 
>> 
>>
________________________________
 From: Nathan Rusch <[email protected]>
>>To: Nuke Python discussion <[email protected]>
>>Sent: Wed, 30 March, 2011    16:42:41
>>Subject: Re:    [Nuke-python] more views than actual views
>>
>>
>>Nuke always keeps a ‘default’ knob curve around when you start splitting    
>>knobs. So if you split off your ‘left’ view, you’re creating curves for 
>>‘left’    
>>and ‘default,’ which, as you can imagine, everything else falls through to.   
>> 
>>Once you split off ‘right,’ you’re up to 3 curves.
>> 
>>Why they let you split a knob into more components than there are views    in 
>>your script is a great question... I imagine there was a reason for it when   
>> 
>>they designed it that way, but I have no idea if that reason is still valid 
>>or    
>>applicable.
>> 
>>-Nathan
>>
>> 
>>From: Howard    Jones 
>>Sent: Wednesday, March 30, 2011 12:56 AM
>>To: Nuke Python discussion 
>>Subject: [Nuke-python] more views than actual    views
>>  Dear    All.
>>
>>Does anybody know why it is possible to end up with more curves    per view 
>>than 
>>there are views?
>>
>>That is create a stereo    project
>>
>>split off a knob to left right,
>>you get 2 curves, knobs    etc
>>
>>knob.le 
>>knob
>>
>>split it again and you get
>>knob.le 
>>knob.re
>>knob.*
>>
>>the    last one is an extra knob beyond the amount of views you have.
>>
>>I can    understand from a code pov why when you split knobs in the first 
>>place 
>>you get 
>>
>>knob.le 
>>knob
>>  and not 
>>knob.le 
>>knob.re
>>
>>but I cant understand    the need for the extra view.
>>
>>Is this a bug or clever    behaviour.
>>
>>It means btw if you want to know how many views are in a    project you have 
>>to 
>>add 1 to the result.
>>ie len(nuke.views()) is    potentially 1 short unless its safe to ignore the 
>>extra    one.
>>
>>Howard
>>
>>
________________________________
 _______________________________________________
>>Nuke-python mailing    list
>>[email protected]
>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
________________________________
 _______________________________________________
>>Nuke-python mailing    list
>>[email protected]
>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>_______________________________________________
>>Nuke-python    mailing list
>>[email protected]
>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>
> 
_______________________________________________
>Nuke-python mailing list
>[email protected]
>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
_______________________________________________
Nuke-python mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to