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