- Aquí no se arrastra nada con el ratón: describes la pieza escribiendo, y la geometría nace con la medida en vez de recibirla después.
- El lenguaje es chico: tres primitivas, tres operaciones booleanas y dos transformaciones. Con eso se construye casi todo.
- Las medidas se declaran como variables con nombre: cambias un número y toda la pieza se actualiza, sin redibujar.
- Antes de exportar, renderiza con F6: la previsualización no es la geometría final. Y guarda el .scad, no solo el STL.
Qué vas a construir y qué necesitas
Vamos a describir una caja abierta por arriba con cuatro agujeros pasantes en la base: una pieza que sirve como soporte, contenedor o carcasa, y cuyo esqueleto — un sólido del que se resta una cavidad y al que se le restan cilindros — es el mismo de buena parte de la geometría técnica. Es un ejemplo modesto a propósito, porque con él se ven los tres gestos que sostienen OpenSCAD: combinar primitivas, restar formas y parametrizar medidas.
Necesitas OpenSCAD instalado (es gratuito y libre) y el objeto que va dentro de la caja, para medirlo. Un calibre es lo ideal. Y necesitas aceptar de antemano una cosa: aquí no se arrastra nada con el ratón para modelar. El ratón sirve para orbitar la vista y seleccionar; el modelado se hace escribiendo.
Esta página no discute si OpenSCAD es la herramienta para ti: eso lo decides en la comparativa de programas de diseño 3D gratis. Y si lo tuyo es dibujar la pieza en pantalla con restricciones visuales en vez de describirla con código, eso vive en el tutorial de FreeCAD desde cero. OpenSCAD es textual, FreeCAD es visual, y esta página no se mete en el segundo.
Dato clave
OpenSCAD es paramétrico por código: describes la geometría con texto y la previsualizas. La diferencia con un CAD visual no está en lo que puede hacer (ambos llegan a la misma pieza), sino en cómo lo dices: aquí las medidas son variables con nombre, y cambiar la caja de 40 a 45 milímetros es cambiar una palabra, no redibujar.
La idea que lo sostiene: describir, no dibujar
Antes de escribir nada, entiende el cambio de hábito. En un CAD visual dibujas un rectángulo y luego le impones que mida 40. En OpenSCAD no hay rectángulo que dibujar: escribes directamente que quieres un cubo de 40 por 60 por 5, y ahí está. La geometría nace con la medida, no la recibe después. No hay «más o menos»: cada cifra es exacta desde el primer momento, porque es la instrucción que la crea.
difference(), cylinder() y un module, que
son los pasos 2, 3 y 4 de esta guía. Imagen: Tp42,
Wikimedia Commons,
CC0.Esto tiene dos consecuencias prácticas. La primera, la precisión es gratis: como describes con números, no se cuelan imprecisiones de arrastre. La segunda, la pieza se lee: cualquier persona que abra tu archivo entiende qué mide cada parte sin necesidad de inspeccionar el modelo, porque las medidas están escritas. Para piezas que iteras o que compartes, eso es una ventaja seria.
El precio es el hábito. Si nunca has pensado una pieza como una secuencia de instrucciones, los primeros minutos cuesta. Pero el lenguaje es chico: tres primitivas (cube, cylinder, sphere), tres operaciones booleanas (union, difference, intersection) y dos transformaciones (translate, rotate). Con eso se construye casi todo.
Paso 1: declara las variables y escribe el primer sólido
Empieza por arriba del archivo declarando las medidas como variables. Escribe algo así: ancho = 60; largo = 40; alto = 30; grosor = 3;. Esas cuatro líneas son el corazón paramétrico de tu pieza: cambiar cualquiera de esos números más adelante actualizará toda la geometría. Una medida que aparece repetida en el código debe ser siempre una variable, nunca un literal escrito a mano.
Debajo, escribe el primer sólido: la caja exterior. En OpenSCAD, un cubo se declara con cube([ancho, largo, alto]);. Previsualiza con F5 y verás un bloque macizo de las medidas que escribiste. Ese es tu punto de partida: un sólido del que ahora hay que restar la cavidad interior y los agujeros.
Paso 2: resta la cavidad con una diferencia
Para vaciar el interior, usas la operación difference. La sintaxis es: escribes difference() {, pones primero el sólido del que restas (la caja exterior), luego el sólido que restas (un cubo más pequeño que deja el grosor de pared), y cierras la llave. Algo así: el cubo interior mide [ancho - 2*grosor, largo - 2*grosor, alto] y se traslada hacia arriba en grosor para dejar el fondo. Previsualiza y la caja aparece hueca.
El principio es general: la primera pieza dentro de una diferencia se mantiene, las demás se restan. Es la operación más usada de OpenSCAD, porque la mayoría de las piezas técnicas son sólidos con huecos. Acostúmbrate a leer la diferencia como «esto, menos esto otro», porque así es como se construye la cavidad, el agujero, el canal y la muesca.
Paso 3: añade los agujeros con cilindros restados
Para los cuatro agujeros pasantes de la base, restas cilindros. Un cilindro se declara con cylinder(h = grosor, d = 4.2); — altura igual al grosor de la base y diámetro 4,2 milímetros para un tornillo M4 con holgura. Como tienes cuatro, los declaras dentro de un módulo y los colocas con translate en cada esquina, desplazados del borde por una cantidad que también merece ser variable (margen_tornillo).
Añade esos cuatro cilindros dentro de la misma diferencia del paso anterior, después de la cavidad, y la previsualización mostrará la caja con sus cuatro agujeros pasantes. Si el diámetro no encaja con tu tornillo, cambias el 4.2 por otro número y toda la pieza se actualiza. Esa es la recompensa del paramétrico por código: un número cambia, todo se actualiza, sin redibujar.
Paso 4: organiza el código en un módulo
Cuando la pieza crece, el código se vuelve ilegible si todo está en un bloque. OpenSCAD permite definir módulos: bloques con nombre que agrupan geometría y que se invocan como si fueran una primitiva más. Escribe module caja() { ... } alrededor de tu diferencia, y luego invoca caja(); para generarla. Si más adelante quieres dos cajas, llamas al módulo dos veces; si quieres una variante, le pasas parámetros.
Los módulos admiten parámetros, y ahí es donde el paramétrico muestra toda su fuerza. Define module caja(a=60, l=40, h=30, g=3) y podrás generar cajas de distintas medidas llamando caja(a=80, h=20). Esa capacidad — la misma pieza con medidas distintas cambiando solo la llamada — es la razón por la que OpenSCAD brilla en piezas repetitivas o series.
Paso 5: renderiza y exporta el STL
La previsualización (F5) es rápida pero no es la geometría final: es una aproximación para trabajar. Antes de exportar, renderiza con F6: OpenSCAD calcula la malla exacta de triángulos que irá al STL, y si hay un error de geometría lo verás aquí. Si el render es limpio, exporta a STL desde el menú Archivo (o F7).
El STL congela la geometría y pierde las variables: quien lo reciba no podrá cambiar el 4.2 por 4.5 editando una línea. Por eso guarda también el archivo .scad: es el código fuente de tu pieza, y el que te permite editarla más adelante o compartirla para que otros la parametricen. Para tu laminador, basta con el STL; para iterar, el .scad es indispensable. Y si no tienes claro qué formato usar en cada caso, el comparativo de formatos 3D lo desmenuza.
Antes de darle a imprimir
- Renderiza antes de exportar. La previsualización no es la geometría final; el render (F6) sí. Si hay un error de CSG, aparece aquí.
- Pon boca abajo la cara más plana. La orientación decide tantos parámetros como el propio código: eso es orientación de piezas.
- Los agujeros verticales salen ligeramente ovalados. Es propio del proceso, no de tu código; si necesitas precisión, agujérelos después o achaflananos. Las tolerancias se tratan en tolerancias y encajes.
- Guarda el .scad, no solo el STL. El STL congela; el código te permite editar y parametrizar.
Si la pieza sale torcida o no encaja, casi nunca es culpa de OpenSCAD: suele ser del proceso de impresión. Antes de tocar el código, descarta warping, flujo mal calibrado o un problema de primera capa. Y si la pieza no cabe en la cama y hay que partirla, eso lo tratamos en imprimir piezas grandes por partes, no aquí.
Preguntas frecuentes
¿Necesito saber programar para usar OpenSCAD?
No programar en el sentido amplio, pero sí pensar en términos de instrucciones. OpenSCAD no es un lenguaje de propósito general: no tiene bucles complejos, ni entrada de usuario, ni redes. Es un lenguaje de descripción de geometría con tres gestos básicos: declarar variables para las medidas, combinar primitivas (cubo, cilindro, esfera) con operaciones booleanas y posicionarlas con traslación y rotación. Si has escrito una hoja de cálculo con fórmulas, tienes el nivel de abstracción que hace falta. Lo que sí cambia es el hábito: aquí no arrastras nada con el ratón, describes la pieza con texto y la previsualizas.
¿Para qué tipo de piezas sirve OpenSCAD?
Para piezas técnicas, repetitivas o paramétricas: cajas con tornillos, paneles con agujeros regularmente espaciados, soportes cuyas medidas quieres cambiar con un número, piezas que se generan a partir de una fórmula. OpenSCAD brilla cuando la geometría se describe bien con código: una rejilla de ventilación, un prisma con un canal, una caja ensamblable. No brilla en modelado orgánico, escultura ni formas libres: para eso están las herramientas de malla. Si tu pieza se parece a algo que diseñaría un ingeniero, OpenSCAD es candidato; si se parece a algo que esculpiría un artista, no.
¿Qué diferencia hay entre OpenSCAD y FreeCAD?
El medio. FreeCAD es visual: dibujas un boceto, lo restringes con medidas y levantas el sólido con operaciones que ves en pantalla. OpenSCAD es textual: describes la misma geometría con código, sin tocar el ratón para modelar. Ambos son paramétricos — las medidas siguen vivas y se editan cambiando un número — pero el flujo es opuesto. En FreeCAD trabajas con el ratón sobre la geometría; en OpenSCAD, con el teclado sobre el código. La elección es de preferencia y de tipo de pieza: para geometría que se describe bien en palabras, OpenSCAD es más rápido; para geometría que se entiende mejor viéndola, FreeCAD.
¿Cómo exporto desde OpenSCAD para imprimir?
Con la opción Exportar a STL del menú Archivo, o con la tecla F7. OpenSCAD genera la malla de triángulos a partir del código en el momento de exportar, así que conviene previsualizar primero (F5) para confirmar que la geometría es la que quieres, y renderizar (F6) antes de exportar para que el cálculo esté hecho. El STL resultante se abre directamente en el laminador. Guarda también el archivo .scad: es el código fuente de tu pieza, y el que te permite editarla más adelante cambiando una variable.