Plantilla 3D
Author: Rafael Losada Liste

C = (-8.948399999999996, 6.857399999999999)
A1 = Point(Segment[(0, 0, 0), (10, 0, 0)])
c, A, B, D, E, F, G, cara1, cara3, cara2, caraAA1bEF, caraABGF, caraDEFG, arista2, arista1, aristaAA1b, aristaAB, arista3, aristaBG, aristaDG, aristaDE, aristaA1bE, aristaEF, aristaAF, aristaFG = Cube((0, 0, 0), A1, zAxis)
texto1: "" + (LaTeX[x(A1)]) + ""
b: round((100 * x(A1))) / 100
texto2: "Volumen = " + (LaTeX[b]) + " x " + (LaTeX[b]) + " x " + (LaTeX[b]) + " = " + (LaTeX[b^(3)]) + " unidades cúbicas"
l9 = Sequence(Segment[(0, 0, k), (0, b, k)], k, 0, b, 1)
b': b + 0.001
l5 = Sequence(Segment[(0, k, b'), (b', k, b')], k, 0, b, 1)
l6 = Sequence(Segment[(b', k, 0), (b', k, b)], k, 0, b, 1)
l7 = Sequence(Segment[(k, b', 0), (k, b', b')], k, 0, b, 1)
l8 = Sequence(Segment[(0, k, 0), (b', k, 0)], k, 0, b', 1)
l10 = Sequence(Segment[(0, 0, k), (b', 0, k)], k, 0, b', 1)
l11 = Sequence(Segment[(b', 0, k), (b', b', k)], k, 0, b', 1)
l12 = Sequence(Segment[(0, b', k), (b', b', k)], k, 0, b, 1)
l13 = Sequence(Segment[(k, 0, b'), (k, b', b')], k, 0, b, 1)
l2 = Sequence(Segment[(k, 0, 0), (k, 0, b')], k, 0, b, 1)
l3 = Sequence(Segment[(k, 0, 0), (k, b', 0)], k, 0, b, 1)
l4 = Sequence(Segment[(0, k, 0), (0, k, b')], k, 0, b, 1)

Tool: Punto3D
[C,XY,Z,Lista 3D]
Input: C, XY, Z, A
Output: H'

z1 = OrthogonalLine(C, yAxis)
z0 = Circle(C, 0.62)
Z1 = Intersect(z0, z1, 1)
Z2 = Intersect(z0, z1, 2)
zElipse1 = Ellipse(Z1, Z2, 0.65)
Z5, Z6 = Intersect(zElipse1, z1)
z2 = OrthogonalLine(C, xAxis)
Z3 = Intersect(z0, z2, 2)
Z4 = Intersect(z0, z2, 1)
zElipse2 = Ellipse(Z3, Z4, 0.65)
Z7, Z8 = Intersect(zElipse2, z2)
zAngInc = Angle(Z8, C, Z)
zAngRot = Angle(Z6, C, XY)
A: {5, 5, 5}
H': ((Element[A, 1] * sin(zAngRot)) + (Element[A, 2] * cos(zAngRot)), (((-Element[A, 1]) * cos(zAngRot)) * sin(zAngInc)) + ((Element[A, 2] * sin(zAngRot)) * sin(zAngInc)) + (Element[A, 3] * cos(zAngInc)))