[Sidefx-houdini-list] Python expression in string field parameter

Pablo Giménez pablogipi at gmail.com
Tue Jan 18 12:48:51 EST 2011


2011/1/18 Graham Thompson <captainhammy at gmail.com>:
> Python expressions can be a little different sometimes.  For strings
> you don't have to wrap them in `` and if it's more than one line you
> have to return from them.  Also, in your case since you are trying to
> use a module you'll have to import it in the actual parameter as it
> doesn't directly share the global namespace or import the global
> namespace into the parameter.
>
> To set a string parameter expression for example I would set the node
> to Python, LMB on the label of the parameter to toggle it, then RMB
> and Edit Expression.  In the dialog I'd then enter something like
> this:
Thanks Graham.
To make it working I actually need to create a keyframe to make the
channel animated and then the usual expression/value toggle works.
Problem for me  is that I need it to happen automatically because the
default value for the parameter is the expression I am doing.
So I guess I need to script the needed step in the creation event of the otl.
>
> import myModule
> return myModule.getFilePath(args)
>
> or for a single line expression:
>
> __import("myModule")__.getFilePath(args)
This is nice I didn't know you can actually do it.
>
> or if you have somehow imported myModule through say python.rc or
> 123.py or 456.py or some other method:
>
> import __main__
> return __main__.myModule.getFilePath(args)
>
>
> 2011/1/18 Pablo Giménez <pablogipi at gmail.com>:
>> Hi all.
>> I have a string filed parameter,a file parameter to be exact, and I
>> want o to use a python function to use information from other
>> parameters to conform a file path.
>> I have my function in myModule.getFilePath, and I have tried to call
>> to it using this form of python expression:
>> `myModule.getfilePath(chs('loc'), chs('type'), chs('subtype'),
>> chs('element'), chs('ver'))`
>> My guess is that this parameter will be recognized automatically as a
>> python expression, but not sure if the systav I am using is correct or
>> not.
>> Because I got just an empty string I decided to wrap my python
>> expression into a hscript expression like:
>> `pythonexprs(myModule(chs('loc'), chs('type'), chs('subtype'),
>> chs('element'), chs('ver')))`
>> But again I got nothing.
>> For testing my python function just do this:
>> def getDataOutLocation(location, type, subtype, element, ver):
>>   return "Hello World"
>>
>> Is the first time I try to use python expressions in parameters so I
>> guess I am missing something here.
>> Any advice?
>> Thanks
>>
>> --
>> Un saludo
>> Best Regards
>> Pablo Giménez
>> _______________________________________________
>> Sidefx-houdini-list mailing list
>> Sidefx-houdini-list at sidefx.com
>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>>
> _______________________________________________
> Sidefx-houdini-list mailing list
> Sidefx-houdini-list at sidefx.com
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>



-- 
Un saludo
Best Regards
Pablo Giménez



More information about the Sidefx-houdini-list mailing list