A = (1, 1)
B = (2.545909090909097, 1.4954545454545454)
poly1, a, b, c, d, e, C, D, E = Polygon(A, B, 5)
f = OrthogonalLine(B, b)
g = Line(C, f)
S: (x(B) + 3.8, y(B))
h = Line(S, b)
F = Intersect(g, h)
poly2, b_1, s, f_1, c_1 = Polygon(B, S, F, C)
i, G, H, I, J, K, faceABHG, faceBCIH, faceCDJI, faceDEKJ, faceAEKG, faceGHIJK_1, arêteAG, arêteBH, arêteCI, arêteDJ, arêteEK, arêteGH_1, arêteHI_1, arêteIJ_1, arêteJK_1, arêteGK_1 = Prism(poly1, 3)
j, L, M, N, O, faceBLMS, faceFNMS_1, faceCFNO, faceBCOL, faceLMNO, arêteBL, arêteMS_1, arêteFN_1, arêteCO, arêteLM, arêteMN_1, arêteNO, arêteLO = Prism(poly2, 3)
P = Point(poly1)
Q = Point(poly1)
k = Segment(P, D)
l = Segment(B, Q)
R = Intersect(k, l)
T: (x(R), y(R), 5)
m, faceGHIJK, faceGHT, faceHIT, faceIJT, faceJKT, faceGKT, arêteGH, arêteHI, arêteIJ, arêteJK, arêteGK, arêteGT, arêteHT, arêteIT, arêteJT, arêteKT = Pyramid(G, H, I, J, K, T)
n = Segment(S, N)
p = Segment(M, F)
U = Intersect(n, p)
V: (x(U) + 2, y(U), z(U))
o, faceFNMS, faceMNV, faceMSV, faceFSV, faceFNV, arêteMN, arêteMS, arêteFS, arêteFN, arêteNV, arêteMV, arêteSV, arêteFV = Pyramid(N, M, S, F, V)
q = Segment(B, M)
r = Segment(H, S)
W = Intersect(r, q)
t = Segment(F, I)
a_1 = Segment(N, C)
Z = Intersect(a_1, t)
d_1 = Segment(W, Z)
u, e_1, g_1, v = Cylinder(Z, W, 0.5)