Great ! this is quiet clear now. One last thing about tcl, what is the correct syntax for testing a condition like: if bool is True: then dothis else dothat
Thanks a lot Frank ! 2011/3/8 Frank Rueter <[email protected]> > Just remember that everything in tcl is basically a string (I guess you > could argue about that, but it's a helpful notion I found). > White spaces delimit arguments and square brackets indicate a nested tcl > command. double quotes are used to explicitly define a string allowing > substitution, while curly braces won't allow substitution. > > so: > puts hello > works as well as: > > puts "hello" > or > puts {hello} > > this will throw an error as it interprets "world" as a second argument to > the puts command (which is expected to be a IO channel: > puts hello world > so out come the quotes: > puts "hello world" > or braces: > puts {hello world} > > to see the difference between quotes and braces: > puts "the current frame is [frame]" > where [frame] is a nested tcl command, and because it's inside of double > quotes, it will be evaluated: > --> the current frame is 1 > > with braces the nested command is not evaluated: > puts {the current frame is [frame]} > --> the current frame is [frame] > > so when you put python syntax into a label, you essentially run a tcl > command called "python" followed by n argument which is the python syntax. > And if that syntax contains stuff like square brackets, tcl might try and > evaluate it as a nested command. And that's where braces come to the rescue > to make sure tcl doesn't try to mess with the python syntax. > > > > > > On Mar 9, 2011, at 7:58 AM, Nathan Rusch wrote: > > It’s good practice to do it all the time, just to help make things > clearer and avoid the potential for pesky errors. > > -Nathan > > > *From:* Michael Havart <[email protected]> > *Sent:* Tuesday, March 08, 2011 10:24 AM > *To:* Nuke Python discussion <[email protected]> > *Subject:* Re: [Nuke-python] knob syntax > > Ok that's clever, thanks > When exactly you need to put the curly braces ? maybe it can improve my > autolabel callbacks... > > thanks, > Michael > > 2011/3/8 Ean Carr <[email protected]> > >> That's because you're confusing the tcl interpreter. Try curly braces. >> >> [python {nuke.thisNode()["size"].value()}] >> >> -E >> >> >> On Tue, Mar 8, 2011 at 2:45 PM, Michael Havart >> <[email protected]>wrote: >> >>> and also, in autolabel or expressions this will not work: >>> >>> >>> [python nuke.thisNode()["size"].getValue()] >>> >>> >>> but this will work: >>> >>> >>> [python nuke.thisNode().knob("size").getValue()] >>> >>> >>> >>> >>> >>> >>> 2011/3/8 Alexander Jones <[email protected]> >>> >>> >>>> >>>> On 8 March 2011 06:19, Ben Dickson <[email protected]> wrote: >>>> >>>>> node['blah'].value() >>>>> >>>>> ..is less typing, so I use that over the functionally identical >>>>> node.knob("blah").value() >>>>> >>>> >>>> They're not identical -- ["blah"] will raise a KeyError for a missing >>>> knob, whereas knob("blah") will return None. Subtle! >>>> >>>> >>>>> >>>>> I use node.knobs() occasionally to iterate over all knobs (or use >>>>> node.knobs().keys() ) >>>>> >>>> >>>>> Incidentally I use [''] over [""], because the first can be typed >>>>> without shift (on UK/Australian keyboards anyway) - same with ("") >>>>> which >>>>> can be typed with shift held. Efficiency!... >>>>> >>>> >>>>> John RA Benson wrote: >>>>> > Hey there - >>>>> > >>>>> > Basic question: >>>>> > >>>>> > just curious - if find myself flipping between using syntax like: >>>>> > >>>>> > node.knob('myknob').value() >>>>> > vs: >>>>> > node['myknob'].value() >>>>> > >>>>> > Is there any 'best practices' or preferred way to write that? Sort of >>>>> like, do you always use '"' or "'" for quotes... >>>>> > >>>>> > Cheers >>>>> > JRAB_______________________________________________ >>>>> > Nuke-python mailing list >>>>> > [email protected] >>>>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>>>> > >>>>> >>>>> -- >>>>> ben dickson >>>>> 2D TD | [email protected] >>>>> rising sun pictures | www.rsp.com.au >>>>> >>>>> _______________________________________________ >>>>> Nuke-python mailing list >>>>> [email protected] >>>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>>>> >>>> >>>> >>>> >>>> -- >>>> Alexander Jones >>>> Double Negative R&D >>>> www.dneg.com >>>> >>>> >>>> _______________________________________________ >>>> Nuke-python mailing list >>>> [email protected] >>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>>> >>>> >>> >>> >>> -- >>> Michael Havart | DMP-ENV | MPC-London >>> images: cghub.com <http://mika.cghub.com/> | >>> blogspot.com<http://michaelhavartportfolio.blogspot.com/> >>> cv: linkedin profile <http://www.linkedin.com/in/michael0havart> | >>> imdb<http://www.imdb.com/name/nm3795968/> >>> >>> >>> _______________________________________________ >>> 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 > >
_______________________________________________ Nuke-python mailing list [email protected] http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
