3D impreso pelota de Ping-Pong (4 / 5 paso)

Paso 4: Perforar los agujeros triangulares

En esta sección vamos a ver en cómo generar un patrón de prismas de las caras de la esfera geodésica, que vamos luego a restar de nuestra bola del paso 2 para generar los orificios reales.

Primero necesitamos crear prismas de los triángulos de la esfera geodésica.
Para ello, primero creamos un triángulo más pequeño dentro de cada triángulo de la geodésica
esfera por compensación de los bordes hacia adentro por una distancia fija e informática
los puntos de intersección de los bordes traducidos que conforman los vértices
del nuevo triángulo (véase el cuadro arriba).

Para generar el prisma, utilicé el método solidFromSlicespara extrudir el triángulo corriente (i1 i2 i3) ortogonalmente a su superficie.

La función createPrism

 // generates a prism from a unit sphere triangle, a radius, and an offset function createPrism(sphereTri, radius, offset) {// compute the coordinates of the vertices of the input triangle var v1 = new CSG.Vector3D(scalar_mul(sphereTri[0], radius)); var v2 = new CSG.Vector3D(scalar_mul(sphereTri[1], radius)); var v3 = new CSG.Vector3D(scalar_mul(sphereTri[2], radius)); // make plane base (v1, x, y) var xAxis = v2.minus(v1).unit(); var v13 = v3.minus(v1); var yAxis = v13.minus(xAxis.times(v13.dot(xAxis))).unit(); // retrieve 2d coordinates of the triangle vertices in that base var v1_2d = new CSG.Vector2D(0, 0); var v2_2d = new CSG.Vector2D(v2.minus(v1).dot(xAxis), 0); var v3_2d = new CSG.Vector2D(v3.minus(v1).dot(xAxis), v3.minus(v1).dot(yAxis)); // get the middle of each segment in the plane var v12_2d = v2_2d.minus(v1_2d); var v23_2d = v3_2d.minus(v2_2d); var v31_2d = v1_2d.minus(v3_2d); // get unit vector perpendicular to i1i2 segment in the plane var ortho12 = new CSG.Vector2D(-v12_2d.y, v12_2d.x).unit(); if(v3_2d.minus(v1_2d).dot(ortho12) <0) ortho12 = ortho12.times(-1); var ortho23 = new CSG.Vector2D(-v23_2d.y, v23_2d.x).unit(); if(v1_2d.minus(v2_2d).dot(ortho23) <0) ortho23 = ortho23.times(-1); var ortho31 = new CSG.Vector2D(-v31_2d.y, v31_2d.x).unit(); if(v2_2d.minus(v1_2d).dot(ortho31) <0) ortho31 = ortho31.times(-1); // translate all tri segments inward by the same offset var s12b = translate_segment([v1_2d, v2_2d], ortho12.times(offset)); var s23b = translate_segment([v2_2d, v3_2d], ortho23.times(offset)); var s31b = translate_segment([v3_2d, v1_2d], ortho31.times(offset)); // compute intersection points of translated segments in the plane var i1 = intersect(s12b, s23b); var i2 = intersect(s23b, s31b); var i3 = intersect(s31b, s12b); var i1_3d = v1.plus(xAxis.times(i1.x)).plus(yAxis.times(i1.y)); var i2_3d = v1.plus(xAxis.times(i2.x)).plus(yAxis.times(i2.y)); var i3_3d = v1.plus(xAxis.times(i3.x)).plus(yAxis.times(i3.y)); // create a polygon from the intersection points var tri = new CSG.Polygon([ new CSG.Vertex(i1_3d), new CSG.Vertex(i2_3d), new CSG.Vertex(i3_3d) ]); var zAxis = tri.plane.normal; return tri.solidFromSlices({ numslices: 2, // amount of slices loop: false, // final CSG is closed by looping (start = end) like a torus callback: function(t,slice) { // echo("t:" + t) return this.translate( scalar_mul([zAxis.x, zAxis.y, zAxis.z], 4*t) ); } }).translate(scalar_mul([zAxis.x, zAxis.y, zAxis.z], -2)); } // multiplies a 3d vector by a scalar function scalar_mul(v, c) { return [c*v[0], c*v[1], c*v[2]]; } // translates a 2d segment by a 2d vector function translate_segment(seg, vec) { s0b = seg[0].plus(vec); s1b = seg[1].plus(vec); return [s0b, s1b]; } // computes the intersection of 2 2d segments function intersect(s1, s2) { var p = s1[0]; var q = s2[0]; var r = s1[1].minus(p); var s = s2[1].minus(q); var u = q.minus(p).cross(r)/r.cross(s); var t = q.minus(p).cross(s)/r.cross(s); if(r.cross(s) != 0 && u >= 0 && u<= 1 && t >= 0 && t<= 1) return p.plus(r.times(t)); return null; } 

Haciendo uso de la función de createPrism sobre, donde ahora puede generar todo el
patrón de agujero por iteración de los triángulos de la esfera geodésica:

Secuencia del patrón de agujero

 function main(){ var ballDiameter = 40; // mm var segmentWidth = 2; // mm var sphereTris = []; // holds list of geodesic sphere triangles addPolyCb = function(v1, v2, v3) { sphereTris.push([ [v1.x, v1.y, v1.z], [v2.x, v2.y, v2.z], [v3.x, v3.y, v3.z] ]); } createGeodesicSphere(addPolyCb, 1); var holePattern; for(j=0; j!=sphereTris.length; ++j) { var prism = createPrism(sphereTris[j], ballDiameter/2., segmentWidth/2.); if(j==0) { holePattern = prism; } else holePattern = holePattern.union(prism); } return holePattern; } function subdivide(v1, v2, v3, addPolyCb, depth) { if(depth == 0) { addPolyCb(v1, v2, v3); return; } var v12 = v1.plus(v2).unit(); var v23 = v2.plus(v3).unit(); var v31 = v3.plus(v1).unit(); var newDepth = depth - 1; subdivide(v1, v12, v31, addPolyCb, newDepth); subdivide(v2, v23, v12, addPolyCb, newDepth); subdivide(v3, v31, v23, addPolyCb, newDepth); subdivide(v12, v23, v31, addPolyCb, newDepth); } function createGeodesicSphere(addPolyCb, depth) { var X = 0.525731112119133606; var Z = 0.850650808352039932; var vdata = [ [-X, 0.0, Z], [ X, 0.0, Z ], [ -X, 0.0, -Z ], [ X, 0.0, -Z ], [ 0.0, Z, X ], [ 0.0, Z, -X ], [ 0.0, -Z, X ], [ 0.0, -Z, -X ], [ Z, X, 0.0 ], [ -Z, X, 0.0 ], [ Z, -X, 0.0 ], [ -Z, -X, 0.0 ] ]; var tindices = [ [0, 4, 1], [ 0, 9, 4 ], [ 9, 5, 4 ], [ 4, 5, 8 ], [ 4, 8, 1 ], [ 8, 10, 1 ], [ 8, 3, 10 ], [ 5, 3, 8 ], [ 5, 2, 3 ], [ 2, 7, 3 ], [ 7, 10, 3 ], [ 7, 6, 10 ], [ 7, 11, 6 ], [ 11, 0, 6 ], [ 0, 1, 6 ], [ 6, 1, 10 ], [ 9, 0, 11 ], [ 9, 11, 2 ], [ 9, 2, 5 ], [ 7, 2, 11 ] ]; for(var i = 0; i < 20; i++) subdivide( new CSG.Vector3D(vdata[tindices[i][0]]), new CSG.Vector3D(vdata[tindices[i][1]]), new CSG.Vector3D(vdata[tindices[i][2]]), addPolyCb, depth); } 

Artículos Relacionados

Lanzador de pelotas de Ping Pong controlado por Arduino

Lanzador de pelotas de Ping Pong controlado por Arduino

Hola todo el mundo!Se trata de un lanzador de pelotas de ping pong diseñado para ser controlado por un arduino.Utiliza un servo para dispensar las bolas y dos motores con las ruedas para dar velocidad y disparar.Todas las piezas pueden imprimirse uti
Flotar una pelota de ping-pong en la voluntad!

Flotar una pelota de ping-pong en la voluntad!

¡ Hola!Siempre he estado fascinado por las cosas que están controladas de forma inalámbrica por movimientos de la mano que es probablemente porqué tengo una Wii ahora que estoy pensando. Pero yo realmente no he conseguido a cualquier control de movim
5 cosas que hacer con una pelota de ping-pong

5 cosas que hacer con una pelota de ping-pong

por favor este Instructable y Sígueme para más cool guías paso a paso.Hecho por Manish KumarAsí que hoy habla 5 inusual que hacer con una pelota de ping-pong. Estas bolas de plástico muy barato y pueden ser utilizadas para los más más de usos. : P no
El Aplastador de pelota de Ping Pong

El Aplastador de pelota de Ping Pong

Hoy, tengo el gran placer de presentar a usted el Ping Pong Ball Mauler, el sólo automática, capacidad grande, lanzador de bolas de ping pong.  Este es el primero hágalo usted mismo proyecto, me he comprometido con mi nueva empresa, Outsmarting Techn
Pelota de ping-pong de 10.000 rpm

Pelota de ping-pong de 10.000 rpm

Usar Criógenos en demostraciones de química, y ejemplos rápidos de fácil seguros con cero limpiar siempre son bienvenidos. Que había encontrado sobre éste - la bola de ping-pong de giro - a través de YouTube. El video ha tenido más 2 millones de vist
Resplandor en el oscuro LED pelota de ping-pong

Resplandor en el oscuro LED pelota de ping-pong

Crear un resplandor en el oscurezca pelota de ping-pong LED con varios pasos.Paso 1: materiales Usted necesitará los siguientes materiales:Pelotita de Ping PongLED (5mm o 10 mm)Batería de 3VCintaPistola de pegamento de temperatura bajaMaquinilla de a
Convertir a pelotas de ping pong en Pokéballs!

Convertir a pelotas de ping pong en Pokéballs!

¿Quieres ser el mejor, como no se fue nunca? ¡ Consiga comenzado hoy haciendo su propio Pokéballs para jugar con!Paso 1: Necesidad de cosas U Aquí está lo que usted tendrá que hacer la Pokéballs.-Pelotas de ping pong blanca llano-marcador permanenteP
¿Hacer una bomba de humo de pelotas de Ping Pong

¿Hacer una bomba de humo de pelotas de Ping Pong

tienen cualquier pelotas de ping pong, ahí? Tengo una idea... ¿Qué tal hacer unas bombas de humo fáciles y efectivas de ellos? Materiales cotidianos de casa es todo lo que necesita. Muy útil para paint ball o aire suave acerca de los partidos, o simp
Pelota de ping-pong LED

Pelota de ping-pong LED

usted puede hacerlas rodar, captura de juego con ellos, o incluso jugar fetch con su perro con ellos. (Perros más grandes pueden ahogar, mi perro es muy pequeño y no se puede ahogar en él)VERSIÓN MÁS RECIENTE:)Paso 1: Reunir los materiales Necesita:S
La junta mayor de muchas pelotas de ping pong

La junta mayor de muchas pelotas de ping pong

esto ha entrado en las competiciones de corte LED y láser, por favor voten por mí :-DOK, vi el tablero 8 x 8, ahora Prepárate para la maravilla de 16 x 32 que está a punto de sobrevenir.No siento lo suficiente para la calidad del video, pero todavía
Pelota de ping-pong LED (mejorado)

Pelota de ping-pong LED (mejorado)

esto es básicamente el mismo diseño, pero hice más limpia y se ve mucho mejor!!Este es el viejo:Paso 1: herramientas Se necesita lo siguiente:1. el taladro2. brocas de perforación3. tijeras4. cintaPaso 2: materiales Se necesita lo siguiente:1. LED Th
¿Otro Consejo de muchas pelotas de ping pong

¿Otro Consejo de muchas pelotas de ping pong

lo que se obtiene cuando se agrega un Arduino, algunos registros de cambio, unos transistores y un puñado de LEDs a alguien con demasiado tiempo en sus manos?La respuesta simple es otro tablero de muchas pelotas de ping pong!Aunque esto no se ha comp
La Junta Directiva de muchas pelotas de ping pong

La Junta Directiva de muchas pelotas de ping pong

Ok,Proyecto de wilde lehttp://www.youtube.com/watch?v=m41S2sZquC4&feature=plcpEn primer lugar quisiera pedir disculpas por cualquier falta de claridad etc; Tengo 15 y por lo tanto no tengo ninguna habilidad .etcSe trata de una matriz de LEDTiene 64 L
KVG Vertical Micro cadena elevador - pelotas de Ping Pong

KVG Vertical Micro cadena elevador - pelotas de Ping Pong

ESTE UN PROYECTO REALIZADO POR MÍ Y PARSHANLista de piezas:conector rojo - 2Conector amarillo -69conector gris 3D - 55conector azul de entrada 3D - 19micro cadena - 145conector blanco - 12conector verde - 6conector naranja - 432 vías gris - 16micro c