Hello All,
Because there is no Update Button available in Paraview I made a little
Py-script to reload the filenames in FileSeriesReader for my own reader
class (should work with other reader classes too).
Now, everytime I hit the button, the new FileNameList is updatet, and
the last available File is shown. (I love the PointSprite Plugin, if you
need other representations change some lines).
Now there is on wish left: how to run this script periodicaly every n
seconds OR everytime thereis a new file in the solution directory.
I tried python Threading/Timer but they seems not to work in
Paraview-Python Console.
Is there any possibility to trigger a python script from inside Paraview ?
I'm not a Python Coder, so maybe I did not try every method to make a
loop which does not deadlock :-)
Here is the script to update a files-series-reader:
|
from paraview.simple import *
import glob|
folder="post/*.liggghts"
def try_int(s):
"Convert to integer if possible."
try: return int(s)
except: return s
def natsort_key(s):
"Used internally to get a tuple by which s is sorted."
import re
return map(try_int, re.findall(r'(\d+|\D+)', s))
def natcmp(a, b):
"Natural string comparison, case sensitive."
return cmp(natsort_key(a), natsort_key(b))
def natcasecmp(a, b):
"Natural string comparison, ignores case."
return natcmp(a.lower(), b.lower())
# Find the source object
if (FindSource("liggghts_dump")==None): ##create
files = glob.glob(folder)
files.sort(natcasecmp)
xreader=liggghts_Reader(guiName="liggghts_dump")
xreader.FileNames=files
SetDisplayProperties(xreader, Representation="Point Sprite")
DataRepresentation1 = Show()
DataRepresentation1.PointSpriteDefaultsInitialized = 1
DataRepresentation1.Texture = []
DataRepresentation1.RadiusTransferFunctionEnabled = 1
DataRepresentation1.RadiusMode = 'Scalar'
DataRepresentation1.Representation = 'Point Sprite'
DataRepresentation1.RadiusArray = [None, 'radius']
DataRepresentation1.RadiusIsProportional = 1
else:
files = glob.glob(folder)
files.sort(natcasecmp)
xreader.FileNames=files ##update
RenderView1 = GetRenderView()
AnimationScene1 = GetAnimationScene()
end=len(files)-1
RenderView1.ViewTime = end
AnimationScene1.AnimationTime = end
Render()
Best wishes,
Christian
_______________________________________________
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