var('r', 't')
P1 = parametric_plot3d((r * cos(t), r * sin(t), 0), (r, 0, 1), (t, 0, 2*pi))
P2 = parametric_plot3d((r * cos(t), r * sin(t), r * cos(t) + 1), (r, 0, 1), (t, 0, 2*pi))
P3 = parametric_plot3d((cos(t), sin(t), z * (cos(t) + 1)), (t, 0, 2*pi), (z, 0, 1))
show(P1+P2+P3)
︠583c6bb5-59c4-4bd8-90b9-9a23f936908d︠
P1 = parametric_plot3d((r * cos(t), r * sin(t), 0), (r, 0, 1), (t, 0, 2*pi))
P2 = parametric_plot3d((r * cos(t), r * sin(t), 2 - 2 * r * cos(t)), (r, 0, 1), (t, -pi/2, pi/2))
P3 = parametric_plot3d((r * cos(t), r * sin(t), 2 + 2 * r * cos(t)), (r, 0, 1), (t, pi/2, 3*pi/2))
P4 = parametric_plot3d((cos(t), sin(t), z * (2 - 2 * cos(t))), (t, -pi/2, pi/2), (z, 0, 1))
P5 = parametric_plot3d((cos(t), sin(t), z * (2 + 2 * cos(t))), (t, pi/2, 3*pi/2), (z, 0, 1))
show(P1+P2+P3+P4+P5)