import vtk import slicer colors = vtk.vtkNamedColors() planeS4 = vtk.vtkPlaneSource() planeS4.SetOrigin(0, 0, 0) planeS4.SetPoint2(200, 0, 0) planeS4.SetPoint1(0, 200, 0) planeS4.Update() planeS4.SetCenter(0, 0, 0) planeS4.SetXResolution(200) planeS4.SetYResolution (200) planeS4.SetNormal(1, 0, 0) planeS4.Update() cylinder1 = vtk.vtkCylinder() cylinder1.SetRadius(29); cylinder1.SetCenter(0, 0, 0); cylinder1.SetAxis(1, 0, 0); cylinder2 = vtk.vtkCylinder() cylinder2.SetRadius(30); cylinder2.SetCenter(0, 0, 0); cylinder2.SetAxis(1, 0, 0); clipperC1 = vtk.vtkClipPolyData() clipperC1.SetInputData(planeS4.GetOutput()) clipperC1.GenerateClippedOutputOn(); clipperC1.SetClipFunction(cylinder1); clipperC1.Update(); clipperC2 = vtk.vtkClipPolyData() clipperC2.SetInputData(clipperC1.GetOutput()) clipperC2.GenerateClippedOutputOn() clipperC2.SetClipFunction(cylinder2) clipperC2.Update(); # extrude extrude = vtk.vtkLinearExtrusionFilter() extrude.SetInputData(clipperC2.GetClippedOutput()) extrude.SetExtrusionTypeToVectorExtrusion(); extrude.SetVector(1, 0, 0) extrude.CappingOn() extrude.SetScaleFactor(30) extrude.Update() polyData = extrude.GetOutput() cylinder1a = vtk.vtkCylinder() cylinder1a.SetRadius(10); cylinder1a.SetCenter(15 , 0 , 0); cylinder1a.SetAxis(0, 0, 1); clipperloch1 = vtk.vtkClipPolyData() clipperloch1.SetInputData(polyData) clipperloch1.SetClipFunction(cylinder1a); clipperloch1.Update(); mapper2 = vtk.vtkPolyDataMapper() mapper2.SetInputData(clipperloch1.GetOutput()) actor2 = vtk.vtkActor() actor2.GetProperty().SetColor(colors.GetColor3d("Cornsilk")) actor2.SetMapper(mapper2) # Create a renderer, render window, and interactor renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetWindowName("TaperedCylinder") renderWindow.AddRenderer(renderer) renderWindowInteractor = vtk.vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) # Add the actors to the scene renderer.AddActor(actor2) renderer.SetBackground(colors.GetColor3d("DarkGreen")) # Render and interact renderWindow.Render() renderWindowInteractor.Start()