[vtkusers] FW: Import Mesh Mystery (UnstructuredGrid) -Help!

Helvin Lui helvinlui at gmail.com
Wed Aug 26 07:36:49 EDT 2009


Hi Greg,
I have posted my code on my blog, where I sometimes keep a log of things.
http://learnwithhelvin.blogspot.com/2009/08/vtk-displaying-finite-element-mesh.html

To Matt,

About the allocate business, I read from somewhere that it's only an
estimated value. something like the number of points in your mesh times the
pieces of info at each point. And I have noticed that they normally have the
same number twice in the brackets. (I was just mucking around with mine, it
didn't matter much.) I can't find where I read it from now. I don't think it
affects whether your code works or not as long as you have that statement,
but it may have effects on the speed.

<http://learnwithhelvin.blogspot.com/2009/08/vtk-displaying-finite-element-mesh.html>
Helvin

On Wed, Aug 26, 2009 at 10:17 AM, Helvin Lui <helvinlui at gmail.com> wrote:

> Greg,
>
> I understand what it feels like ...
>
> I might help you tonight, when I have my code with me.
> Wait.
>
> Helvin
>
>
> On Tue, Aug 25, 2009 at 2:44 PM, greg aiken <gregaiken at hotmail.com> wrote:
>
>>
>> Dear Helvin,
>>
>> Might you be kind to send me a file attachment of both your wonderful
>> program and the data file?  I am new to VTK and the body of my email did not
>> display your program or data properly.
>>
>> It would be very much appreciated, as I know VTK is a beast to learn.  So
>> any code fragments I can get my hands on will help me.
>>
>> Thanks,
>>
>> Greg
>>
>>
>> ------------------------------
>> From: helvinlui at gmail.com
>> Date: Mon, 24 Aug 2009 09:12:28 +1200
>> To: bill.lorensen at gmail.com; vtkusers at vtk.org
>> Subject: Re: [vtkusers] Import Mesh Mystery (UnstructuredGrid) -Help!
>>
>> Oh my gosh, Bill! Thanks so much for bothering to read through my code and
>> making it work!! =D
>> Couldn't be more grateful! (Else I might be in panic attack, with less
>> than an hour on hand...)
>>
>> Yes, I needed to subtract one from my node numbers, since counting needs
>> to start from 0, but my data's points started from1.
>> I was wondering why even my small data file did not display as i intended,
>> though i did not did an error. But now, both are working great.
>> Thanks so much Bill!!!
>>
>> Helvin
>>
>> On Mon, Aug 24, 2009 at 3:42 AM, Bill Lorensen <bill.lorensen at gmail.com>wrote:
>>
>> element_ID_list.InsertNextId(node_no) should be
>> element_ID_list.InsertNextId(node_no-1)
>>
>> On Sun, Aug 23, 2009 at 10:18 AM, Helvin Lui<helvinlui at gmail.com> wrote:
>> > Hi everyone! :-)
>> > I have written a function that imports a mesh from a .txt file.
>> >
>> > def displayMesh(file_path):
>> > áá áimport vtk
>> > áá áfrom vtk import vtkTriangle
>> > áá áVTK_TRIANGLE = vtkTriangle().GetCellType()
>> >
>> > áá áwith open(file_path, 'r') as f:
>> >
>> > áá á á áaMeshGrid = vtk.vtkUnstructuredGrid()
>> > áá á á áaMeshGrid.Allocate(2, 180)
>> >
>> > áá á á á# Get number of mesh points
>> > áá á á áno_points = int(f.readline())
>> >
>> > áá á á á# Set number of points
>> > áá á á ámeshPoints = vtk.vtkPoints()
>> > áá á á ámeshPoints.SetNumberOfPoints(no_points)
>> >
>> > áá á á á# Iterate through point data
>> > áá á á áfor i in range(no_points):
>> > áá á á á á á# Get coord info for each point
>> > áá á á á á ápoint_info = f.readline().split() # I need to split, before
>> I
>> > assign to point_coord
>> > áá á á á á á á á á á á á á á á á á á á á á á á# else the whole thing is
>> > split into single numbers
>> > áá á á á á á#print point_info # Check reading
>> > áá á á á á ápoint_ID = (int(point_info[0])-1) # -1 because the IDs need
>> to
>> > start with 0.
>> > áá á á á á ápoint_x = float(point_info[1])
>> > áá á á á á ápoint_y = float(point_info[2])
>> > áá á á á á ápoint_z = float(point_info[3])
>> > áá á á á á á# Set coord info in mesh
>> > áá á á á á ámeshPoints.InsertPoint(point_ID, point_x, point_y, point_z)
>> >
>> > áá á á á# Get number of elements
>> > áá á á áno_elements = int(f.readline())
>> >
>> > áá á á á# Set number of elements
>> > áá á á áfor i in range(no_elements):
>> > áá á á á á áelement_info = f.readline().split()
>> > áá á á á á áelement_ID = (int(element_info[0])-1)
>> > áá á á á á áelement_no_nodes = int(element_info[1])
>> >
>> > áá á á á á áelement_ID_list = vtk.vtkIdList()
>> > áá á á á á áfor j in range(element_no_nodes):
>> > áá á á á á á á ánode_no = int(element_info[j+2])
>> > áá á á á á á á áelement_ID_list.InsertNextId(node_no)
>> > áá á á á á á á áprint j, node_no
>> > áá á á á á áif element_no_nodes == 3: # a triangle
>> > áá á á á á á á ácell_type = VTK_TRIANGLE
>> >
>> > áá á á á á áaMeshGrid.InsertNextCell(cell_type, element_ID_list)
>> >
>> > áá áaMeshGrid.SetPoints(meshPoints)
>> >
>> > áá áaMeshMapper = vtk.vtkDataSetMapper()
>> > áá áaMeshMapper.SetInput(aMeshGrid)
>> >
>> > áá áaMeshActor = vtk.vtkActor()
>> > áá áaMeshActor.SetMapper(aMeshMapper)
>> > áá áaMeshActor.GetProperty().SetDiffuseColor(1, 0, 0)
>> >
>> > áá á# Create the usual rendering stuff.
>> > áá áren = vtk.vtkRenderer()
>> > áá árenWin = vtk.vtkRenderWindow()
>> > áá árenWin.AddRenderer(ren)
>> > áá árenWin.SetSize(300, 300)
>> > áá áiren = vtk.vtkRenderWindowInteractor()
>> > áá áiren.SetRenderWindow(renWin)
>> >
>> > áá áren.AddActor(aMeshActor)
>> >
>> > áá á# Zoom, to see actor. (in case it was too small to see)
>> > áá áren.ResetCamera()
>> > #
>> http://www.vtk.org/doc/nightly/html/classvtkRenderer.html#b14d1aeb74a4990f2da819e09d028d65
>> > áá ácam1 = ren.GetActiveCamera()
>> >
>> > áá á## Render the scene and start interaction.
>> > áá áiren.Initialize()
>> > áá árenWin.Render()
>> > áá áiren.Start()
>> >
>> > My goal is to display this particular file:
>> > áá á44
>> > áá á 1 á á á0.000000000 á á á0.000000000 á á á0.000000000
>> > áá á 2 á á á0.100000001 á á á0.000000000 á á á0.000000000
>> > áá á 3 á á á0.200000003 á á á0.000000000 á á á0.000000000
>> > áá á 4 á á á0.300000012 á á á0.000000000 á á á0.000000000
>> > áá á 5 á á á0.400000006 á á á0.000000000 á á á0.000000000
>> > áá á 6 á á á0.500000000 á á á0.000000000 á á á0.000000000
>> > áá á 7 á á á0.600000024 á á á0.000000000 á á á0.000000000
>> > áá á 8 á á á0.699999988 á á á0.000000000 á á á0.000000000
>> > áá á 9 á á á0.800000012 á á á0.000000000 á á á0.000000000
>> > áá á10 á á á0.900000036 á á á0.000000000 á á á0.000000000
>> > áá á11 á á á1.000000000 á á á0.000000000 á á á0.000000000
>> > áá á12 á á á0.000000000 á á á0.066666670 á á á0.000000000
>> > áá á13 á á á0.100000001 á á á0.066666670 á á á0.000000000
>> > áá á14 á á á0.200000003 á á á0.066666670 á á á0.000000000
>> > áá á15 á á á0.300000012 á á á0.066666670 á á á0.000000000
>> > áá á16 á á á0.400000006 á á á0.066666670 á á á0.000000000
>> > áá á17 á á á0.500000000 á á á0.066666670 á á á0.000000000
>> > áá á18 á á á0.600000024 á á á0.066666670 á á á0.000000000
>> > áá á19 á á á0.699999988 á á á0.066666670 á á á0.000000000
>> > áá á20 á á á0.800000012 á á á0.066666670 á á á0.000000000
>> > áá á21 á á á0.900000036 á á á0.066666670 á á á0.000000000
>> > áá á22 á á á1.000000000 á á á0.066666670 á á á0.000000000
>> > áá á23 á á á0.000000000 á á á0.133333340 á á á0.000000000
>> > áá á24 á á á0.100000001 á á á0.133333340 á á á0.000000000
>> > áá á25 á á á0.200000003 á á á0.133333340 á á á0.000000000
>> > áá á26 á á á0.300000012 á á á0.133333340 á á á0.000000000
>> > áá á27 á á á0.400000006 á á á0.133333340 á á á0.000000000
>> > áá á28 á á á0.500000000 á á á0.133333340 á á á0.000000000
>> > áá á29 á á á0.600000024 á á á0.133333340 á á á0.000000000
>> > áá á30 á á á0.699999988 á á á0.133333340 á á á0.000000000
>> > áá á31 á á á0.800000012 á á á0.133333340 á á á0.000000000
>> > áá á32 á á á0.900000036 á á á0.133333340 á á á0.000000000
>> > áá á33 á á á1.000000000 á á á0.133333340 á á á0.000000000
>> > áá á34 á á á0.000000000 á á á0.200000018 á á á0.000000000
>> > áá á35 á á á0.100000001 á á á0.200000018 á á á0.000000000
>> > áá á36 á á á0.200000003 á á á0.200000018 á á á0.000000000
>> > áá á37 á á á0.300000012 á á á0.200000018 á á á0.000000000
>> > áá á38 á á á0.400000006 á á á0.200000018 á á á0.000000000
>> > áá á39 á á á0.500000000 á á á0.200000018 á á á0.000000000
>> > áá á40 á á á0.600000024 á á á0.200000018 á á á0.000000000
>> > áá á41 á á á0.699999988 á á á0.200000018 á á á0.000000000
>> > áá á42 á á á0.800000012 á á á0.200000018 á á á0.000000000
>> > áá á43 á á á0.900000036 á á á0.200000018 á á á0.000000000
>> > áá á44 á á á1.000000000 á á á0.200000018 á á á0.000000000
>> > áá á60
>> > áá á 1 á á á3 á á á1 á á á2 á á 13 á á á0 á á á1 á á á á 0.00500
>> > áá á 2 á á á3 á á á2 á á á3 á á 14 á á á0 á á á1 á á á á 0.00500
>> > áá á 3 á á á3 á á á3 á á á4 á á 15 á á á0 á á á1 á á á á 0.00500
>> > áá á 4 á á á3 á á á4 á á á5 á á 16 á á á0 á á á1 á á á á 0.00500
>> > áá á 5 á á á3 á á á5 á á á6 á á 17 á á á0 á á á1 á á á á 0.00500
>> > áá á 6 á á á3 á á á6 á á á7 á á 18 á á á0 á á á1 á á á á 0.00500
>> > áá á 7 á á á3 á á á7 á á á8 á á 19 á á á0 á á á1 á á á á 0.00500
>> > áá á 8 á á á3 á á á8 á á á9 á á 20 á á á0 á á á1 á á á á 0.00500
>> > áá á 9 á á á3 á á á9 á á 10 á á 21 á á á0 á á á1 á á á á 0.00500
>> > áá á10 á á á3 á á 10 á á 11 á á 22 á á á0 á á á1 á á á á 0.00500
>> > áá á11 á á á3 á á á1 á á 13 á á 12 á á á0 á á á1 á á á á 0.00500
>> > áá á12 á á á3 á á á2 á á 14 á á 13 á á á0 á á á1 á á á á 0.00500
>> > áá á13 á á á3 á á á3 á á 15 á á 14 á á á0 á á á1 á á á á 0.00500
>> > áá á14 á á á3 á á á4 á á 16 á á 15 á á á0 á á á1 á á á á 0.00500
>> > áá á15 á á á3 á á á5 á á 17 á á 16 á á á0 á á á1 á á á á 0.00500
>> > áá á16 á á á3 á á á6 á á 18 á á 17 á á á0 á á á1 á á á á 0.00500
>> > áá á17 á á á3 á á á7 á á 19 á á 18 á á á0 á á á1 á á á á 0.00500
>> > áá á18 á á á3 á á á8 á á 20 á á 19 á á á0 á á á1 á á á á 0.00500
>> > áá á19 á á á3 á á á9 á á 21 á á 20 á á á0 á á á1 á á á á 0.00500
>> > áá á20 á á á3 á á 10 á á 22 á á 21 á á á0 á á á1 á á á á 0.00500
>> > áá á21 á á á3 á á 12 á á 13 á á 24 á á á0 á á á1 á á á á 0.00500
>> > áá á22 á á á3 á á 13 á á 14 á á 25 á á á0 á á á1 á á á á 0.00500
>> > áá á23 á á á3 á á 14 á á 15 á á 26 á á á0 á á á1 á á á á 0.00500
>> > áá á24 á á á3 á á 15 á á 16 á á 27 á á á0 á á á1 á á á á 0.00500
>> > áá á25 á á á3 á á 16 á á 17 á á 28 á á á0 á á á1 á á á á 0.00500
>> > áá á26 á á á3 á á 17 á á 18 á á 29 á á á0 á á á1 á á á á 0.00500
>> > áá á27 á á á3 á á 18 á á 19 á á 30 á á á0 á á á1 á á á á 0.00500
>> > áá á28 á á á3 á á 19 á á 20 á á 31 á á á0 á á á1 á á á á 0.00500
>> > áá á29 á á á3 á á 20 á á 21 á á 32 á á á0 á á á1 á á á á 0.00500
>> > áá á30 á á á3 á á 21 á á 22 á á 33 á á á0 á á á1 á á á á 0.00500
>> > áá á31 á á á3 á á 12 á á 24 á á 23 á á á0 á á á1 á á á á 0.00500
>> > áá á32 á á á3 á á 13 á á 25 á á 24 á á á0 á á á1 á á á á 0.00500
>> > áá á33 á á á3 á á 14 á á 26 á á 25 á á á0 á á á1 á á á á 0.00500
>> > áá á34 á á á3 á á 15 á á 27 á á 26 á á á0 á á á1 á á á á 0.00500
>> > áá á35 á á á3 á á 16 á á 28 á á 27 á á á0 á á á1 á á á á 0.00500
>> > áá á36 á á á3 á á 17 á á 29 á á 28 á á á0 á á á1 á á á á 0.00500
>> > áá á37 á á á3 á á 18 á á 30 á á 29 á á á0 á á á1 á á á á 0.00500
>> > áá á38 á á á3 á á 19 á á 31 á á 30 á á á0 á á á1 á á á á 0.00500
>> > áá á39 á á á3 á á 20 á á 32 á á 31 á á á0 á á á1 á á á á 0.00500
>> > áá á40 á á á3 á á 21 á á 33 á á 32 á á á0 á á á1 á á á á 0.00500
>> > áá á41 á á á3 á á 23 á á 24 á á 35 á á á0 á á á1 á á á á 0.00500
>> > áá á42 á á á3 á á 24 á á 25 á á 36 á á á0 á á á1 á á á á 0.00500
>> > áá á43 á á á3 á á 25 á á 26 á á 37 á á á0 á á á1 á á á á 0.00500
>> > áá á44 á á á3 á á 26 á á 27 á á 38 á á á0 á á á1 á á á á 0.00500
>> > áá á45 á á á3 á á 27 á á 28 á á 39 á á á0 á á á1 á á á á 0.00500
>> > áá á46 á á á3 á á 28 á á 29 á á 40 á á á0 á á á1 á á á á 0.00500
>> > áá á47 á á á3 á á 29 á á 30 á á 41 á á á0 á á á1 á á á á 0.00500
>> > áá á48 á á á3 á á 30 á á 31 á á 42 á á á0 á á á1 á á á á 0.00500
>> > áá á49 á á á3 á á 31 á á 32 á á 43 á á á0 á á á1 á á á á 0.00500
>> > áá á50 á á á3 á á 32 á á 33 á á 44 á á á0 á á á1 á á á á 0.00500
>> > áá á51 á á á3 á á 23 á á 35 á á 34 á á á0 á á á1 á á á á 0.00500
>> > áá á52 á á á3 á á 24 á á 36 á á 35 á á á0 á á á1 á á á á 0.00500
>> > áá á53 á á á3 á á 25 á á 37 á á 36 á á á0 á á á1 á á á á 0.00500
>> > áá á54 á á á3 á á 26 á á 38 á á 37 á á á0 á á á1 á á á á 0.00500
>> > áá á55 á á á3 á á 27 á á 39 á á 38 á á á0 á á á1 á á á á 0.00500
>> > áá á56 á á á3 á á 28 á á 40 á á 39 á á á0 á á á1 á á á á 0.00500
>> > áá á57 á á á3 á á 29 á á 41 á á 40 á á á0 á á á1 á á á á 0.00500
>> > áá á58 á á á3 á á 30 á á 42 á á 41 á á á0 á á á1 á á á á 0.00500
>> > áá á59 á á á3 á á 31 á á 43 á á 42 á á á0 á á á1 á á á á 0.00500
>> > áá á60 á á á3 á á 32 á á 44 á á 43 á á á0 á á á1 á á á á 0.00500
>> > This however, runs into no errors in command line, and the render window
>> > appears, but the actor is not displayed. A window pops up saying
>> > "vtkpython.exe has stopped working, windows is checking for a solution
>> to
>> > the problem."
>> > To better understand why this is happening, I wrote a simpler mesh file:
>> > áá á7
>> > áá á1 á á á 1.000000000 á á á 0.000000000 á á á 0.000000000
>> > áá á2 á á á 3.000000000 á á á 0.000000000 á á á 0.000000000
>> > áá á3 á á á 0.000000000 á á á 2.000000000 á á á 0.000000000
>> > áá á4 á á á 2.000000000 á á á 2.000000000 á á á 0.000000000
>> > áá á5 á á á 4.000000000 á á á 2.000000000 á á á 0.000000000
>> > áá á6 á á á 1.000000000 á á á 4.000000000 á á á 0.000000000
>> > áá á7 á á á 3.000000000 á á á 4.000000000 á á á 0.000000000
>> > áá á6
>> > áá á1 á á á 3 á á á 1 á á á 4 á á á 3 á á á0 á á á1 á á á á 0.00500
>> > áá á2 á á á 3 á á á 1 á á á 2 á á á 4 á á á0 á á á1 á á á á 0.00500
>> > áá á3 á á á 3 á á á 2 á á á 5 á á á 4 á á á0 á á á1 á á á á 0.00500
>> > áá á4 á á á 3 á á á 3 á á á 4 á á á 6 á á á0 á á á1 á á á á 0.00500
>> > áá á5 á á á 3 á á á 4 á á á 7 á á á 6 á á á0 á á á1 á á á á 0.00500
>> > áá á6 á á á 3 á á á 4 á á á 5 á á á 7 á á á0 á á á1 á á á á 0.00500
>> > When I run the code to display this mesh, it worked.
>> > Mystery. I wonder why? Do you know?
>> > Help much appreciated! á: )
>> > --
>> > Helvin
>> >
>> > "Though the world may promise me more, I'm just made to be filled with
>> the
>> > Lord."
>> >
>> > _______________________________________________
>> > 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 VTK FAQ at:
>> > http://www.vtk.org/Wiki/VTK_FAQ
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://www.vtk.org/mailman/listinfo/vtkusers
>> >
>> >
>>
>>
>>
>>
>> --
>> Helvin
>>
>> "Though the world may promise me more, I'm just made to be filled with the
>> Lord."
>>
>
>
>
> --
> Helvin
>
> "Though the world may promise me more, I'm just made to be filled with the
> Lord."
>



-- 
Helvin

"Though the world may promise me more, I'm just made to be filled with the
Lord."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090826/2da03e7d/attachment.htm>


More information about the vtkusers mailing list