1. Block[
    2. {r1, r2, m, h1, h2, c1, c2, m2, mc1, mc2, t1, t2, ht, cone, slope,
    3. plane},
    4. {r1, r2} = {1.4, 3.4};
    5. m = Tan[70.*Degree];
    6. h1 := r1*Sqrt[1 + m^2];
    7. h2 := r2*Sqrt[1 + m^2];
    8. c1 := {0, 0, h1};
    9. c2 := {0, 0, h2};
    10. m2 = {0, mc1 + h1};
    11. mc2 = mc1*r2/r1;
    12. mc1 = (r1 (h2 - h1))/(r1 + r2);
    13. t1 = c1 + r1*{-Sqrt[1 - r1^2/mc1^2], 0, r1/mc1};
    14. t2 = c2 + r2*{Sqrt[1 - r2^2/mc2^2], 0, -r2/mc2};
    15. ht = 1.2*(h2 + r2);
    16. cone[m_, h_] :=
    17. RevolutionPlot3D[
    18. {t, m t}, {t, 0, h/m}, Mesh -> False][[1]];
    19. slope = (t2[[3]] - t1[[3]])/(t2[[1]] - t1[[1]]);
    20. plane = ParametricPlot3D[
    21. {t, u, slope*t + m2[[2]]}, {t, -2 m, 12/m}, {u, -3, 3},
    22. Boxed -> False, Axes -> False
    23. ][[1]];
    24. Graphics3D[{{Opacity@0.45, cone[m, 1.2*(h2 + r2)]},
    25. {Opacity@0.5, Sphere[c1, r1], Sphere[c2, r2]},
    26. {Opacity@0.5, plane}, PointSize@0.0175, Point[t1], Point[t2]},
    27. Boxed -> False]
    28. ]

    image.png