Plantilla 3D
Author: Rafael Losada Liste

nada = 1 (slider from 0 to 1, step 1)
a: -2
XC1 = Point(Segment[(0, -5, a), (0, 0, a)])
d = Sequence(abs(y(Object["XC" + (t)])), t, 1, 11)
h = Sequence(z(Object["XC" + (t)]), t, 1, 11)
p2e = Sequence(Sequence[Rotate[Object["XC" + (t)], ((s * 2) * π / 7)], s, 1, 7], t, 1, 11)
extremos = Sequence((0, 0, Element[h, t]), t, 1, 11, 10)
E1: (0, 0, Element[h, 1])
E2: (0, 0, Element[h, 11])
p1e = Sequence(Sequence[Rotate[Object["XC" + (t)], ((s * 2) * π / 5)], s, 1, 5], t, 1, 1)
A = Point(p1e)
B = Point(p1e)
C = Point(p1e)
e = Circle(A, B, C)
A1: 1
A2: 2
A3 = 3
A4 = 4
A5 = 5
A6 = 6
A7 = 7
B1, f, g, i, j, k, l, m, n, p, q, r, s, t = Polygon(E$1, E$2, Element[Element[p2e, 11], A1], Element[Element[p2e, 10], A1], Element[Element[p2e, 9], A1], Element[Element[p2e, 8], A1], Element[Element[p2e, 7], A1], Element[Element[p2e, 6], A1], Element[Element[p2e, 5], A1], Element[Element[p2e, 4], A1], Element[Element[p2e, 3], A1], Element[Element[p2e, 2], A1], Element[Element[p2e, 1], A1])
B2, C2_1, D2, E2_1, F2, G2, H2, I2, J2, K2, L2, M2, N2, O2 = Polygon(E$1, E$2, Element[Element[p2e, 11], A2], Element[Element[p2e, 10], A2], Element[Element[p2e, 9], A2], Element[Element[p2e, 8], A2], Element[Element[p2e, 7], A2], Element[Element[p2e, 6], A2], Element[Element[p2e, 5], A2], Element[Element[p2e, 4], A2], Element[Element[p2e, 3], A2], Element[Element[p2e, 2], A2], Element[Element[p2e, 1], A2])
B3, C3_1, D3, E3, F3, G3, H3, I3, J3, K3, L3, M3, N3, O3 = Polygon(E$1, E$2, Element[Element[p2e, 11], A3], Element[Element[p2e, 10], A3], Element[Element[p2e, 9], A3], Element[Element[p2e, 8], A3], Element[Element[p2e, 7], A3], Element[Element[p2e, 6], A3], Element[Element[p2e, 5], A3], Element[Element[p2e, 4], A3], Element[Element[p2e, 3], A3], Element[Element[p2e, 2], A3], Element[Element[p2e, 1], A3])
B4, C4_1, D4, E4, F4, G4, H4, I4, J4, K4, L4, M4, N4, O4 = Polygon(E$1, E$2, Element[Element[p2e, 11], A4], Element[Element[p2e, 10], A4], Element[Element[p2e, 9], A4], Element[Element[p2e, 8], A4], Element[Element[p2e, 7], A4], Element[Element[p2e, 6], A4], Element[Element[p2e, 5], A4], Element[Element[p2e, 4], A4], Element[Element[p2e, 3], A4], Element[Element[p2e, 2], A4], Element[Element[p2e, 1], A4])
B5, C5_1, D5, E5, F5, G5, H5, I5, J5, K5, L5, M5, N5, O5 = Polygon(E$1, E$2, Element[Element[p2e, 11], A5], Element[Element[p2e, 10], A5], Element[Element[p2e, 9], A5], Element[Element[p2e, 8], A5], Element[Element[p2e, 7], A5], Element[Element[p2e, 6], A5], Element[Element[p2e, 5], A5], Element[Element[p2e, 4], A5], Element[Element[p2e, 3], A5], Element[Element[p2e, 2], A5], Element[Element[p2e, 1], A5])
B6, C6_1, D6, E6, F6, G6, H6, I6, J6, K6, L6, M6, N6, O6 = Polygon(E$1, E$2, Element[Element[p2e, 11], A6], Element[Element[p2e, 10], A6], Element[Element[p2e, 9], A6], Element[Element[p2e, 8], A6], Element[Element[p2e, 7], A6], Element[Element[p2e, 6], A6], Element[Element[p2e, 5], A6], Element[Element[p2e, 4], A6], Element[Element[p2e, 3], A6], Element[Element[p2e, 2], A6], Element[Element[p2e, 1], A6])
B7, C7_1, D7, E7, F7, G7, H7, I7, J7, K7, L7, M7, N7, O7 = Polygon(E$1, E$2, Element[Element[p2e, 11], A7], Element[Element[p2e, 10], A7], Element[Element[p2e, 9], A7], Element[Element[p2e, 8], A7], Element[Element[p2e, 7], A7], Element[Element[p2e, 6], A7], Element[Element[p2e, 5], A7], Element[Element[p2e, 4], A7], Element[Element[p2e, 3], A7], Element[Element[p2e, 2], A7], Element[Element[p2e, 1], A7])
esc: 0.8
XC2 = Point(Segment[(0, -5, a + esc), (0, 0, a + esc)])
XC3 = Point(Segment[(0, -5, a + (2 * esc)), (0, 0, a + (2 * esc))])
XC4 = Point(Segment[(0, -5, a + (3 * esc)), (0, 0, a + (3 * esc))])
XC5 = Point(Segment[(0, -5, a + (4 * esc)), (0, 0, a + (4 * esc))])
XC6 = Point(Segment[(0, -5, a + (5 * esc)), (0, 0, a + (5 * esc))])
XC7 = Point(Segment[(0, -5, a + (6 * esc)), (0, 0, a + (6 * esc))])
XC8 = Point(Segment[(0, -5, a + (7 * esc)), (0, 0, a + (7 * esc))])
XC9 = Point(Segment[(0, -5, a + (8 * esc)), (0, 0, a + (8 * esc))])
XC10 = Point(Segment[(0, -5, a + (9 * esc)), (0, 0, a + (9 * esc))])
XC11 = Point(Segment[(0, -5, a + (10 * esc)), (0, 0, a + (10 * esc))])

Tool: P3D
Inclinación, Rotación, Lista de tres coordenadas
Input: α, β, puntoLista
Output: P3D

puntoLista: {0, 0, 4}
p_x = Element(puntoLista, 1)
p_y = Element(puntoLista, 2)
p_z = Element(puntoLista, 3)
P3D: ((p_x * sin(β)) + (p_y * cos(β)), (((-p_x) * cos(β)) * sin(α)) + ((p_y * sin(β)) * sin(α)) + (p_z * cos(α)))