[Paraview] help with a simple script?
Celia Bremer
fuwsle at hotmail.com
Wed Nov 21 09:38:32 EST 2012
Paraview crashes while executing the loop. I tried it on two computers multiple times.
----------------------------------------
> Subject: Re: [Paraview] help with a simple script?
> From: sebastien.jourdain at kitware.com
> Date: Wed, 21 Nov 2012 08:33:40 -0500
> To: fuwsle at hotmail.com
>
> The loop that i made should get rid of all the tab. None should remain.
>
> On Nov 20, 2012, at 23:08, Celia Bremer <fuwsle at hotmail.com> wrote:
>
>>
>> Seb,
>>
>> Sorry about that. It works meaning the first tab gets closed, but then when I try to load the next state, it crashes - but only if I load the next state from the shell. If I load the next state from the GUI, everything's fine.
>>
>> servermanager.LoadState("empty.pvsm")
>> OldestLayout=GetLayouts().keys()[1]
>> servermanager.ProxyManager().UnRegisterProxy("layouts", OldestLayout[0], GetLayouts()[OldestLayout])
>> del OldestLayout
>>
>> At this point, everything looks great: there's only one tab and it has nothing in it except the purple background. But then when I do servermanager.LoadState("empty.pvsm"), a new tab opens, but this time, it's the *new* tab that splits into two like in the screenshot I sent last week. Then the empty (black) OpenGL window comes up, and Windows says "paraview.exe stopped working". (If, however, I load empty.pvsm from the GUI, everything's dandy. Also, if I don't get rid of the first layout window, I can load another state file.)
>>
>> Is there some alternative method? I tried this:
>>
>>>>> servermanager.ProxyManager().UnRegisterProxies()
>>>>> servermanager.misc.ViewLayout(registrationGroup="layouts")
>> <paraview.servermanager.ViewLayout object at 0x00000000134016A0>
>>
>> But then when I load the state (even from the GUI), it crashes. Is it because I didn't create a view (3D, etc), and if so, how would I do that? Or maybe there's other stuff that needs to get re-created?
>>
>> Celia
>>
>> ________________________________
>>> Date: Tue, 20 Nov 2012 19:05:00 -0500
>>> Subject: Re: [Paraview] help with a simple script?
>>> From: sebastien.jourdain at kitware.com
>>> To: fuwsle at hotmail.com
>>>
>>> Well "for layout in GetLayouts():" is not the same as GetLayouts()[..]
>>>
>>>
>>> On Tue, Nov 20, 2012 at 5:11 PM, Celia Bremer
>>> <fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>> wrote:
>>>
>>> Seb,
>>>
>>> I didn't even notice that. I tried it again, and this time, there's an
>>> object, but the end result is the same.
>>>
>>>>>> paraview version 3.14.1, Date: 2012-02-17
>>> from paraview.simple import *
>>>>>> servermanager.LoadState("empty.pvsm")
>>>>>> GetLayouts()
>>> {('ViewLayout1', '2178'): <paraview.servermanager.ViewLayout object at
>>> 0x00000000103938D0>, ('ViewLayout1', '275'):
>>> <paraview.servermanager.ViewLayout object at 0x0000000010EE2668>}
>>>>>> layouts=GetLayouts()
>>>>>> print layouts
>>> {('ViewLayout1', '2178'): <paraview.servermanager.ViewLayout object at
>>> 0x00000000103938D0>, ('ViewLayout1', '275'):
>>> <paraview.servermanager.ViewLayout object at 0x0000000010EE2668>}
>>>>>> layout=layouts[0]
>>> Traceback (most recent call last):
>>> File "<console>", line 1, in <module>
>>> KeyError: 0
>>>
>>> And the same problem when I do it with a script with the for loop,
>>> "TypeError: 'ViewLayout' object does not support indexing".
>>>
>>> Whether this is or isn't a real issue, I suppose you're talking about
>>> the extra layout tab that opens when I load a state? Does this mean
>>> that you can't replicate it? I tried it on another machine (it = making
>>> an empty state file on that machine and then loading it from the shell)
>>> and I got exactly the same behavior, the same extra tab and all.
>>>
>>> Celia
>>>
>>> ________________________________
>>>> Date: Tue, 20 Nov 2012 14:47:19 -0500
>>>> Subject: Re: [Paraview] help with a simple script?
>>>> From: sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com>
>>>> To: fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>
>>>> CC: dave.demarle at kitware.com<mailto:dave.demarle at kitware.com>;
>>> paraview at paraview.org<mailto:paraview at paraview.org>
>>>>
>>>> Hi Celia,
>>>>
>>>> The weird thing is that you don't have any object in your layout.
>>>>
>>>> {('ViewLayout1', '2178'):>>>HERE<<< , ('ViewLayout1', '275'):>>>HERE<<< }
>>>>
>>>> This create the issue that you are seeing. Although, what you/we try to
>>>> solve might not be the real issue.
>>>> So I don't really know what is going on when you load your state on
>>>> your machine.
>>>>
>>>> Seb
>>>>
>>>>
>>>> On Tue, Nov 20, 2012 at 1:25 PM, Celia Bremer
>>> <fuwsle at hotmail.com<mailto:fuwsle at hotmail.com><mailto:fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>>>
>>> wrote:
>>>>
>>>>
>>>> Seb,
>>>> Thank you. I'm still having problems. Here's what happens.
>>>> If I tack this code on to the end of my script (I didn't make it a
>>>> function, so just the last 3 lines with the proper indentation),
>>>> Paraview crashes once it gets to the code. An OpenGL window pops up and
>>>> nothing's there (it's black), and then Windows says "paraview.exe
>>>> stopped working".
>>>> In the shell - well, I don't actually get to that point in the shell
>>>> because I can't get to the first (or second, etc) layout in the array
>>>> from GetLayouts() this way.
>>>>>>> paraview version 3.14.1, Date: 2012-02-17
>>>> from paraview.simple import *
>>>>>>> servermanager.LoadState("empty.pvsm")
>>>>>>> layouts=GetLayouts()
>>>>>>> print layouts
>>>> {('ViewLayout1', '2178'): , ('ViewLayout1', '275'): }
>>>>>>> layout=layouts[0]
>>>> Traceback (most recent call last):
>>>> File "", line 1, in
>>>> KeyError: 0
>>>> So I thought maybe it should be GetLayouts.Values() since that can be
>>>> indexed (I tried it in the shell). I changed the script to read "for
>>>> layout in GetLayouts().values():". PV didn't crash but I got
>>>> "TypeError: 'ViewLayout' object does not support indexing". This has to
>>>> do with the arguments to UnRegisterProxy() - but I don't know what to
>>>> do next because I don't know how to read the documentation at this
>>>> point. (And I don't know what to google, so if anyone has
>>>> suggestions...?) E.g. it says the syntax is UnRegisterProxy(self,
>>>> groupname, proxyname, aProxy), but there are only 3 arguments here -
>>>> pxm.UnRegisterProxy("layouts", layout[0], GetLayouts()[layout]). I also
>>>> tried Delete(layout) but I got unregistration error.
>>>> Celia
>>>> ________________________________
>>>>> Date: Mon, 19 Nov 2012 13:37:28 -0500
>>>>> Subject: Re: [Paraview] help with a simple script?
>>>>> From:
>>> sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com><mailto:sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com>>
>>>>> To:
>>> fuwsle at hotmail.com<mailto:fuwsle at hotmail.com><mailto:fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>>
>>>>> CC:
>>> dave.demarle at kitware.com<mailto:dave.demarle at kitware.com><mailto:dave.demarle at kitware.com<mailto:dave.demarle at kitware.com>>;
>>> paraview at paraview.org<mailto:paraview at paraview.org><mailto:paraview at paraview.org<mailto:paraview at paraview.org>>
>>>>>
>>>>> Hi Celia,
>>>>>
>>>>> I think you found a bug, but I think I have something for you.
>>>>> The following method should clear the view/layouts.
>>>>>
>>>>> Seb
>>>>>
>>>>> $ def clearLayout():
>>>>> ... pxm = servermanager.ProxyManager()
>>>>>
>>>>> ... for layout in GetLayouts():
>>>>>
>>>>> ... pxm.UnRegisterProxy("layouts", layout[0], GetLayouts()[layout])
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Nov 16, 2012 at 2:28 PM, Celia Bremer
>>>>> wrote:
>>>>>
>>>>> Seb,
>>>>>
>>>>> When I say that the OpenGL window freezes, I mean the window is
>>>>> unresponsive in that I can't minimize it, and Windows task manager says
>>>>> "Not Responding". There's nothing in the window except for the purple
>>>>> background, even when there should be something, e.g. if I did Show(o)
>>>>> before calling Render(), where o is one of the pipeline objects.
>>>>>
>>>>> The thing I called layout windows, and I suppose it's really called
>>>>> something else (view layouts?), happens when I run the script from the
>>>>> Python shell that comes with the GUI. I'm referring to the tabs,
>>>>> "Layout #1", "Layout #2", etc. Here:
>>>>>
>>>>>>>> paraview version 3.14.1, Date: 2012-02-17
>>>>> from paraview.simple import *
>>>>>>>> GetLayouts()
>>>>> {('ViewLayout1', '275'): 0x0000000010FB4748>}
>>>>>>>> servermanager.LoadState("testpipeline.pvsm")
>>>>>>>> GetLayouts()
>>>>> {('ViewLayout1', '275'): 0x0000000010FB4748>, ('ViewLayout5', '2353'):
>>>>> }
>>>>>>>> servermanager.LoadState("testpipeline.pvsm")
>>>>>>>> GetLayouts()
>>>>> {('ViewLayout1', '275'): 0x0000000010FB4748>, ('ViewLayout5', '3972'):
>>>>> ,
>>>>> ('ViewLayout5', '2353'): 0x0000000010FB47B8>}
>>>>>
>>>>> This happens even if I use an empty state file, i.e. what I get when I
>>>>> open Paraview GUI, save state, save as empty.pvsm. If I load this state
>>>>> from the GUI, it opens in the original layout window, ViewLayout1,
>>>>> without any craziness. If I open it from the shell as above, the first
>>>>> tab splits into 2 views, the right view looks all weird (attached), a
>>>>> new tab opens and the state file is loaded into a second tab. If I load
>>>>> the state file again, then the second tab splits like the first (and if
>>>>> there was any content, it stays on the left hand side), a third tab
>>>>> opens, and the content shows up in the third tab. And so on. The names
>>>>> of these new tabs depend on the state file (above: 1 5 5, it might be 3
>>>>> 1 3 3, or if I use an empty state file, then it's 1 1 1 1), so I don't
>>>>> know what's the deal with that, but as long as I can close them before
>>>>> moving on to the next state file, I don't think it'll cause problems.
>>>>>
>>>>> Celia
>>>>>
>>>>> ________________________________
>>>>>> Date: Fri, 16 Nov 2012 13:40:36 -0500
>>>>>> Subject: Re: [Paraview] help with a simple script?
>>>>>> From:
>>> sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com><mailto:sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com>>
>>>>>> To:
>>> fuwsle at hotmail.com<mailto:fuwsle at hotmail.com><mailto:fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>>
>>>>>> CC:
>>> dave.demarle at kitware.com<mailto:dave.demarle at kitware.com><mailto:dave.demarle at kitware.com<mailto:dave.demarle at kitware.com>>;
>>> paraview at paraview.org<mailto:paraview at paraview.org><mailto:paraview at paraview.org<mailto:paraview at paraview.org>>
>>>>>>
>>>>>> Hi Celia,
>>>>>>
>>>>>> I'm not sure to follow what you mean by "it freezes" and "new layout
>>>>> window".
>>>>>>
>>>>>> When you render something from Python, the window is not interactive,
>>>>>> so maybe that's what you call freeze. And you need to manually call
>>>>>> Render() to update its content.
>>>>>> Regarding the layout window, I don't really have a clue what that
>>>> could be.
>>>>>>
>>>>>> So I let you explain a bit more.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Seb
>>>>>>
>>>>>>
>>>>>> On Fri, Nov 16, 2012 at 1:21 PM, Celia Bremer
>>>>> wrote:
>>>>>>
>>>>>> Thank you. That worked but I still have problems: as soon as the OpenGL
>>>>>> window opens to render, it freezes, even if all the objects are hidden.
>>>>>> I think I'll have to do it from the Python shell from PV instead. I
>>>>>> have just one more question.
>>>>>>
>>>>>> When I load a state using LoadState(), that automatically opens a new
>>>>>> layout window. If I open the same state file from the GUI, no new
>>>>>> window is opened, so I don't think it's a property stored in the state
>>>>>> file. If I'm going to loop through 60 state files, I imagine all these
>>>>>> windows would become a problem. How do I either close the window, or
>>>>>> prevent it from opening in the first place?
>>>>>>
>>>>>> Celia
>>>>>>
>>>>>> ----------------------------------------
>>>>>>> From:
>>> dave.demarle at kitware.com<mailto:dave.demarle at kitware.com><mailto:dave.demarle at kitware.com<mailto:dave.demarle at kitware.com>>
>>>>>>> Date: Fri, 16 Nov 2012 10:52:45 -0500
>>>>>>> Subject: Re: [Paraview] help with a simple script?
>>>>>>> To:
>>> fuwsle at hotmail.com<mailto:fuwsle at hotmail.com><mailto:fuwsle at hotmail.com<mailto:fuwsle at hotmail.com>>
>>>>>>> CC:
>>> sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com><mailto:sebastien.jourdain at kitware.com<mailto:sebastien.jourdain at kitware.com>>;
>>> paraview at paraview.org<mailto:paraview at paraview.org><mailto:paraview at paraview.org<mailto:paraview at paraview.org>>
>>>>>>>
>>>>>>>> from paraview import servermanager
>>>>>>>> from paraview.simple import *
>>>>>>>> servermanager.LoadState("test.pvsm")
>>>>>>>
>>>>>>> SetActiveView(GetRenderView()) #you are missing this
>>>>>>>
>>>>>>>> view = GetActiveView()
>>>>>>>> view.ViewTime
>>>
More information about the ParaView
mailing list