One last thing, I checked one plugin where this works, of course in
windows, but in my code I do not use 'global ' keyword when accesing the
global dict. Something like this:
globalDict = {}

def _setGlobalDict(inObj=None, meshData=None):
    if inObj:
        globalDict['obj'] = inObj # no use of 'global' here.

    if meshData:
        globalDict['data'] = meshData

    return True

and then I call _setGlobalDict() wherever I need to.

On Fri, May 11, 2012 at 9:37 PM, Xavier Lapointe
<[email protected]>wrote:

> 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
>



--

Reply via email to