I used vtkextrusion to extrude a 3D STL of bone. But after using the code below it just duplicated it for me.
this is my code:
import vtk
filename = "the file"
#First STL file
reader = vtk.vtkSTLReader()
reader.SetFileName(filename)
extrude = vtk.vtkLinearExtrusionFilter()
extrude.SetInputConnection(reader.GetOutputPort())
extrude.SetExtrusionTypeToNormalExtrusion()
extrude.SetVector(0, 50, 1)
extrude.Update()
mapper = vtk.vtkPolyDataMapper()
if vtk.VTK_MAJOR_VERSION <= 5:
mapper.SetInput(extrude.GetOutput())
else:
mapper.SetInputConnection(extrude.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
# Create a rendering window and renderer
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
# Create a renderwindowinteractor
iren = vtk.vtkRenderWindowInteractor()
iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballActor())
iren.SetRenderWindow(renWin)
# Assign actor to the renderer
ren.AddActor(actor)
# Enable user interface interactor
ren.ResetCamera()
iren.Initialize()
renWin.Render()
iren.Start()
and here is the output