Punkty do sterowania (animacji) oznaczyłem kolorem żółtym.

A = (-14, 8)
B = (8, 8)
C = (8, -8)
D = (-14, -8)
q1, a, b, c, d = Polygon(A, B, C, D)
E = Point(xAxis)
F = Point(yAxis)
e = Circle(E, F)
G = (1, 0)
f = Circle(F, G)
H = (-7, 6)
I = (-6, 6)
g = Circle(H, I)
J = (-7, -6)
K = (-6, -6)
h = Circle(J, K)
L = (6, 6)
M = (7, 6)
k = Circle(L, M)
O = (7, -6)
N = (6, -6, 0)
p = Circle(N, O, xOyPlane)
P = (9, 8)
Q = (9, -8)
R = (8, -8)
q2, b_1, p_1, q, r = Polygon(B, P, Q, R)
S = (11, -8)
T = (11, -1)
U = (9, -1)
q3, q_1, s, t, u = Polygon(Q, S, T, U)
V = (11, 8)
W = (11, 1)
Z = Point(p_1)
q4, p_2, v, w, z_1 = Polygon(P, V, W, Z)
A_1 = Point(k)
B_1 = Point(g)
q5, h_1, l, a_1, i = Polygon(H, L, A_1, B_1)
q6, h_2, i_1, k_1, j = Polygon(H, I, K, J)
C_1 = Point(p)
D_1 = Intersect(h, j, 1)
q7, j_1, n, c_1, d_1 = Polygon(J, N, C_1, D_1)
E_1 = Intersect(k, h_1, 1)
F_1 = (6, 1)
G_1 = (5, 1, 0)
q8, e_1, l_1, f_1, g_1 = Polygon(E_1, L, F_1, G_1)
J_1 = Intersect(j_1, p, 1)
q10, z_2, w_1, t_1, u_1 = Polygon(Z, W, T, U)
K_1 = Point(l_1)
L_1 = (8, 2)
M_1 = (8, 1)
q11, s_1, f_2, g_2, i_2 = Polygon(K_1, L_1, M_1, F_1)
N_1 = (8, -1)
O_1 = (8, -1)
m_2 = OrthogonalLine(E, xOyPlane)
n_2 = OrthogonalLine(F, xOyPlane)
Q_1 = Point(m_2)
o, c_2, d_2, v_1 = Cylinder(E, Q_1, 2)
R_1 = Point(n_2)
a_2, e_2, q_2, b_2 = Cylinder(F, R_1, 1)
S_1 = Point(m_2)
T_1 = Point(n_2)
o_2, r_2, s_2 = Cone(Q_1, S_1, 2)
t_2, c_3, u_2 = Cone(R_1, T_1, 1)
f_3 = OrthogonalLine(H, xOyPlane)
g_3 = OrthogonalLine(L, xOyPlane)
h_3 = OrthogonalLine(N, xOyPlane)
i_3 = OrthogonalLine(J, xOyPlane)
W1: (6, -6, 3)
WA: (6, -6, 2)
WB: (6, 6, 2)
WC: (-7, -6, 2)
WD: (-7, 6, 2)
v_2, d_3, e_3, w_2 = Cylinder(J, WC, 1)
a_3, k_3, p_3, b_3 = Cylinder(H, WD, 1)
j_3, q_3, r_3, l_3 = Cylinder(N, WA, 1)
m_3, s_3, t_3, n_3 = Cylinder(L, WB, 1)
WE: (6, -6, 2.5)
WF: (6, 6, 2.5)
WG: (-7, -6, 2.5)
WH: (-7, 6, 2.5)
o_3, c_4, u_3 = Cone(WC, WG, 1)
v_3, d_4, w_3 = Cone(WD, WH, 1)
a_4, e_4, b_4 = Cone(WA, WE, 1)
f_4, g_4, h_4 = Cone(WB, WF, 1)
i_4, U_1, V_1, W_1, Z_1, powierzchnia1, powierzchnia3, powierzchnia4, powierzchnia2, powierzchnia5, krawędź1, krawędź2, krawędź4, krawędź3, krawędź5, krawędź7, krawędź8, krawędź6 = Prism(q6, 1)
j_4, A_2, B_2, C_2, D_2, powierzchnia6, powierzchnia8, powierzchnia9, powierzchnia7, powierzchnia10, krawędź9, krawędź10, krawędź11, krawędź12, krawędź13, krawędź15, krawędź16, krawędź14 = Prism(q7, 1)
k_4, E_2, F_2, G_2, H_2, powierzchnia11, powierzchnia13, powierzchnia14, powierzchnia12, powierzchnia15, krawędź17, krawędź18, krawędź19, krawędź20, krawędź21, krawędź23, krawędź24, krawędź22 = Prism(q5, 1)
m_4, M_2, N_2, O_2, P_2, powierzchnia21, powierzchnia22, powierzchnia24, powierzchnia23, powierzchnia25, krawędź34, krawędź33, krawędź35, krawędź36, krawędź37, krawędź39, krawędź40, krawędź38 = Prism(q8, -1)
o_4, U_2, V_2, W_2, Z_2, powierzchnia33, powierzchnia34, powierzchnia32, powierzchnia31, powierzchnia35, krawędź50, krawędź51, krawędź52, krawędź49, krawędź53, krawędź55, krawędź56, krawędź54 = Prism(q11, 1.5)
q_4, B_3, powierzchnia40, powierzchnia42, powierzchnia43, powierzchnia41, krawędź61, krawędź62, krawędź63, krawędź64 = Pyramid(powierzchnia35, -0.5)
r_4, C_3, D_3, E_3, F_3, powierzchnia44, powierzchnia46, powierzchnia47, powierzchnia45, powierzchnia48, krawędź65, krawędź66, krawędź67, krawędź68, krawędź69, krawędź71, krawędź72, krawędź70 = Prism(q2, -0.5)
H_1 = Point(j_1)
P_1 = (5, -1)
I_1 = (6, -1, 0)
q9, m, n_1, m_1, r_1 = Polygon(H_1, N, I_1, P_1)
I_2 = Point(b)
J_2 = Point(n_1)
q12, j_2, o_1, k_2, l_2 = Polygon(I_1, O_1, I_2, J_2)
l_4, K_2, L_2, Q_2, R_2, powierzchnia16, powierzchnia17, powierzchnia19, powierzchnia18, powierzchnia20, krawędź26, krawędź25, krawędź27, krawędź28, krawędź29, krawędź31, krawędź32, krawędź30 = Prism(q9, 1)
n_4, S_2, T_2, A_3, G_3, powierzchnia26, powierzchnia27, powierzchnia29, powierzchnia28, powierzchnia30, krawędź42, krawędź41, krawędź43, krawędź44, krawędź45, krawędź47, krawędź48, krawędź46 = Prism(q12, -1.5)
p_4, H_3, powierzchnia36, powierzchnia38, powierzchnia39, powierzchnia37, krawędź57, krawędź58, krawędź59, krawędź60 = Pyramid(powierzchnia30, -0.5)
s_4, I_3, powierzchnia49, powierzchnia51, powierzchnia52, powierzchnia50, krawędź73, krawędź74, krawędź75, krawędź76 = Pyramid(powierzchnia5, -0.25)
t_4, J_3, powierzchnia53, powierzchnia55, powierzchnia56, powierzchnia54, krawędź77, krawędź78, krawędź79, krawędź80 = Pyramid(powierzchnia10, 0.25)
u_4, K_3, powierzchnia57, powierzchnia59, powierzchnia60, powierzchnia58, krawędź81, krawędź82, krawędź83, krawędź84 = Pyramid(powierzchnia15, -0.25)
v_4, L_3, powierzchnia61, powierzchnia63, powierzchnia64, powierzchnia62, krawędź85, krawędź86, krawędź87, krawędź88 = Pyramid(powierzchnia20, 0.25)
w_4, M_3, powierzchnia65, powierzchnia67, powierzchnia68, powierzchnia66, krawędź89, krawędź90, krawędź91, krawędź92 = Pyramid(powierzchnia25, -0.25)
c_5 = CircleArc(O_1, T_2, U)
d_5 = CircleArc(M_1, W_2, Z)
N_3 = Point(d_5)
f_5 = OrthogonalLine(N_3, d_5)
O_3 = Intersect(f_5, c_5, 1)
q13, g_5, h_5, i_5, j_5 = Polygon(O_3, N_3, M_1, O_1)
P_3 = Point(xAxis)
k_5 = OrthogonalLine(P_3, xOyPlane)
Q_3 = Point(k_5)
l_5 = Segment(P_3, Q_3)
R_3 = Point(l_5)
e_5 = Circle(R_3, 1, k_5)
T_3 = Point(e_5)
m_5 = Segment(R_3, T_3)
p_5 = Circle(R_3, 0.25, yAxis)
q_5 = Circle(R_3, 0.5, yAxis)
S_3, U_3 = Intersect(l_5, p_5)
V_3, W_3 = Intersect(l_5, q_5)
n_5 = Line(U_3, m_5)
r_5 = Line(W_3, m_5)
s_5 = Line(T_3, l_5)
Z_3 = Intersect(n_5, s_5)
A_4 = Intersect(r_5, s_5)
q14, t_5, a_5, z_3, b_5 = Polygon(R_3, T_3, Z_3, U_3)
q15, f_6, g_6, h_6, i_6 = Polygon(U_3, Z_3, A_4, W_3)
j_6 = Segment(T_2, O_3)
k_6 = Segment(W_2, N_3)
B_4 = Intersect(a_1, i_1)
C_4 = Intersect(a_1, g_1)
D_4 = Intersect(c_1, r_1)
E_4 = Intersect(i_1, c_1)
q16, l_6, m_6, n_6, p_6 = Polygon(B_4, C_4, D_4, E_4)