Pat,

Thanks for the explanation on the proper import and how to get at the local render window. With your help I was able to do what I wanted.

I'm not a Paraview user, but I am supporting someone that is and he needed a way to get good looking .ps files out of Paraview. So after some initial reading I thought I would write a plugin, then I stumbled across using the python shell. Then I figured working with vtk objects directly through the shell might be the quickest way to get it done.

I might now look into writing the proxy xml definition as you suggested.

Once I follow the example that you pointed me to, does Paraview need to be recompiled once I put my new proxy xml definition in place and if so do I need to stick it in a specific place, such as the utilities.xml you pointed out? Or can my xml be sort of be loaded dynamically through Paraview's plugin manager as long as I build Paraview with shared libs on?

Thanks Again for Your Help,
Marcin


On 06/17/2010 03:03 PM, pat marion wrote:
Hi,

If you look at paraview's vtk/__init__.py, you'll see:

    from libvtkRenderingPython import vtkCamera

So that is why vtk.vtkGL2PSExporter() doesn't work- the complete vtkRendering kit has not been imported. You could do this:

from libvtkRenderingPython import vtkGL2PSExporter
exporter = vtkGL2PSExporter()

or

import libvtkRenderingPython as vtkrendering
exporter = vtkrendering.vtkGL2PSExporter()

If you are running this in the paraview gui, you can get the local render window (vtkRenderWindow) by calling:

view = GetActiveView().GetRenderWindow()


You should understand that you are working directly with vtk objects here. The paraview way to handle this is to write a proxy xml definition for the GL2PS exporter. You can see an example by searching for VRMLExporter in Servers/ServerManager/Resources/utilities.xml Then your script might be something like:

exporters = servermanager.createModule("exporters")
exp = exporters.GL2PSExporter(FileName="/tmp/foo.ps <http://foo.ps>")
exp.View = GetActiveView()
exp.Write()



Pat


On Thu, Jun 17, 2010 at 2:26 PM, Marcin Sliwowski <[email protected] <mailto:[email protected]>> wrote:

    Hello Peter,

    I was king of hoping you would reply, I actually saw that post and
    your method of instantiating an object on vtkGL2PSExporter does
    work after I do a from paraview.vtk import *

    from paraview.vtk import *
    exp = vtkInstantiator.CreateInstance("vtkGL2PSExporter")

    I have tried exp.Write() but I get an error indicating:
    vtkGL2PSExporter: No render windows provided

    Then I did a couple of stabs in the dark with
    vtk.vtkRenderWindow() to try an get a Render Window object but
    with no success, I get attribute errors that I think are coming
    from me mixing up namespaces. I am doing the import line above and
    from vtk import *, I wonder if that is messing me up. I am going
    to read up on Python to get to the bottom of this, but a quick
    hint is also appreciated.

    Thanks,
    Marcin




    On 06/17/2010 12:30 PM, Peter Brady wrote:
    Hello Marcin,

    Your question may have already been answered here:
    http://markmail.org/message/zd2nwsztxl4xwbhm.

    However I think the last time I tried this was in 3.4 so things
    may have changed.  In my experience the vtkPostScript writer does
    a better job although it has been quite a while since I've tried
    gl2ps.

    Good luck,
    Peter.

    On Thu, Jun 17, 2010 at 8:23 AM, Marcin Sliwowski <[email protected]
    <mailto:[email protected]>> wrote:

        Hello,

        I am trying to figure out how to save a visualization in
        Paraview directly to ps/eps format.

        I have compiled from source paraview 3.6 with the
        configuration option VTK_USE_GL2PS set to ON.

        There are many hits in the mailing list archives regarding
        trying to use vtkGL2PSExporter to achieve this but I couldn't
        find anything that I could make work.

        I know that I can just use WriteImage("test.eps",
        Writer="vtkPostScriptWriter") in the python shell to get what
        I am asking for.

        However, I wonder if GL2PS could provide a better looking eps
        file, and having spent a couple of hours on this, I would
        really like to get to the bottom of this.

        I have looked at the vtkGL2PSExporter class reference at
        http://www.vtk.org/doc/nightly/html/classvtkGL2PSExporter.html and
        from there followed the vtkGL2PSExporter (Tests) link which
        provides examples of unit testing that is done on the class.
        One example is actually titled "test vector EPS output"

        However, even after doing a: from paraview import vtk in the
        python shell, when I try to follow the test example and do
        exp = vtk.vtkGL2PSExporter() I get the following error:

        AttributeError: 'module' object has no attribute
        'vtkGL2PSExporter'


        Can anyone shine any light on how to actually utilize the
        vtkGL2PSExporter in Paraview to export an .eps, my impression
        is that it has to be done in the Python Shell, and I am not
        very familiar with Python.

        Thank You,
        Marcin Sliwowski

        _______________________________________________
        Powered by www.kitware.com <http://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




-- Marcin Sliwowski
    Systems Programmer
    Duke University - Pratt School of Engineering
    Office: 919-660-8450


    _______________________________________________
    Powered by www.kitware.com <http://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




--
Marcin Sliwowski
Systems Programmer
Duke University - Pratt School of Engineering
Office: 919-660-8450

_______________________________________________
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

Reply via email to