How to optimize and add code to complete this Conical Frustum?

Conical Frustum Its parameters are as follows:

In the right -angle trapezoid AA1B1B, A1B1 is parallel to AB, AA1 is vertical and AB, AB = AA1 = 2A1B1 = 6, right -angle trapezoid AA1B1B around the straight corner AA1 to get the round platform A1A in the picture above. On the BC, the size of the two-sided angle B1-AA1-C1 is α, and the size of α can be adjusted, and it is not sure

The final effect I want is to draw the image below without coloring the surface. Draw the corresponding lines. Just the same as in the figure below.

My personal attempt is to use parametric equations to draw the contour of a circular frustum.

The code is as follows:

With[{a = 6, b = 3, h = 6},
ParametricPlot3D[{((a (h - u) + b u) Cos[v])/
h, ((a (h - u) + b u) Sin[v])/h, u}, {v, 0, 2 \[Pi]}, {u, 0, h}]]


The generated image has been colored on the surface, and there are still many generatrix lines on the surface. None of these are needed. According to the given target picture, add the middle right angled trapezoid, several line segments and three coordinate axes of the space Cartesian coordinate system system.

Update1:@cvgmt Thanks for your help. Now the vertex letter annotation has been added.

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]],
circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]


UPDATE 2:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]


UPDATE 3:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 2/3}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]


Update 4:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 2/3}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]



Update 5:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/3}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]



Update 6:


Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 4/5}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}, {c1, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]



UPDATE 7:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 4/5}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed, AbsoluteThickness[2],
Line[{{a, b1}, {a, b}, {a1, a}, {b, c}, {n, q}, {p, n}, {c1,
n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[\[Pi]], circle1[\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines, labels}],
Graphics3D[{Thick, Dashed,
Line[{a, p}, VertexColors -> {Blue, Orange}]}],
Graphics3D[{Thick, Dashed, Red, Line[{q, p}]}],
Graphics3D[{Thick, Dashed, Red, Line[{a, q}]}],
Graphics3D[{Thick, Dashed, Green, Line[{a, c}]}],
Graphics3D[{Thick, Dashed, Green, Line[{p, c}]}], cir1, cir2,
Boxed -> False, Axes -> False, ViewPoint -> {-0.29, -3.26, 0.84}]


UPDATE 8:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed,
AbsoluteThickness[2], {Thick, Dashed, Green, Line[{a, c}],
Line[{a, p}]},
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]],
circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]


Update 9:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(\[Pi]/2)];
b = circle[-(\[Pi]/2)];
c1 = circle1[-(\[Pi]/2) + \[Alpha]];
c = circle[-(\[Pi]/2) + \[Alpha]];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed,
AbsoluteThickness[2], {Blue, Line[{a, c}]}, {Red,
Line[{{a, p}, {c, p}, {a, q}, {c, q}}]},
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[-(\[Pi]/2) + \[Alpha] + \[Pi]],
circle1[-(\[Pi]/2) + \[Alpha] + \[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]


Update 10:

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; \[Alpha] = 120 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-\[Alpha]];
b = circle[-\[Alpha]];
c1 = circle1[0];
c = circle[0];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
labels = {Text[Style[A, 12, FontFamily -> "Times"], a, {2, -1}],
Text[Style[A1, 12, FontFamily -> "Times"], a1, {1, -1}],
Text[Style[B, 12, FontFamily -> "Times"], b, {1, 2}],
Text[Style[B1, 12, FontFamily -> "Times"], b1, {-2, 1}],
Text[Style[C, 12, FontFamily -> "Times"], c, {-2, 0}],
Text[Style[C1, 12, FontFamily -> "Times"], c1, {-1, -1}],
Text[Style[P, 12, FontFamily -> "Times"], p, {-2, 0}],
Text[Style[Q, 12, FontFamily -> "Times"], q, {-1, 1}],
Text[Style[N, 12, FontFamily -> "Times"], n, {0, 1}]};
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 \[Pi]},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 \[Pi]}, Mesh -> {{\[Pi]}},
dashLines = {Dashed,
AbsoluteThickness[2], {Blue, Line[{a, c}]}, {Red,
Line[{{a, p}, {c, p}, {a, q}, {c, q}}]},
Line[{{a, b1}, {a, b}, {a1, a}, {a, q}, {b, c}, {a, c}, {p, a}, {p,
q}, {n, q}, {p, n}}]};
realLines = {AbsoluteThickness[2],
Line[{{a1, b1}, {a1, c1}, {b1, b}, {c1, c}}]};
boundaryLines = {AbsoluteThickness[2],
Line[{circle[-\[Pi]], circle1[-\[Pi]]}]};
Show[Graphics3D[{dashLines, realLines, boundaryLines,
labels}], cir1, cir2, Boxed -> False, Axes -> False,
ViewPoint -> {-0.29, -3.26, 0.84}]

• I think, you can draw by 3dtools here. Aug 16 at 0:29

Clear["Global*"];
r1 = 3; r = 6; h = 6;
a = {0, 0, 0}; a1 = {0, 0, h}; α = 90 Degree;
circle1[t_] = r1 {Cos[t], Sin[t], 0} + a1;
circle[t_] = r {Cos[t], Sin[t], 0};
b1 = circle1[-(π/2)];
b = circle[-(π/2)];
c1 = circle1[-(π/2) + α];
c = circle[-(π/2) + α];
q = Block[{t = 1/2}, {1 - t, t} . {b, c}];
n = a + r1*Normalize[c - a];
p = Block[{t = 1/2}, {1 - t, t} . {c1, c}];
cir1 = ParametricPlot3D[circle1[t], {t, 0, 2 π},
PlotStyle -> Black];
cir2 = ParametricPlot3D[circle[t], {t, 0, 2 π}, Mesh -> {{π}},
`