I will summarize how to output data in .stl`` .ply
.vtk
format with vtk.
Please obtain the data to be read from the following
terminal
$ git clone https://github.com/matsubaraDaisuke/vtk-data-set.git
$ cd vtk-data-set
$ cd geometry && ls
import vtk
# reader
filename = "flange.stl"
reader = vtk.vtkSTLReader()
reader.SetFileName(filename)
reader.Update()
# filter
filter = vtk.vtkGeometryFilter()
filter.SetInputConnection(reader.GetOutputPort())
filter.Update()
# mapper
mapper = vtk.vtkCompositePolyDataMapper2()
mapper.SetInputConnection(filter.GetOutputPort()) #Set filter in mapper
mapper.SetScalarModeToUseCellFieldData() #Set for scalar data
# actor
actor = vtk.vtkActor()
actor.SetMapper(mapper) #Set mapper for actor
actor.GetProperty().EdgeVisibilityOn()
# renderer
renderer = vtk.vtkRenderer()
renderer.AddActor(actor) #Set actor in renderer
##Background color setting
renderer.GradientBackgroundOn() #Set gradient background
renderer.SetBackground2(0.2,0.4,0.6) #Top color
renderer.SetBackground(1,1,1) #Bottom color
#Window
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(renderer) #Set renderer in Window
iren = vtk.vtkRenderWindowInteractor();
iren.SetRenderWindow(renWin);
renWin.SetSize(850, 850)
renWin.Render()
iren.Start();
When outputting CAD data, comment out because mapper
to ʻiren` are unnecessary.
vtkSTLWriter
When outputting .stl
class reference https://vtk.org/doc/nightly/html/classvtkSTLWriter.html
writer = vtk.vtkSTLWriter()
writer.SetFileName("output.stl")
writer.SetInputConnection(filter.GetOutputPort())
writer.Write()
vtkPolyDataWriter
When outputting .ply
class reference https://vtk.org/doc/nightly/html/classvtkPolyDataWriter.html
writer = vtk.vtkPolyDataWriter()
writer.SetFileName("output.vtk")
writer.SetInputConnection(filter.GetOutputPort())
writer.Write()
vtkPLYWriter
When outputting .vtk
class reference https://vtk.org/doc/nightly/html/classvtkPLYWriter.html
writer = vtk.vtkPLYWriter()
writer.SetFileName("output.ply")
writer.SetInputConnection(filter.GetOutputPort())
writer.Write()