#!/usr/bin/env python # -*- coding: utf-8 -*- import vtk r = 1.0 # radius of cylinder rh = 0.90 # radius of the hole angle = 45.0 # angle of cylinder and hole axes nres = 100 cylinder1=vtk.vtkCylinderSource() cylinder1.SetCenter(0.0,0.0,0.0) cylinder1.SetHeight(3.0*r) cylinder1.SetRadius(r) cylinder1.SetResolution(nres) cylinder1.CappingOff() tranc1 = vtk.vtkTransform() tranc1.RotateZ(angle) tranf1 = vtk.vtkTransformPolyDataFilter() tranf1.SetInputConnection(cylinder1.GetOutputPort()) tranf1.SetTransform(tranc1) cyl1 = vtk.vtkCylinder() cyl1.SetCenter(0.0,0.0,0.0) cyl1.SetRadius(rh) clipper = vtk.vtkClipPolyData() clipper.SetInputConnection(tranf1.GetOutputPort()) clipper.SetClipFunction(cyl1) clipper.GenerateClippedOutputOn() mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(clipper.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) ren = vtk.vtkRenderer() ren.AddActor(actor) renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() renWin.Render() iren.Start()