[Paraview] [EXT] Re: More Customization of Python programmable Filter Panel
Cory Quammen
cory.quammen at kitware.com
Thu Sep 24 16:42:22 EDT 2015
Hi Dennis,
What is your input to the Test Filter? I can apply it to a Sphere source
input.
For your custom filter, the XML file should contain the following:
<InputProperty
name="Input"
command="SetInputConnection">
<ProxyGroupDomain name="groups">
<Group name="sources"/>
<Group name="filters"/>
</ProxyGroupDomain>
<DataTypeDomain name="input_type">
<DataType value="vtkMultiBlockDataSet"/>
</DataTypeDomain>
</InputProperty>
This tells ParaView to enable your filter when a multi-block data set is
selected in the Pipeline browser. If it doesn't have this, then I believe
the filter is not enabled for any input.
Hope that helps,
Cory
On Thu, Sep 24, 2015 at 4:30 PM, Dennis Conklin <dennis_conklin at goodyear.com
> wrote:
> All,
>
>
>
> So, I can load the xml plugin but the filter is grayed out on the Filters
> menu. I have tried removing the InputDataSetType so that it should accept
> any type of input, but still gray. I am not sure how Paraview decides
> which filters are inappropriate (greyed-out) so I don’t have many ideas on
> how to overcome this.
>
>
>
> I loaded the TestFilter.xml from the blog and that is also greyed-out.
> I loaded the DoubleHelixSource.xml and that is available in the Sources
> menu and runs.
>
>
>
> Thanks
>
>
>
> Dennis
>
>
>
> *From:* Dennis Conklin
> *Sent:* Thursday, September 24, 2015 3:18 PM
> *To:* 'Cory Quammen' <cory.quammen at kitware.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* RE: [EXT] Re: [Paraview] More Customization of Python
> programmable Filter Panel
>
>
>
> Cory,
>
>
>
> I had just thought of this and tried it (successfully) about when your
> note came in.
>
>
>
> I hate to quibble, but I would suggest that in the typeMap in the
> python_filter_generator.py vtkMultiBlockDataSet is listed as
> vtkMultiblockDataSet and I had to figure this out and use a small ‘b’
> before it would work – so if you are going to publish this routine
> anywhere, you might want to edit that!
>
>
>
> Thanks again – as soon as I figure out why it is grayed out on the Filter
> list I am going to test this thing out.
>
>
>
> Dennis
>
>
>
> *From:* Cory Quammen [mailto:cory.quammen at kitware.com
> <cory.quammen at kitware.com>]
> *Sent:* Thursday, September 24, 2015 3:13 PM
>
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* Re: [EXT] Re: [Paraview] More Customization of Python
> programmable Filter Panel
>
>
>
> Hi Dennis,
>
>
>
> The converter evaluates your Python script and then uses some Python
> reflection features to extract the code in your RequestData function. But
> it does this only for the RequestData function (as well as a
> RequestInformation and RequestUpdateExtent functions, but these aren't
> always needed). The converter is simply ignoring your other functions.
>
>
>
> To get around this, try defining your sub* functions as inner functions in
> RequestData(), e.g.,
>
>
>
> Def RequestData():
>
> Def sub1:
>
> Do some stuff
>
> Return var
>
>
>
> Def sub2(var):
>
> Do some stuff
>
> Return newVar
>
>
>
> Def sub3(var):
>
> Do some stuff
>
> Return newVar
>
>
>
> X=sub1()
>
> Y=sub2(X)
>
> Z=sub3(Y)
>
> Do something with Z
>
>
>
> Best regards,
> Cory
>
>
>
> On Thu, Sep 24, 2015 at 2:39 PM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> Cory,
>
>
>
> I’m pretending to be a real programmer, so my Programmable Filter script
> looks something like this:
>
>
>
> Def sub1:
>
> Do some stuff
>
> Return var
>
>
>
> Def sub2(var):
>
> Do some stuff
>
> Return newVar
>
>
>
> Def sub3(var):
>
> Do some stuff
>
> Return newVar
>
>
>
> Def RequestData():
>
> X=sub1()
>
> Y=sub2(X)
>
> Z=sub3(Y)
>
> Do something with Z
>
>
>
> Everything except RequestData gets lost – should I just manually break
> everything down and insert at the beginning of the default_values in
> StringVectorProperty, or is there some way to trick it into reading the
> entire script?
>
>
>
> Thanks
>
>
>
> Dennis
>
>
>
> *From:* Cory Quammen [mailto:cory.quammen at kitware.com]
> *Sent:* Thursday, September 24, 2015 1:02 PM
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* Re: [EXT] Re: [Paraview] More Customization of Python
> programmable Filter Panel
>
>
>
> Dennis,
>
>
>
> Great! I'm glad it's what you are looking for.
>
>
>
> You can hide any property by editing the XML file. In the property
> element, add an attribute called "panel_visibility" and set this to
> "never". This will hide the property from view. You can also set it to
> "advanced" so that it shows up only when the advanced option is enabled.
>
>
>
> Here's an example:
>
>
>
> <StringVectorProperty
>
> panel_visibility="never"
>
> name="Script"
>
> command="SetScript"
>
> number_of_elements="1"
>
> default_values="my python script">
>
> <Documentation>This property contains the text of a python program
> that
>
> the programmable source runs.</Documentation>
>
> </StringVectorProperty>
>
>
>
> Cheers,
>
> Cory
>
>
>
> On Thu, Sep 24, 2015 at 12:47 PM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> One more question – the original article says that
>
>
>
> Alternatively, the Script properties can be hidden completely from the
> properties panel.
>
>
>
> How is this accomplished?
>
>
>
> Thanks again
>
>
>
> Dennis
>
>
>
> *From:* Dennis Conklin
> *Sent:* Thursday, September 24, 2015 12:20 PM
> *To:* 'Cory Quammen' <cory.quammen at kitware.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* RE: [EXT] Re: [Paraview] More Customization of Python
> programmable Filter Panel
>
>
>
> Cory,
>
>
>
> Wow, that’s exactly what I need – now I just need to get some time to
> re-implement my filters using this!
>
>
>
> Thanks again
>
>
>
> Dennis
>
>
>
> *From:* Cory Quammen [mailto:cory.quammen at kitware.com
> <cory.quammen at kitware.com>]
> *Sent:* Thursday, September 24, 2015 11:07 AM
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* [EXT] Re: [Paraview] More Customization of Python programmable
> Filter Panel
>
>
>
> Hi Dennis,
>
>
>
> Answers inlined below.
>
>
>
> On Wed, Sep 23, 2015 at 2:39 PM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> All,
>
>
>
> Pat Marion discussed adding interactive Properties for a Programmable
> Filter here:
>
> http://www.kitware.com/blog/home/post/534
>
>
>
> I have a few questions about this:
>
> 1. Is this still valid for v4.4 with the original
> python_filter_generator.py?
>
> Yes, I just tested it.
>
> 2. Have we added any other capability. For instance, I would love
> to present a list of variables to be calculated and let my user select or
> unselect each to decide exactly what he wants as output. With a numeric
> field with 0 as unselect and 1 as select, people will always manage to type
> something else in there. If this interface could have a checklist, or if
> fields could have a drop down list (Yes/No, etc) then this would greatly
> expand the utility of this technique.
>
> You can do this if you have a fixed number of variables. Just list each
> variable option as a IntVectorProperty with a BooleanDomain in the XML. In
> the input file for the filter generator, just express these options with
> the default values, .e.g,
>
>
>
> Properties = dict(
>
> generate_var1 = True,
>
> generate_var2 = False,
>
> generate_var3 = False
>
> )
>
>
>
> The filter generator will convert each of these lines into XML of the
> following form:
>
>
>
> <IntVectorProperty
>
> name="generate_var1"
>
> label="generate var1"
>
> initial_string="generate_var1"
>
> command="SetParameter"
>
> animateable="1"
>
> default_values="1"
>
> number_of_elements="1">
>
> <BooleanDomain name="bool" />
>
> <Documentation></Documentation>
>
> </IntVectorProperty>
>
>
>
>
>
> These properties will appear as checkboxes in the UI of your filter.
>
>
>
> Of course, you can tweak the XML files that are generated if it doesn't
> get the label attribute for the property right, for instance.
>
>
>
> I hope that helps.
>
> Cory
>
>
>
>
>
> So, is anyone using this and perhaps knows how to do these extended things?
>
>
>
> Thanks for any hints
>
>
>
> Dennis
>
>
> _______________________________________________
> 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
>
> Search the list archives at: http://markmail.org/search/?q=ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview
>
>
>
>
>
> --
>
> Cory Quammen
> R&D Engineer
> Kitware, Inc.
>
>
>
>
>
> --
>
> Cory Quammen
> R&D Engineer
> Kitware, Inc.
>
>
>
>
>
> --
>
> Cory Quammen
> R&D Engineer
> Kitware, Inc.
>
--
Cory Quammen
R&D Engineer
Kitware, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20150924/32365d36/attachment.html>
More information about the ParaView
mailing list