import vtk def loadStl(fname): """Load the given STL file, and return a vtkPolyData object for it.""" reader = vtk.vtkSTLReader() reader.SetFileName(fname) reader.Update() polydata = reader.GetOutput() return polydata def polyDataToActor(polydata): """Wrap the provided vtkPolyData object in a mapper and an actor, returning the actor.""" mapper = vtk.vtkPolyDataMapper() mapper.SetInputData(polydata) actor = vtk.vtkActor() actor.SetMapper(mapper) return actor # Create a rendering window and renderer ren = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) # Create a RenderWindowInteractor to permit manipulating the camera iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) style = vtk.vtkInteractorStyleTrackballCamera() iren.SetInteractorStyle(style) stlFilename = "out.stl" polydata = loadStl(stlFilename) ren.AddActor(polyDataToActor(polydata)) # Enable user interface interactor iren.Initialize() renWin.Render() iren.Start()