[Paraview] Insert text source into view in a script

M. Nawijn nawijn at gmail.com
Thu Jul 16 05:12:44 EDT 2009


I just found out the offending line that gives me the problem.
Given the following code:

from paraview.simple import *

lt = MakeBlueToRedLT(-1.0, 1.0)

bar = servermanager.rendering.ScalarBarWidgetRepresentation()
bar.LookupTable = lt
bar.LabelColor = [0.0, 1.0, 0.0]
bar.Title      = r'W [mm]'
bar.TitleColor = [0.0, 1.0, 0.0]
bar.LabelFontSize = 14
bar.AspectRatio   = 15.0
bar.AutomaticLabelFormat = 0

reader = XMLUnstructuredGridReader(FileName='disp-stage-%d.vtu' % 17)

Show()
Render()

#UpdatePipeline()

view = GetActiveView()							
view.Background = [0,0,0]						
ResetCamera(view)							
view.UseOffscreenRenderingForScreenshots = 0

dp = GetDisplayProperties()						
dp.ColorArrayName = 'W' 						

rep = GetRepresentation()						
rep.LookupTable = lt							
					
view.Representations.append(bar)
					
# Don't know how to get this into the view
text = Text()
text.Text = "Hello"

Show()
Render()

WriteImage('test.png')	

The code fails to add the text if I have the following line enabled:

     view.Representations.append(bar)

If I uncomment this line, the text is added to the view as expected.
Does anybody have a clue why this is?

I added the traceback below:

vtkFileSeriesReader : [ ...........]
vtkPVGeometryFilter : [ ...........]
vtkPVCacheKeeper : [ ...........]
vtkPainterPolyDataMapper : [ ...........]
vtkPainterPolyDataMapper : [ ...........]
vtkPainterPolyDataMapper : [ ...........]
Traceback (most recent call last):
  File "test3.py", line 42, in <module>
    Show()
  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
line 112, in Show
    rep = GetDisplayProperties(proxy, view)
  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
line 101, in GetDisplayProperties
    return GetRepresentation(proxy, view)
  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
line 90, in GetRepresentation
    rep = servermanager.GetRepresentation(proxy, view)
  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/servermanager.py",
line 1989, in GetRepresentation
    if rep.Input == aProxy:
  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/servermanager.py",
line 357, in __getattr__
    return getattr(self.SMProxy, name)
AttributeError: Input

Kind regards,

Marco



On Wed, Jul 15, 2009 at 10:33 PM, M. Nawijn<nawijn at gmail.com> wrote:
> The script works. Somehow it seems like it does not work in
> combination with my reader.
>
> Many thanks for your help. I have to go now, but I hope you have another idea.
>
> Kind regards,
>
> Marco
>
> On Wed, Jul 15, 2009 at 10:27 PM, Utkarsh
> Ayachit<utkarsh.ayachit at kitware.com> wrote:
>> Oops correction, I had a typo in the script:
>> #=======================
>> from paraview.simple import *
>> Sphere()
>> Show()
>> Render()
>>
>> t = Text()
>> t.Text = "Hello World"
>> Show()
>> Render()
>> #=======================
>>
>>
>>
>> On Wed, Jul 15, 2009 at 4:25 PM, Utkarsh
>> Ayachit<utkarsh.ayachit at kitware.com> wrote:
>>> Does the following script work:
>>> #=======================
>>> from paraview.simple import *
>>> Sphere()
>>> Show()
>>> Render()
>>>
>>> t = Text()
>>> t.Text = "Hello World"
>>> t.Show()
>>> Render()
>>> #=======================
>>>
>>> Utkarsh
>>>
>>>
>>> On Wed, Jul 15, 2009 at 4:23 PM, M. Nawijn<nawijn at gmail.com> wrote:
>>>> Hello Utkarsh,
>>>>
>>>> Thank you for the fast response. I tried this already before posting
>>>> my question to the mailing list, however, when I inserted the Show(),
>>>> I get the following error:
>>>>
>>>> vtkFileSeriesReader : [ ...........]
>>>> vtkPainterPolyDataMapper : [ ...........]
>>>> vtkPainterPolyDataMapper : [ ...........]
>>>> Traceback (most recent call last):
>>>>  File "test3.py", line 39, in <module>
>>>>    Show()
>>>>  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
>>>> line 112, in Show
>>>>    rep = GetDisplayProperties(proxy, view)
>>>>  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
>>>> line 101, in GetDisplayProperties
>>>>    return GetRepresentation(proxy, view)
>>>>  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/simple.py",
>>>> line 90, in GetRepresentation
>>>>    rep = servermanager.GetRepresentation(proxy, view)
>>>>  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/servermanager.py",
>>>> line 1989, in GetRepresentation
>>>>    if rep.Input == aProxy:
>>>>  File "/home/nawijn/scratch/paraview-bin/Utilities/VTKPythonWrapping/paraview/servermanager.py",
>>>> line 357, in __getattr__
>>>>    return getattr(self.SMProxy, name)
>>>> AttributeError: Input
>>>>
>>>>
>>>> Any suggestions?
>>>>
>>>> On Wed, Jul 15, 2009 at 10:17 PM, Utkarsh
>>>> Ayachit<utkarsh.ayachit at kitware.com> wrote:
>>>>> "Text" is a data source similar to the reader. You need to  "Show" it
>>>>> to add it to the active view.
>>>>>
>>>>> Just do:
>>>>> load = 100.0
>>>>> # Don't know how to get this into the view
>>>>> text = Text()
>>>>> text.Text = "Load %6.3f" % load
>>>>> Show()
>>>>>
>>>>> Utkarsh
>>>>>
>>>>> On Wed, Jul 15, 2009 at 4:01 PM, M. Nawijn<nawijn at gmail.com> wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I am a newbie in Paraview Python scripting, so I apologize upfront if
>>>>>> this is a trivial question.
>>>>>>
>>>>>> I am processing a set of datafiles obtained from an optical
>>>>>> measurement system. I so far succeeded in loading the data file,
>>>>>> adding a color legend and storing the resulting view in a image file.
>>>>>> Sample code is posted below.
>>>>>>
>>>>>> What I would like to do next is add a text source to the view to
>>>>>> provide some contextual information about the data (in particular the
>>>>>> external load level at which the data was captured). I managed to add
>>>>>> a text source to an "empty" view (so without first reading the data),
>>>>>> but I cannot find a way to have the data and text source together.
>>>>>>
>>>>>> Can someone explain how I can add this to the view?
>>>>>>
>>>>>> Kind regards,
>>>>>>
>>>>>> Marco
>>>>>>
>>>>>> #==== What I have so far ===================================================
>>>>>>
>>>>>> from paraview.simple import *
>>>>>>
>>>>>> lt = MakeBlueToRedLT(-1.0, 1.0)
>>>>>>
>>>>>> bar = servermanager.rendering.ScalarBarWidgetRepresentation()
>>>>>> bar.LookupTable = lt
>>>>>> bar.LabelColor = [0.0, 1.0, 0.0]
>>>>>> bar.Title      = r'W [mm]'
>>>>>> bar.TitleColor = [0.0, 1.0, 0.0]
>>>>>> bar.LabelFontSize = 14
>>>>>> bar.AspectRatio   = 15.0
>>>>>> bar.AutomaticLabelFormat = 0
>>>>>>
>>>>>> reader = XMLUnstructuredGridReader(FileName='disp-stage-%d.vtu' % 17)
>>>>>>
>>>>>> Show()
>>>>>>
>>>>>> #UpdatePipeline()
>>>>>>
>>>>>> view = GetActiveView()
>>>>>> view.Background = [0,0,0]
>>>>>> ResetCamera(view)
>>>>>> view.UseOffscreenRenderingForScreenshots = 0
>>>>>>
>>>>>> dp = GetDisplayProperties()
>>>>>> dp.ColorArrayName = 'W'
>>>>>>
>>>>>> rep = GetRepresentation()
>>>>>> rep.LookupTable = lt
>>>>>>
>>>>>> view.Representations.append(bar)
>>>>>>
>>>>>> load = 100.0
>>>>>> # Don't know how to get this into the view
>>>>>> text = Text()
>>>>>> text.Text = "Load %6.3f" % load
>>>>>>
>>>>>> # Image does not show the text
>>>>>> WriteImage('test.png')
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>>
>>>>>
>>>>
>>>
>>
>


More information about the ParaView mailing list