Plantilla 3D
Author: Rafael Losada Liste

Esquema

Rayo rojo

Rayo naranja

Rayo amarillo

Rayo verde

Rayo azul

Rayo añil

Rayo violeta

Transportador

r = 6
inc = 0.06283185307179587 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
lista1 = Sequence(P3D[inc, ((s * 180) * ° / 3.141592653589793), {r, 0, 0}], s, 1, 5)
c = Conic(Element[lista1, 1], Element[lista1, 2], Element[lista1, 3], Element[lista1, 4], Element[lista1, 5])
P = Point(c)
rot0 = Angle((1, 0), (0, 0), Intersect[Circle[(0, 0), r], Ray[Intersect[xAxis, OrthogonalLine[P, xAxis]], P]])
H = P3D(inc, 270°, {r, 0, 0})
r0 = 10
e = CircleArc((0, 0), (0, r0), ((-r0), 0))
AlturaSol = Point(e)
m = Tangent(AlturaSol, e)
b = OrthogonalLine(H, m)
I = Point(b)
C1 = Intersect(Line[H, Rotate[I, 41.900000000000006°, H]], a)
rot = If(Defined[rot0], rot0, 180°)
r1 = 3
d = Circle((0, 0), r0)
O = (0, 0)
Sol = P3D(inc, 90° + rot, {abs(x(AlturaSol)), 0, y(AlturaSol)})
o = false
C7 = Intersect(Line[H, Rotate[I, 40.1°, H]], a)
C6 = Intersect(Line[H, Rotate[I, 40.4°, H]], a)
C5 = Intersect(Line[H, Rotate[I, 40.70000000000001°, H]], a)
C4 = Intersect(Line[H, Rotate[I, 41°, H]], a)
C3 = Intersect(Line[H, Rotate[I, 41.30000000000001°, H]], a)
C2 = Intersect(Line[H, Rotate[I, 41.6°, H]], a)
lista2 = Sequence(Sequence[P3D[inc, rot, {x((y(Object["C" + (t)]); ((s * 180) * ° / 3.141592653589793))), (-x(Object["C" + (t)])), y((y(Object["C" + (t)]); ((s * 180) * ° / 3.141592653589793)))}], s, 0, 4], t, 1, 7)
listaConicas = Sequence(Conic[Element[Element[lista2, t], 1], Element[Element[lista2, t], 2], Element[Element[lista2, t], 3], Element[Element[lista2, t], 4], Element[Element[lista2, t], 5]], t, 1, 7)
Extremos1 = Sequence(P3D[inc, rot, {x((y(Object["C" + (t)]); 180°)), (-x(Object["C" + (t)])), y((y(Object["C" + (t)]); 180°))}], t, 1, 8)
Extremos2 = Sequence(P3D[inc, rot, {x((y(Object["C" + (t)]); 0)), (-x(Object["C" + (t)])), y((y(Object["C" + (t)]); 0))}], t, 1, 8)
Extremos1b = Sequence(If[x(Element[Extremos1, t]) ≥ x(Element[Extremos2, t]), Element[Extremos1, t], Element[Extremos2, t]], t, 1, 8)
Extremos2b = Sequence(If[x(Element[Extremos1, t]) ≥ x(Element[Extremos2, t]), Element[Extremos2, t], Element[Extremos1, t]], t, 1, 8)
Arcos = Sequence(Arc[Element[listaConicas, t], Element[Extremos1b, t], Element[Extremos2b, t]], t, 1, 7)
a1 = Element(Arcos, 1)
a2 = Element(Arcos, 2)
a3 = Element(Arcos, 3)
a4 = Element(Arcos, 4)
a5 = Element(Arcos, 5)
a6 = Element(Arcos, 6)
a7 = Element(Arcos, 7)
s1 = Segment(C1, H)
s2 = Segment(C2, H)
s3 = Segment(C3, H)
s4 = Segment(C4, H)
s5 = Segment(C5, H)
s6 = Segment(C6, H)
s7 = Segment(C7, H)
s1a: {Segment[C1, P], Segment[Intersect[a1, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a1, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a1, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a1, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s2a: {Segment[C2, P], Segment[Intersect[a2, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a2, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a2, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a2, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s4a: {Segment[C4, P], Segment[Intersect[a4, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a4, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a4, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a4, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s5a: {Segment[C5, P], Segment[Intersect[a5, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a5, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a5, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a5, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s6a: {Segment[C6, P], Segment[Intersect[a6, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a6, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a6, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a6, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s7a: {Segment[C7, P], Segment[Intersect[a7, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a7, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a7, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a7, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
lista4 = Sequence(Segment[Intersect[CircleArc[(0, 0), (0, (3 * r0 / 4)), ((-((3 * r0 / 4))), 0)], Line[Object["C" + (s)], b]], Object["C" + (s)]], s, 1, 7)
lista3 = Sequence(Vector[Intersect[CircleArc[(0, 0), (0, (3 * r0 / 4)), ((-((3 * r0 / 4))), 0)], Line[AlturaSol, b]] + ((s - 10) * UnitVector[m] / 2), Intersect[CircleArc[(0, 0), (0, (3 * r0 / 4)), ((-((3 * r0 / 4))), 0)], Line[AlturaSol, b]] + ((s - 10) * UnitVector[m] / 2) - UnitVector[b]], s, 1, 20)
A: AlturaSol
B: C1 + ((2 * r1) - (10 - y(A)) / 2, r1)
c1 = Circle(B, r1)
C8 = (0, 6)
inc2 = 0.1
D = Sequence(Intersect[Object["c" + (s)], Ray[H, Object["C" + (s)]], 1], s, 1, 7)
F = Sequence(Intersect[Object["c" + (s)], Ray[Element[D, s], Rotate[Intersect[Object["c" + (s)], Ray[H, Object["C" + (s)]], 2], 69.05° + (((s - 1) * 0.15))°, Element[D, s]]], 2], s, 1, 7)
G = Sequence(Intersect[Line[Element[F, s], b], Ray[H, Object["C" + (s)]]], s, 1, 7)
α1 = Angle(Element[F, 1], Element[G, 1], Element[D, 1])
α2 = Angle(Element[F, 2], Element[G, 2], Element[D, 2])
α3 = Angle(Element[F, 3], Element[G, 3], Element[D, 3])
α4 = Angle(Element[F, 4], Element[G, 4], Element[D, 4])
α5 = Angle(Element[F, 5], Element[G, 5], Element[D, 5])
α6 = Angle(Element[F, 6], Element[G, 6], Element[D, 6])
α7 = Angle(Element[F, 7], Element[G, 7], Element[D, 7])
J = Sequence(Intersect[Object["c" + (s)], Line[B, Element[G, s]], 2], s, 1, 7)
s3a: {Segment[C3, P], Segment[Intersect[a3, Ray[O, P3D[inc, rot, {1, 0, 1}]]], P], Segment[Intersect[a3, Ray[O, P3D[inc, rot, {-1, 0, 1}]]], P], Segment[Intersect[a3, Ray[O, P3D[inc, rot, {1, 0, 0}]]], P], Segment[Intersect[a3, Ray[O, P3D[inc, rot, {-1, 0, 0}]]], P]}
s1b: {Segment[H, Element[D, 1]], Segment[Element[D, 1], Element[J, 1]], Segment[Element[F, 1], Element[J, 1]]}
s2b: {Segment[H, Element[D, 2]], Segment[Element[D, 2], Element[J, 2]], Segment[Element[F, 2], Element[J, 2]]}
s3b: {Segment[H, Element[D, 3]], Segment[Element[D, 3], Element[J, 3]], Segment[Element[F, 3], Element[J, 3]]}
s4b: {Segment[H, Element[D, 4]], Segment[Element[D, 4], Element[J, 4]], Segment[Element[F, 4], Element[J, 4]]}
s5b: {Segment[H, Element[D, 5]], Segment[Element[D, 5], Element[J, 5]], Segment[Element[F, 5], Element[J, 5]]}
s6b: {Segment[H, Element[D, 6]], Segment[Element[D, 6], Element[J, 6]], Segment[Element[F, 6], Element[J, 6]]}
s7b: {Segment[H, Element[D, 7]], Segment[Element[D, 7], Element[J, 7]], Segment[Element[F, 7], Element[J, 7]]}
s1c: {Segment[Element[F, 1], Element[G, 1]], Segment[Element[D, 1], Element[G, 1]]}
s2c: {Segment[Element[F, 2], Element[G, 2]], Segment[Element[D, 2], Element[G, 2]]}
s3c: {Segment[Element[F, 3], Element[G, 3]], Segment[Element[D, 3], Element[G, 3]]}
s4c: {Segment[Element[F, 4], Element[G, 4]], Segment[Element[D, 4], Element[G, 4]]}
s5c: {Segment[Element[F, 5], Element[G, 5]], Segment[Element[D, 5], Element[G, 5]]}
s6c: {Segment[Element[F, 6], Element[G, 6]], Segment[Element[D, 6], Element[G, 6]]}
s7c: {Segment[Element[F, 7], Element[G, 7]], Segment[Element[D, 7], Element[G, 7]]}
c2 = Circle(B - (0, inc2), r1)
c3 = Circle(B - (0, (2 * inc2)), r1)
c4 = Circle(B - (0, (3 * inc2)), r1)
c5 = Circle(B - (0, (4 * inc2)), r1)
c6 = Circle(B - (0, (5 * inc2)), r1)
o1 = true
o2 = false
o3 = false
o4 = false
o5 = false
o6 = false
o7 = false
c7 = Circle(B - (0, (6 * inc2)), r1)
Trans1a = (1.3403999999999952, -1.0971399999999993)
Trans1b = Circle(Trans1a, 4)
Trans1c = Point(Trans1b)
Trans1d = Angle(Trans1a + (1, 0), Trans1a, Trans1c)
Trans1e = Rotate(Trans1a + ((-5.72), (-0.73)), Trans1d + 5°, Trans1a)
Trans1g = Rotate(Trans1a - (0.19, 0.19), Trans1d + 5°, Trans1a)
Trans1h = Rotate(Trans1a - ((-0.19), 0.19), Trans1d + 5°, Trans1a)
Trans1i = Rotate(Trans1a + (4, 0) - (0.21, 0.19), Trans1d, Trans1a)
Trans1j = Rotate(Trans1a + (4, 0) - ((-0.21), 0.19), Trans1d, Trans1a)
Trans1f = Rotate(Trans1a + (5.68, (-0.73)), Trans1d + 5°, Trans1a)
o8 = false
g8 = Ray(Intersect[e, b], H)
β7 = Angle(Mirror[Intersect[e, b], H], H, C7)
β6 = Angle(Mirror[Intersect[e, b], H], H, C6)
β5 = Angle(Mirror[Intersect[e, b], H], H, C5)
β4 = Angle(Mirror[Intersect[e, b], H], H, C4)
β3 = Angle(Mirror[Intersect[e, b], H], H, C3)
β2 = Angle(Mirror[Intersect[e, b], H], H, C2)
β1 = Angle(Mirror[Intersect[e, b], H], H, C1)
ee = CircleArc((0, 0), (r0, 0), (0, r0))
eee = CircleArc((0, 0), (r0, 0), ((-r0), 0))
g1 = Segment(Intersect[eee, Ray[Element[F, 1], Mirror[Element[G, 1], Element[F, 1]]]], Element[F, 1])
g2 = Segment(Intersect[eee, Ray[Element[F, 2], Mirror[Element[G, 2], Element[F, 2]]]], Element[F, 2])
g3 = Segment(Intersect[eee, Ray[Element[F, 3], Mirror[Element[G, 3], Element[F, 3]]]], Element[F, 3])
g4 = Segment(Intersect[eee, Ray[Element[F, 4], Mirror[Element[G, 4], Element[F, 4]]]], Element[F, 4])
g5 = Segment(Intersect[eee, Ray[Element[F, 5], Mirror[Element[G, 5], Element[F, 5]]]], Element[F, 5])
g6 = Segment(Intersect[eee, Ray[Element[F, 6], Mirror[Element[G, 6], Element[F, 6]]]], Element[F, 6])
g7 = Segment(Intersect[eee, Ray[Element[F, 7], Mirror[Element[G, 7], Element[F, 7]]]], Element[F, 7])

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

puntoLista: {-1, 0, 0}
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(α)))