lunes, 2 de abril de 2018

Nueva tarea. Imprimimos. El modelado 3D, que tanto miedo daba, no es tan difícil. #OpenSCad y #BlocksCAD

En el verano de 2015 conocí diversos programas de modelado 3D como OpenScad y TinkerCad para poder preparar los contenidos de Programación y Robótica en 3º de ESO. Al principio resultaba un poco árido, pues escribir línea de código resulta incómodo, sin equivocarte en la sintaxis propia de cada comando, probando qué significaba cada instrucción, pero enseguida vas viendo cómo funcionan las cosas.

Gracias a los cursos de la empresa de telefonía móvil BQ en su sección llamada Diwo, una escuela para "Makers" (gente que se fabrica sus propias cosas), y en concreto al curso de iniciación al diseño 3D con OpenScad aprendí bastante de este programa, escribiendo línea de código. Así hice mis primeros pinitos. La empresa BQ ha apostado fuerte por la educación (muy desarrollado en 1ºESO) y por el mundo 3D
Esta es la primera temporada de OpenSCAD con los estupendos videotutoriales de Obijuan_cube, muy recomendable. Les he pedido a mis alumnos que los vayan viendo, para poder realizar su tarea. Una ración de Flipped Classroom...




La propuesta de trabajo que les he solicitado a los alumnos es bastante más completa (está llena de retos), y openSCAD es solamente una parte. Cuando se lo presenté no les hizo demasiada gracia, les parecía todo muy difícil. Pero poco a poco lo fueron trabajando y también incorporaron el modelado  haciendo piezas con Sketchup. Y van siendo capaces.

Hace un tiempo, hablando a través de Twitter con Alfredo Sánchez (@alfsan04, de BQ, uno de los principales impulsores y facilitadores para la nueva asignatura que hemos comenzado en 2016-2017), al ver que en mi centro no disponíamos de impresora, me ofreció la suya, la personal, la de su casa!. Cuánta generosidad hay en la red.



Y eso ocurrió, y me la prestó, y pasamos las piezas del modelado 3D a la realidad:


En el curso 2015-2016 llevé la Prusa i3 a mi colegio, para que los chicos la vieran y pudieran "cacharrear" un poco con ella. Gracias, Alfredo!!!. En el curso 2016-2017 conseguimos una impresora Witbox de Bq que está instalada y funcionando en nuestro colegio.

Al decirle a Alfredo que estaba aprendiendo OpenSCAD, me nombró de pasada una aplicación web llamada BloksCAD, y "me quedé con la copla". Esta App viene a ayudarnos a diseñar objetos 3d a través de programación con bloques, al estilo Scratch. En 10 minutos tenía dos piezas sencillas diseñadas.

Los diseñadores de esta herramienta la definen como "BlocksCAD is a drag-and-drop programmatic CAD interface" (Interfaz de programación CAD de arrastrar y soltar), y así es. Con una barra de menú, una zona para coger los bloques perfectamente organizada, otra para soltar y unir los mismos, y un espacio para renderizar (con diferentes vistas y formatos de salida disponibles), han hecho una herramienta potentísima.

La aplicación es genial. Este es el enlace https://www.blockscad3d.com/

En este otro enlace puedes acceder a la documentación y a su canal en Youtube para poder iniciarte en este arte.
En este enlace tienes una lista de reproducción con 20 vídeos para tu aprendizaje. Si no sabes mucho inglés, no te preocupes. Mirando el vídeo y viendo lo que va aconteciendo en él entenderás lo que está pasando y cómo puedes programar diferentes objetos.



Supongo que para para pasar al #modo_experto, habrá que echarle horas, pero el #modo_novato es la mar de resultón.
Te permite diseñar las piezas en pocos pasos, convierte el código al formato STL que luego habrá que convertir en GCODE a través de software adecuado de laminación, es capaz de exportar los ficheros a código SCAD (ofreciéndote el fichero *.scad pertinente). Completito, ¿no?

Este fue mi proceso de trabajo:

Primera pieza:

Una pieza sencilla, hecha por unión y superposición en altura de una base en forma de ortoedro de 25x25x10mm, sobre la que hemos subido un cilindro de 5mm radio y 20mm de altur. Sobre ella un toroide (donut) de radios 5/10mm, y en la cúspide, una esfera insertada de radio 10mm.




Segunda pieza:

Realizamos la intersección de una esfera  de 16mm de radio con un cubo de 20x20x20 mm centrado, para que quede un dado de esquinas redondeadas. Al cubo previamente le hemos quitado ("difference") en las tres direcciones del espacio un tronco de cilindro cono de radios 8 y 5 mm, y otros dos cubos más pequeños de bases 8x8 y 10x10 mm.
El código en bloque 



Y en este curso 2017-2018 he realizado mis segundos pinitos, a continuación os ofrezco mi perfil en Blockscad, que puede resultar interesante para ver más ejemplos.


La tarea de los alumnos consiste en lo siguiente:

Tras todo el proceso llevado a cabo durante estos últimos dos meses, llegó el momento de diseñar y modelar elementos y figuras personalmente.
  • Visualiza los vídeotutoriales de Blockscad y prueba a ir reproduciendo las piezas que ahí se van generando. Debes ver al menos los vídeos números 1 a 5, 8 a 12, 15 a 17 y 19. En clase dedicaremos solamente una hora a esta visualización en el aula de informática, el resto deberás verlos en casa.
  • En equipo, reproducid las dos piezas del profesor mostradas en este artículo, y las piezas "composición", "llavero", "repetición loops", "repeticiones lineales", "macetas". Publica tu/s pieza/s en la carpeta tema07/blockscad de Google Drive en formatos ".scad" y ".stl". 
  • Individualmente, diseñar una pieza que sirva de trofeo de un premio a tamaño máximo 10x10x20 (LargoxAnchoxAlto)). 
  • Individualmente, diseña una pieza con forma antropomórfica (humana). Tres posibilidades. un muñeco de nieve (fácil), un robot "cuadriculado" (medio), una figura similar a un playmobil (difícil). Elige tu opción. 
Formato de entrega de piezas:
En tu carpeta de alumno/tema07, genera una carpeta blockscad, y para cada ejercicio que hagas debes entregar tres ficheros, identificados con el mismo nombre, con tres extensiones diferentes.

  • Debes convertirlo y descargarlo como OpenScad Code desde el menú Project de BlockScad. 
  • También debes exportarlo a STL (botón que aparece en la zona de renderizado)
  • Debes hacer un recorte de pantalla que incluya código y renderizado. Formato png o jpg.
Además:
  • Debes generar un documento google Doc en el que incluyas el enlace a los proyectos que has diseñado. Se accede al enlace en un botón que hay encima de la zona de renderizado llamado "Project Page". Debes compartir el proyecto -share- y copiar en el documento de google los enlaces.
Debes tener en cuenta si tu proyecto puede ser imprimible: 
  • piezas "en el aire", que no están sujetas ni unidas al resto de la estructura, - se imprimirían en el aire, y la gravedad haría su función-. 
  • Ni demasiado compacto ni demasiado endeble - debe ser una figura resistente -  
  • Ni muy pequeño, ni muy grande, con "conductos de ventilación interiores" (huecos) - por gasto de material, y por tiempo de impresión-. 
  • Diseños pequeños con demasiado detalle no son manejables.
  • La resolución mejor se da en el eje z. Para que nos entendamos, la colocación de la pieza en la cama de la impresora 3D será mejor, por ejemplo, si las letras están orientadas horizontalmente que si están en una pared lateral, donde tendrán una peor impresión.
  • Es mejor imprimir varias piezas a la vez, para dar tiempo a la refrigeración de las capas antes de añadir una nueva capa encima.
No hagas más carpetas en Google Drive que la citada "carpeta_alumno/tema07/blockscad", y publica ahí todo (que luego me vuelvo loco navegando para acceder a tantas carpetas como creáis).

Así, por ejemplo, si yo entregara el trofeo, entregaría: trofeo_PacoMontero.stl, trofeo_PacoMontero.png, trofeo_PacoMontero.scad y el enlace público al proyecto dentro del documento de google.

Imprimiremos las mejores piezas y los que se esmeren en hacer un buen trabajo podrán llevarse un llavero de regalo con su nombre. Premio!!!

En las dos piezas individuales es obligatorio el uso de las instrucciones cube, cylinder, sphere, torus, translate, rotate, union, difference y/o intersection de piezas. Debeis incluir también comentarios (explicaciones de vuestras piezas)

Se valorará:

  • originalidad
  • la cantidad de código generado, que las piezas no sean demasiado simples
  • su "limpieza" (código no farragoso), 
  • la inclusión de variables y parámetros, 
  • loops: count with i
  • transformaciones como escalas, colores y slides
  • instrucción hull y/o extrude
  • uso de módulos

¡Animáos, que el mundo 3D nos espera! Espero que os mole.

Gracias a @alfsan04 y @obijuan_cube por ser nuestros facilitadores.