Hi everyone! :-)<div><br></div><div>I have written a function that imports a mesh from a .txt file. </div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
def displayMesh(file_path):<br> 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 assign to point_coord<br>
# else the whole thing is split into single numbers<br> #print point_info # Check reading<br> point_ID = (int(point_info[0])-1) # -1 because the IDs need to 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() #<a href="http://www.vtk.org/doc/nightly/html/classvtkRenderer.html#b14d1aeb74a4990f2da819e09d028d65">http://www.vtk.org/doc/nightly/html/classvtkRenderer.html#b14d1aeb74a4990f2da819e09d028d65</a><br>
cam1 = ren.GetActiveCamera()<br> <br> ## Render the scene and start interaction.<br> iren.Initialize()<br> renWin.Render()<br> iren.Start()</blockquote><div><br></div><div>My goal is to display this particular file:</div>
<div><br></div><div><div> 44</div><div> 1 0.000000000 0.000000000 0.000000000</div><div> 2 0.100000001 0.000000000 0.000000000</div><div> 3 0.200000003 0.000000000 0.000000000</div>
<div> 4 0.300000012 0.000000000 0.000000000</div><div> 5 0.400000006 0.000000000 0.000000000</div><div> 6 0.500000000 0.000000000 0.000000000</div><div> 7 0.600000024 0.000000000 0.000000000</div>
<div> 8 0.699999988 0.000000000 0.000000000</div><div> 9 0.800000012 0.000000000 0.000000000</div><div> 10 0.900000036 0.000000000 0.000000000</div><div> 11 1.000000000 0.000000000 0.000000000</div>
<div> 12 0.000000000 0.066666670 0.000000000</div><div> 13 0.100000001 0.066666670 0.000000000</div><div> 14 0.200000003 0.066666670 0.000000000</div><div> 15 0.300000012 0.066666670 0.000000000</div>
<div> 16 0.400000006 0.066666670 0.000000000</div><div> 17 0.500000000 0.066666670 0.000000000</div><div> 18 0.600000024 0.066666670 0.000000000</div><div> 19 0.699999988 0.066666670 0.000000000</div>
<div> 20 0.800000012 0.066666670 0.000000000</div><div> 21 0.900000036 0.066666670 0.000000000</div><div> 22 1.000000000 0.066666670 0.000000000</div><div> 23 0.000000000 0.133333340 0.000000000</div>
<div> 24 0.100000001 0.133333340 0.000000000</div><div> 25 0.200000003 0.133333340 0.000000000</div><div> 26 0.300000012 0.133333340 0.000000000</div><div> 27 0.400000006 0.133333340 0.000000000</div>
<div> 28 0.500000000 0.133333340 0.000000000</div><div> 29 0.600000024 0.133333340 0.000000000</div><div> 30 0.699999988 0.133333340 0.000000000</div><div> 31 0.800000012 0.133333340 0.000000000</div>
<div> 32 0.900000036 0.133333340 0.000000000</div><div> 33 1.000000000 0.133333340 0.000000000</div><div> 34 0.000000000 0.200000018 0.000000000</div><div> 35 0.100000001 0.200000018 0.000000000</div>
<div> 36 0.200000003 0.200000018 0.000000000</div><div> 37 0.300000012 0.200000018 0.000000000</div><div> 38 0.400000006 0.200000018 0.000000000</div><div> 39 0.500000000 0.200000018 0.000000000</div>
<div> 40 0.600000024 0.200000018 0.000000000</div><div> 41 0.699999988 0.200000018 0.000000000</div><div> 42 0.800000012 0.200000018 0.000000000</div><div> 43 0.900000036 0.200000018 0.000000000</div>
<div> 44 1.000000000 0.200000018 0.000000000</div><div> 60</div><div> 1 3 1 2 13 0 1 0.00500</div><div> 2 3 2 3 14 0 1 0.00500</div>
<div> 3 3 3 4 15 0 1 0.00500</div><div> 4 3 4 5 16 0 1 0.00500</div><div> 5 3 5 6 17 0 1 0.00500</div>
<div> 6 3 6 7 18 0 1 0.00500</div><div> 7 3 7 8 19 0 1 0.00500</div><div> 8 3 8 9 20 0 1 0.00500</div>
<div> 9 3 9 10 21 0 1 0.00500</div><div> 10 3 10 11 22 0 1 0.00500</div><div> 11 3 1 13 12 0 1 0.00500</div>
<div> 12 3 2 14 13 0 1 0.00500</div><div> 13 3 3 15 14 0 1 0.00500</div><div> 14 3 4 16 15 0 1 0.00500</div>
<div> 15 3 5 17 16 0 1 0.00500</div><div> 16 3 6 18 17 0 1 0.00500</div><div> 17 3 7 19 18 0 1 0.00500</div>
<div> 18 3 8 20 19 0 1 0.00500</div><div> 19 3 9 21 20 0 1 0.00500</div><div> 20 3 10 22 21 0 1 0.00500</div>
<div> 21 3 12 13 24 0 1 0.00500</div><div> 22 3 13 14 25 0 1 0.00500</div><div> 23 3 14 15 26 0 1 0.00500</div>
<div> 24 3 15 16 27 0 1 0.00500</div><div> 25 3 16 17 28 0 1 0.00500</div><div> 26 3 17 18 29 0 1 0.00500</div>
<div> 27 3 18 19 30 0 1 0.00500</div><div> 28 3 19 20 31 0 1 0.00500</div><div> 29 3 20 21 32 0 1 0.00500</div>
<div> 30 3 21 22 33 0 1 0.00500</div><div> 31 3 12 24 23 0 1 0.00500</div><div> 32 3 13 25 24 0 1 0.00500</div>
<div> 33 3 14 26 25 0 1 0.00500</div><div> 34 3 15 27 26 0 1 0.00500</div><div> 35 3 16 28 27 0 1 0.00500</div>
<div> 36 3 17 29 28 0 1 0.00500</div><div> 37 3 18 30 29 0 1 0.00500</div><div> 38 3 19 31 30 0 1 0.00500</div>
<div> 39 3 20 32 31 0 1 0.00500</div><div> 40 3 21 33 32 0 1 0.00500</div><div> 41 3 23 24 35 0 1 0.00500</div>
<div> 42 3 24 25 36 0 1 0.00500</div><div> 43 3 25 26 37 0 1 0.00500</div><div> 44 3 26 27 38 0 1 0.00500</div>
<div> 45 3 27 28 39 0 1 0.00500</div><div> 46 3 28 29 40 0 1 0.00500</div><div> 47 3 29 30 41 0 1 0.00500</div>
<div> 48 3 30 31 42 0 1 0.00500</div><div> 49 3 31 32 43 0 1 0.00500</div><div> 50 3 32 33 44 0 1 0.00500</div>
<div> 51 3 23 35 34 0 1 0.00500</div><div> 52 3 24 36 35 0 1 0.00500</div><div> 53 3 25 37 36 0 1 0.00500</div>
<div> 54 3 26 38 37 0 1 0.00500</div><div> 55 3 27 39 38 0 1 0.00500</div><div> 56 3 28 40 39 0 1 0.00500</div>
<div> 57 3 29 41 40 0 1 0.00500</div><div> 58 3 30 42 41 0 1 0.00500</div><div> 59 3 31 43 42 0 1 0.00500</div>
<div> 60 3 32 44 43 0 1 0.00500</div></div><div><br>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."</div>
<div><br></div><div>To better understand why this is happening, I wrote a simpler mesh file:</div><div><br></div><div><div> 7</div><div> 1 1.000000000 0.000000000 0.000000000</div><div> 2 3.000000000 0.000000000 0.000000000</div>
<div> 3 0.000000000 2.000000000 0.000000000</div><div> 4 2.000000000 2.000000000 0.000000000</div><div> 5 4.000000000 2.000000000 0.000000000</div><div> 6 1.000000000 4.000000000 0.000000000</div>
<div> 7 3.000000000 4.000000000 0.000000000</div><div> 6</div><div> 1 3 1 4 3 0 1 0.00500</div><div> 2 3 1 2 4 0 1 0.00500</div>
<div> 3 3 2 5 4 0 1 0.00500</div><div> 4 3 3 4 6 0 1 0.00500</div><div> 5 3 4 7 6 0 1 0.00500</div>
<div> 6 3 4 5 7 0 1 0.00500</div><div><br></div><div>When I run the code to display this mesh, it worked. </div><div>Mystery. I wonder why? Do you know?</div><div><br></div><div>
Help much appreciated! : )</div></div><div><br></div><div>-- <br>Helvin <br><br>"Though the world may promise me more, I'm just made to be filled with the Lord."<br>
</div>