El mundo loco de BlocksCAD

Lo que viene a continuación es una versión blog o desplegada de este hilo de Twitter.

Imagina un mundo donde para construir una pirámide tienes que hacer primero un cilindro. Ese mundo loco existe y se llama BlocksCAD

Lo primero que llama la atención en BlocksCAD es que vas al menú de formas en 3D y ves: cubo, cilindro, esfera y toro. Obviamente piensas, voy a darle a F5 porque igual es que no se ha cargado el resto de primitivas.

Pues no, efectivamente solo tenemos cubos, cilindros, esferas y toros.

Y todo se vuelve un poco más raro cuando vemos que el cubo tiene más parámetros de los necesarios para hacer un cubo (vuelve al tuit anterior).

Como ya estaréis intuyendo, la primitiva cubo nos permite hacer prismas rectangulares.

¿Qué serán los dos parámetros de la primitiva cilindro? Vamos a explorar. Para ello, quitamos el candadito, porque así podemos modificar cada uno por separado.

Anda, un tronco de cono. Qué cosas. Entonces, se podrá entonces hacer un…

Tampoco es que haga falta ir explorando por uno mismo. El propio entorno tiene menús contextuales que facilitan esto.

Vale, pero en ese menú de formas solo teníamos el cubo, el cilindro, la esfera y el toro…

¿Cómo hacemos entonces una pirámide? En el menú de transformaciones tenemos un montón de bloques. Y hay uno que se llama “aristas” (en la versión en inglés, sides).

O sea, que puedo coger un cilindro, decir que me lo haga con radio superior cero, y luego decirle al programa que mejor que lo haga con cuatro aristas.

He descrito una pirámide con un uso del lenguaje que requiere un conocimiento profundo de estos cuerpos, además de pensamiento computacional e, incluso, una idea intuitiva de en el límite para hacer ese r2=0.

En ese menú de transformaciones se pueden hacer también traslaciones, simetrías, rotaciones, etc.

Luego tenemos un menú que realiza operaciones de conjuntos:

  • Unión: todos los puntos que están en alguno de los objetos.
  • Intersección: los puntos que están en todos los objetos.
  • Diferencia: todos los puntos que están en el primer objeto y no están en los demás.

Y una operación denominada envoltura convexa (hull) que da mucho juego. Con ella, por ejemplo, podría modelar un “cubo” poniendo miniesferas (o lo que sea) en las posiciones de sus vértices.

En realidad, BlocksCAD no deja de ser una interfaz gráfica de OpenSCAD al estilo de Scratch. La ventaja de la programación visual con bloques radica en que no tienes que preocuparte de si te dejas una coma o no has cerrado las llaves.

Es posible que lo que hayas codificado no haga lo que tú querías, pero eso es otra cosa. La programación por bloques te permite despreocuparte de la sintaxis (vaya, dónde está esa coma que seguramente me he olvidado de poner) y centrarte en lo fundamental.

Los programadores experimentados perciben estos entornos como menos potentes y capaces, pero esta transparencia y facilidad de uso permite que el alumnado los emplee directamente.

Prometo extender el hilo, que incluirá referencias para ampliar y mostraré algunas de las cosicas que surgieron en una práctica que hacemos en el máster de ESO en la Facultad de Educación de Zaragoza. Pero antes, un pequeño reto…

¿Quién se anima a modelar esta pieza de aquí? Como no lleva medidas de ningún tipo, me conformo con que sea aproximadamente igual. Enlace al editor

No creáis que os voy a estropear el reto anterior, pero voy a continuar el hilo. Es un desafío interesante porque se puede abordar de diversas maneras y algunas requieren de más bloques de código que otras.

Tampoco soy tan malo, que luego pondré referencias y enlaces y, entre ellos, podéis encontrar alguna solución. Nos faltaba algún menú por explorar.

En el de funciones podemos crearnos nuestros propios bloquecitos que hacen cosas. ¿Recordáis que más arriba decía que se podía modelar una especie de cubo usando la envoltura convexa (hull)? Aquí se ha hecho eso, creando antes una función para hacer los puntos.

Cuando resulta necesario realizar cálculos para establecer medidas, parámetros de traslaciones, etc., recurriremos a los bloques de matemáticas, donde se incluyen operaciones aritméticas, funciones trigonométricas y generadores de números aleatorios.

Los resultados de estas operaciones pueden introducirse directamente en los parámetros de las primitivas 3D o de las transformaciones o, por otro lado, asignarse a variables que luego pueden ser utilizadas para diferentes propósitos.

Lo de las variables es un puntazo. Una de las grandes ventajas de estos programas de modelado es que puedo parametrizar piezas. Por ejemplo, puedo hacerme una tuerca genérica, y luego redimensionarla para fabricarla de cualquier métrica.

La categoría de secuencias (loops) permite introducir bucles en los algoritmos, que pueden ser recursivos (OMG), mientras que la categoría lógica (logic) completa la paleta de instrucciones que se pueden añadir a los algoritmos.

En el máster de ESO de la Facultad de Educación de Zaragoza venimos haciendo una práctica que consiste en el diseño de un dado. Después de plantearla con TinkerCAD un par de años, desde hace dos iniciamos una línea de investigación entre José M. Muñoz y un servidor.

Esto del diseño y construcción de un dado es ya una fijación, algo que he hecho con alumnado de ESO, tanto usando herramientas tecnológicas como haciendo el dado con técnicas sencillitas de origami modular.

Da un juego tremendo porque permite articular los significados clásico y frecuencial de la probabilidad, así como poner de manifiesto diversos sesgos de razonamiento.

Además, las conexiones con otras disciplinas son muy interesantes. Con experimentales, cómo diseñar un entorno de laboratorio para probar el dado. Con tecnología, por el diseño en sí y por analizar qué aspectos del proceso de fabricación influyen en el sesgo del dado.

No es fácil en absoluto diseñar un dado. En Thingiverse hay hilos donde se pone de manifiesto que influye hasta cómo pones la pieza en la cama de la impresora 3D (si “recta” o a 45º).

A la hora de modelar el dado con BlocksCAD surge el problemilla de cómo lo redondeamos para que ruede un poquito. Y las soluciones que aparecen son muy curiosas.

Gracias a @napulido os puedo enseñar los dados fabricados. En la foto, diferentes intersecciones de cubo con esfera (las tres de la derecha). El de la izquierda es un hull de la intersección de 3 cilindros.

Esto de aquí es la intersección de tres cilindros, a la izquierda con la envoltura convexa (hull) y a la derecha sin ella.

Y aquí tenemos dos modelos en los que se ha tratado de compensar el material retirado de cada cara.

Si te interesa el tema, hace unos meses publicamos junto con Carlos Rodríguez y José M. Muñoz el siguiente artículo en la revista SUMA.

  • Aquí enlace a un taller para docentes con Carlos Rodríguez en la III JEMA.
  • Y aquí enlace al taller para el Taller de Talento Matemático con Carlos Rodríguez, que también sirve para un taller en 4º ESO para el programa Conexión Matemática.
Avatar
Pablo Beltrán-Pellicer
Profesor Titular de Didáctica de las Matemáticas

Universidad de Zaragoza

Relacionado