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

Helvin Lui helvinlui at gmail.com
Sun Aug 23 17:12:28 EDT 2009


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."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090824/4248b7d6/attachment.htm>


More information about the vtkusers mailing list