I'll add some context: - everything lives in the same plugin - I tried storing it in a container coming from an imported module - tried accessing and setting the global variable directly in the globals() dictionary - Grumble Gumble.
2012/5/11 Alok Gandhi <[email protected]> > Yes if PPG is not getting refreshed then this seems weird. The only thing > that comes to mind is maybe the custom command execution is making things > go wrong. What if you use a function declared inside the plugin instead of > calling the custom command ? or maybe the custom command should be > implemented in the same plugin as the PPG, this does not make sense but is > worth a try. > > > On Fri, May 11, 2012 at 9:24 PM, Xavier Lapointe <[email protected] > > wrote: > >> Hm, yes I could store it in a parameter or another way ... just this >> feels hacky to get something basic done (granted no refresh happend during >> the plugin execution). >> >> This should work, like Matt mentioned :/ >> >> Oh well. >> >> >> >> >> 2012/5/11 Alok Gandhi <[email protected]> >> >>> I am not sure whether this works under windows as well, the plugin >>> script can get refreshed and all your global variables will be >>> re-initialized. The only good approaches that I have been using is to store >>> the varaibles in UIITems lists. This works well for the 3D com objects as >>> well. Another idea would be to pass on objects returning through a safe >>> array from the commands itself. >>> >>> >>> On Fri, May 11, 2012 at 9:13 PM, Xavier Lapointe < >>> [email protected]> wrote: >>> >>>> >>>> hit another PPG UI Item *** >>>> >>>> ... All happening under the same Property page. >>>> >>>> 2012/5/11 Xavier Lapointe <[email protected]> >>>> >>>>> Hey guys, >>>>> >>>>> This one really surprised me. I tend to avoid global variable in >>>>> Softimage plugins as much as I can, but sometimes it might be convenient. >>>>> >>>>> So basically, I wanted to use a global variable ( simple Python >>>>> Dictionary ) to keep some stuff in reference while interacting with a PPG. >>>>> I remember clearly that it was working well under Windows, so >>>>> I assume this is a python 2.5 Linux issue (if this is an issue - >>>>> please tell me if this is normal under Soft with python 2.5). >>>>> >>>>> Here's basically what I was trying to do: >>>>> >>>>> [imports ....] >>>>>> >>>>>> # Global Scope >>>>> >>>>>> LAST_SELECTION = { >>>>>> 'project': {}, >>>>>> 'category': '', >>>>>> 'entities': [], >>>>>> } >>>>>> >>>>>> def CustomCommand_Execute(): >>>>>> global LAST_SELECTION >>>>>> [Do some modifications to LAST_SELECTION] >>>>>> >>>>> >>>>> >>>>> Following this pattern: >>>>> >>>>> - Prompt the PPG >>>>> - Interact with the UI >>>>> - The custom command is fired - do some modifications to >>>>> LAST_SELECTION >>>>> - hit another PPG UI >>>>> - Hell the LAST_SELECTION global is back to the inital value! >>>>> >>>>> I've been tracing the LAST_SELECTION variable with id(), and it's >>>>> changing every time I interact with the UI; showing clearly that there is >>>>> something nasty going on under the hood (?) >>>>> >>>>> Any idea to get this working? >>>>> >>>>> Alan mentioned the >>>>> Application.SetGlobal/Application.GetGlobal functions ... but still, this >>>>> should be working natively, isn't? >>>>> >>>>> Thanks! >>>>> >>>>> -- >>>>> Xavier >>>>> >>>> >>>> >>>> >>>> -- >>>> Xavier >>>> >>> >>> >>> >>> -- >>> >>> >> >> >> -- >> Xavier >> > > > > -- > > -- Xavier

