Plantilla 3D
Author: Rafael Losada Liste

Toro

v10 = 0
u10 = 0
p = 3.141592653589793
v20: 2 * p
u20: 2 * p
Q4 = (-2.22, 8)
Q3 = (-4.22, 8)
p2 = Segment(Q3, Q4)
P3 = Point(p2)
q3: (x(P3) + 4.22) * 5
v1: v10 + q3 * (v20 - v10) / 10
p4 = Segment(P3, Q4)
P4 = Point(p4)
q4: (x(P4) + 4.22) * 5
v2: v10 + q4 * (v20 - v10) / 10
Q2 = (-5.22, 8)
Q1 = (-7.22, 8)
p1 = Segment(Q1, Q2)
P1 = Point(p1)
q1: (x(P1) + 7.22) * 5
u1: u10 + q1 * (u20 - u10) / 10
p3 = Segment(P1, Q2)
P2 = Point(p3)
q2: (x(P2) + 7.22) * 5
u2: u10 + q2 * (u20 - u10) / 10
r = 5 (slider from 0 to 6, step 0.1)
R: 2 * r
C = (-6, 7)
zz1 = OrthogonalLine(C, yAxis)
zz0 = Circle(C, 0.62)
ZZ1 = Intersect(zz0, zz1, 1)
ZZ2 = Intersect(zz0, zz1, 2)
zElipse1 = Ellipse(ZZ1, ZZ2, 0.65)
ZZ5, ZZ6 = Intersect(zElipse1, zz1)
XY = Point(zElipse1)
β = Angle(ZZ6, C, XY)
zz2 = OrthogonalLine(C, xAxis)
ZZ3 = Intersect(zz0, zz2, 2)
ZZ4 = Intersect(zz0, zz2, 1)
zElipse2 = Ellipse(ZZ3, ZZ4, 0.65)
ZZ7, ZZ8 = Intersect(zElipse2, zz2)
Z = Point(zElipse2)
α = Angle(ZZ8, C, Z)
Q5 = (-1.22, 8)
Q6 = (-0.22, 8)
p5 = Segment(Q5, Q6)
P5 = Point(p5)
q5: x(P5) + 1.72
paso: 0.08 / q5
α_1 = 0 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
β_1 = 5.899212871740834 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
curva1 = CurveCartesian((R + r * cos(u)) * (-sin(β)) / 3, (-(R + r * cos(u)) * (-cos(β)) * sin(α) + r * sin(u) * cos(α)) / 3, u, u1, u2)
nada = 0
zz4 = Segment(ZZ5, ZZ6)
zz3 = Segment(ZZ7, ZZ8)
zPunto1 = Intersect(zElipse2, zElipse1, 1)
zPunto2 = Intersect(zElipse2, zElipse1, 4)
zSeg2 = Segment(zPunto1, zPunto2)
A3: curva1(α_1)
A4: curva1(α_1)
A5: curva1(α_1)
A6: curva1(α_1)
A1: curva1(α_1)
A2: curva1(α_1)
curva2 = CurveCartesian(((R + r * cos(α_1)) * cos(v) * sin(β) + (R + r * cos(α_1)) * sin(v) * cos(β)) / 3, (-(R + r * cos(α_1)) * cos(v) * cos(β) * sin(α) + (R + r * cos(α_1)) * sin(v) * sin(β) * sin(α) + r * sin(α_1) * cos(α)) / 3, v, v1, v2)
A = (-4, 7)
a = CurveCartesian(((R + r * cos(u)) * cos(β_1) * sin(β) + (R + r * cos(u)) * sin(β_1) * cos(β)) / 3, (-(R + r * cos(u)) * cos(β_1) * cos(β) * sin(α) + (R + r * cos(u)) * sin(β_1) * sin(β) * sin(α) + r * sin(u) * cos(α)) / 3, u, u1, u2)
sb: sin(β)
cb: cos(β)
cs: -cos(β) * sin(α)
ss: sin(β) * sin(α)
ca: cos(α)
L1 = Sequence(CurveCartesian[((R + r * cos(u)) * cos(v) * sb + (R + r * cos(u)) * sin(v) * cb) / 3, ((R + r * cos(u)) * cos(v) * cs + (R + r * cos(u)) * sin(v) * ss + r * sin(u) * ca) / 3, v, v1, v2], u, u1, u2, 3 * paso)
L2 = Sequence(CurveCartesian[((R + r * cos(u)) * cos(v) * sb + (R + r * cos(u)) * sin(v) * cb) / 3, ((R + r * cos(u)) * cos(v) * cs + (R + r * cos(u)) * sin(v) * ss + r * sin(u) * ca) / 3, u, u1, u2], v, v1, v2, paso)
px(u, v) = (R + r * cos(u)) * cos(v) / 3
py(u, v) = (R + r * cos(u)) * sin(v) / 3
pz(u, v) = r * sin(u) / 3
L1b = Sequence(CurveCartesian[px(u, v) * sb + py(u, v) * cb, ((R + r * cos(u)) * cos(v) * cs + (R + r * cos(u)) * sin(v) * ss + r * sin(u) * ca) / 3, v, v1, v2], u, u1, u2, 3 * paso)
L3a = Sequence(CurveCartesian[((R + r * cos(u)) * cos(v) * sb + (R + r * cos(u)) * sin(v) * cb) / 3, ((R + r * cos(u)) * cos(v) * cs + (R + r * cos(u)) * sin(v) * ss + r * sin(u) * ca) / 3, v, v1, v2], u, u1, u2, 30 * paso)
L3b = Sequence(CurveCartesian[px(u, v) * sb + py(u, v) * cb, ((R + r * cos(u)) * cos(v) * cs + (R + r * cos(u)) * sin(v) * ss + r * sin(u) * ca) / 3, v, v1, v2], u, u1, u2, 30 * paso)