ControlAgujero = Point(Ray[(0, 0, 0), Vector[(0, 0, 1)]])
a = Plane(ControlAgujero, xOyPlane)
E = Point(Ray[ControlAgujero, Vector[(0, 0, 1)]])
b = Plane(E, xOyPlane)
f = Line(ControlAgujero, xAxis)
H = Point(f)
F = Mirror(H, ControlAgujero)
O = Rotate(H, 90°, ControlAgujero)
G = Mirror(O, ControlAgujero)
polígono1, d, c', c'_1, c = Polygon(G, F, O, H)
P = PointIn(b)
e = Circle(E, P, b)
g = OrthogonalLine(E, Segment[E, P], b)
F_1, G_1 = Intersect(g, e)
h = Semicircle(F_1, G_1, b)
N = Point(h)
Q = Point(h)
polígono2, i, e_1, h_1 = Polygon(P, N, Q)
j = Line(E, G)
k = Line(E, H)
l = Line(E, O)
m = Line(E, F)
H' = Intersect(k, xOyPlane)
G' = Intersect(j, xOyPlane)
O' = Intersect(l, xOyPlane)
F' = Intersect(m, xOyPlane)
polígono3, m_1, k_1, j_1, l_1 = Polygon(F', G', H', O')
n = Segment(F', E)
p = Segment(O', E)
q = Segment(G', E)
r = Segment(H', E)
X = Point(c)
s = Line(P, X)
t = Line(Q, X)
f_1 = Line(N, X)
P' = Intersect(s, xOyPlane)
N' = Intersect(f_1, xOyPlane)
Q' = Intersect(t, xOyPlane)
polígono4, d_1, b_1, c_1 = Polygon(P', N', Q')
g_1 = Segment(P', P)
i_1 = Segment(N', N)
n_1 = Segment(Q, Q')
p_1 = Line(P, G)
q_1 = Line(Q, G)
r_1 = Line(N, G)
B = Intersect(p_1, xOyPlane)
C = Intersect(r_1, xOyPlane)
D = Intersect(q_1, xOyPlane)
polígono5, b_2, c_2, d_2 = Polygon(C, D, B)
s_1 = Line(P, F)
t_1 = Line(Q, F)
a_1 = Line(N, F)
I = Intersect(s_1, xOyPlane)
J = Intersect(a_1, xOyPlane)
K = Intersect(t_1, xOyPlane)
polígono6, i_2, j_2, k_2 = Polygon(J, K, I)
f_2 = Line(N, O)
g_2 = Line(Q, O)
h_2 = Line(P, O)
L = Intersect(h_2, xOyPlane)
M = Intersect(g_2, xOyPlane)
R = Intersect(f_2, xOyPlane)
polígono7, r_2, m_2, l_2 = Polygon(M, L, R)
n_2 = Line(P, H)
p_2 = Line(N, H)
q_2 = Line(Q, H)
T = Intersect(q_2, xOyPlane)
U = Intersect(n_2, xOyPlane)
V = Intersect(p_2, xOyPlane)
polígono8, t_2, v, u = Polygon(V, U, T)