3D con OpenSCAD
OpenSCAD es un software libre para crear objetos CAD (Diseño Asistido por Computadora) sólidos en 3D.
A diferencia de la mayoría de los programas de modelado 3D (como Blender, Fusion 360 o SketchUp), OpenSCAD no es un modelador interactivo visual en el que usas el ratón para "dibujar" o "esculpir". En su lugar, funciona como un compilador basado en un lenguaje de descripción de texto.
En pocas palabras: escribes código que describe el objeto, y OpenSCAD lo renderiza en una pantalla 3D.
¿Cómo funciona?
OpenSCAD utiliza principalmente la técnica de Geometría Sólida Constructiva (CSG) y la extrusión de esquemas 2D.
Se pueden crear piezas complejas combinando formas básicas (cubos, cilindros, esferas) mediante operaciones matemáticas:
- Unión: Fusionar varias formas en una sola.
- Diferencia: Restar una forma de otra (por ejemplo, para hacer un agujero).
- Intersección: Conservar solo el espacio donde las formas se superponen.
Principales ventajas
- Diseño Paramétrico: Puedes definir variables al principio de tu código (por ejemplo,
diametro_tornillo = 4;). Si más adelante necesitas cambiar ese tamaño, modificas esa única línea y todo el modelo se ajusta automáticamente. - Control Total: Tienes una precisión milimétrica sobre las dimensiones y posiciones exactas de los objetos.
- Ligero y Gratuito: Es un programa de código abierto, consume muy pocos recursos del sistema y está disponible para Windows, Mac y Linux.
- Ideal para Impresión 3D: Es una de las herramientas favoritas de la comunidad de impresión 3D para diseñar piezas mecánicas, engranajes, carcasas y componentes técnicos.
¿Para quién NO es?
No es la mejor opción si buscas crear formas orgánicas, personajes de videojuegos, animación o escultura digital. Al depender puramente del código y las matemáticas, es una herramienta orientada a la ingeniería, la arquitectura y el diseño de objetos funcionales.
Página Oficial de OpenSCAD
En la página web de OpenSCAD tienes documentación, ejemplos y la forma de instalarlo en otros sistemas Operativos.

Instalación en Debian
En Debian la manera de instalarlo es mediante su paquetería propia:
sudo apt -y install openscadUna vez instalado puedes iniciarlo desde el Menú, lo veras en la sección Gráficos
Cuando lo inicies te aparecerá una pantalla de Bienvenida como la siguiente:

Puedes crear un Nuevo diseño 3D, Abrir uno existe o sobre los Ejemplos escoger uno de ellos.
Vamos a ver que nos ofrece el programa, para ello usaremos algun Ejemplo, desplegamos la opción de Viejo y escogemos el primero, que se corresponde a la forma 3D del logotipo de OpenSCAD.
Veremos lo siguiente:

Puedes apreciar que en la columna izquierda aparece el Editor, en el que se escribe el "código" que usas en OpenSCAD para decirle que tiene que dibujar en 3D.
Actualmente la versión de Debian 13 (Trixie) es la última versión disponible:

Nuestra primera creación 3D
Vamos a crear nuestro primer Objeto 3D. Para ello en el menú de Archivo pulsamos sobre New File (Nuevo fichero) y le pegamos en la zona del editor el siguiente código:
difference() {
// El objeto base (un cubo de 10x10x10 mm)
cube([10, 10, 10], center=true);
// El objeto que resta (un cilindro de radio 2 y altura 12)
cylinder(r=2, h=12, center=true);
}Simplemente pulsa F5 que corresponde a Previsualizar y obtendar un Cubo al que le hemos quitado un cilindro.

Seguramente te parezca un poco tosco el resultado, sobre todo si te fijas en el "cilindro", puedes redondear el resultado simplemente incluyendo en la primera línea del código la instrucción:
$fn = 60; // Usar suavizado (para curvas)

Además recuerda que todo lo que diseñes aquí lo puedes imprimir en 3D o exportar a otros formatos 3D:

Letras en 3D
Si necesitas algo más complicado de generar en 3D, como por ejemplo unas letras para un rótulo, aquí quizas sea más sencillo de crear que en otros programas....
// Texto 3D en OpenSCAD: "SOLOCONLINUX"
// F5 para Previsualizar / F6 para Renderizar
$fn = 60; // Suavizado para tipografías con curvas
// ---- PARÁMETROS DEL TEXTO ----
frase = "SOLOCONLINUX";
tamano_letra = 10; // Altura de las letras en mm
grosor_3d = 3; // Profundidad/Extrusión en mm
espaciado = 1.05; // Factor de separación entre letras
// Tipografía del sistema (Ejemplos: "Liberation Sans", "Arial", "Courier New")
// Usa el menú "Help -> Font List" en OpenSCAD para ver tus fuentes instaladas
fuente_elegida = "Liberation Sans:style=Bold";
module texto_3d_centrado() {
color("blue")
linear_extrude(height = grosor_3d, convexity = 10) {
text(
text = frase,
size = tamano_letra,
font = fuente_elegida,
halign = "center", // Centra el texto horizontalmente en el origen (0,0)
valign = "center", // Centra el texto verticalmente en el origen (0,0)
spacing = espaciado
);
}
}
// Renderizar el modelo final
texto_3d_centrado();
En tan solo 30 líneas, puedes generar un rotulo 3D.
El resultado es el siguiente:

Un Velero en 3D
Tengo el gusanillo marinero, así veamos un pequeño ejemplo de como se crearía un barco de Vela Ligero similar a un RS Zest...
// Velero Ligero "RS Zest" - Con control de Foque Opcional
// Escala 1:100 (Unidades en cm)
$fn = 100;
// ---- CONFIGURACIÓN DEL APAREJO ----
// Cambia a "false" si quieres navegar en solitario solo con la Vela Mayor
mostrar_foque = true;
// ---- PARÁMETROS DE DISEÑO REAL ----
eslora = 35.9;
manga = 14.7;
puntal = 5.6;
grosor_casco = 0.8;
pos_mastil_x = eslora * 0.24;
center=true;
// --- 1. MÓDULO BASE DEL CASCO SÓLIDO ---
module forma_casco_base() {
hull() {
translate([-eslora/2, 0, puntal/2 + 0.2])
scale([0.1, manga*0.5, puntal*0.75]) sphere(r=1);
translate([-eslora*0.05, 0, puntal/3])
scale([2.0, manga*0.58, puntal*0.9]) sphere(r=1);
translate([eslora/2 - 0.2, 0, puntal*0.55])
scale([0.8, manga*0.05, puntal*0.8]) sphere(r=1);
}
}
// --- 2. CASCO FINAL REALISTA ---
module casco_realista() {
color("Gold") difference() {
forma_casco_base();
translate([0.5, 0, puntal/2 + grosor_casco])
scale([0.84, 0.72, 1.2]) forma_casco_base();
translate([-eslora/2 - 2, 0, puntal - 0.8])
cube([6, manga * 0.42, puntal], center=true);
translate([0,0,0])
cube([4.0, 0.4, puntal * 3], center=true);
}
color("DimGray") {
translate([-2, 1.6, grosor_casco + 0.1]) cube([12, 0.6, 0.1], center=true);
translate([-2, -1.6, grosor_casco + 0.1]) cube([12, 0.6, 0.1], center=true);
}
}
// --- 3. ORZA Y TIMÓN ---
module apendices_realistas() {
color("White") translate([0, 0, -2.2])
hull() {
cube([3.5, 0.35, 7], center=true);
translate([-0.5, 0, -3.5]) cube([2.0, 0.35, 0.1], center=true);
}
color("White") translate([-eslora/2 + 0.05, 0, puntal/2 - 0.3]) {
color("Black") translate([0,0,0]) cube([1.1, 0.5, 1.8], center=true);
color("White") translate([-0.4, 0, -4.5])
hull() {
cube([1.4, 0.25, 6], center=true);
translate([-0.4, 0, -2.5]) cube([0.9, 0.25, 0.1], center=true);
}
color("Black") translate([2.2, 0, 1.1]) {
cube([5.5, 0.2, 0.4], center=true);
translate([1.5, 0, 0.4]) rotate([0, 10, 0])
cube([4, 0.12, 0.12], center=true);
}
}
}
// --- 4. TRATAMIENTO DE VELAS ---
module vela_3d(p1, p2, p3, grosor=0.15) {
color("GhostWhite", 0.85) hull() {
translate(p1) sphere(r=grosor);
translate(p2) sphere(r=grosor);
translate(p3) sphere(r=grosor);
}
}
// --- 5. APAREJO Y VELAS REALISTAS ---
module aparejo_y_velas_realistas() {
altura_botavara = puntal + 3.8;
longitud_botavara = 22;
// Mástil vertical
color("Silver") translate([pos_mastil_x, 0, puntal - 0.5])
cylinder(h=46, r1=0.5, r2=0.18);
// Botavara horizontal hacia popa
color("Silver") translate([pos_mastil_x, 0, altura_botavara])
rotate([0, 90, 0])
translate([0, 0, -longitud_botavara])
cylinder(h=longitud_botavara, r=0.28, $fn=20);
viento_y = 0.6;
// Vela Mayor (Siempre visible)
vela_3d(
[pos_mastil_x, 0, altura_botavara + 0.8],
[pos_mastil_x - longitud_botavara + 0.5, viento_y, altura_botavara + 0.3],
[pos_mastil_x, viento_y * 0.3, puntal + 44.5],
grosor = 0.10
);
// CONDICIONAL: Solo dibuja el foque si la variable es "true"
if (mostrar_foque) {
vela_3d(
[eslora/2 - 2, 0, puntal + 1.2],
[pos_mastil_x - 1.2, viento_y * 1.2, puntal + 3.2],
[pos_mastil_x, 0, puntal + 30.0],
grosor = 0.08
);
}
}
// --- 6. ENSAMBLE FINAL ---
module rs_zest_pro() {
casco_realista();
translate([0,0,0]) apendices_realistas();
aparejo_y_velas_realistas();
}
rs_zest_pro();
Este código de tan solo 130 líneas de código, incluso nos permite poner o quitar el Foque de nuestro pequeño barco de vela, simplemente cambiando el valor entre false ó true .

Nivel PRO
Para conocer y aprovechar toda la potencia de OpenSCAD aquí teneis una "chuleta interactiva" de la sintaxis para la versión actual en la página web de OpenSCAD:
https://openscad.org/cheatsheet/index.html

Además podeis leer desde la propia web de OpenSCAD de forma gratuita toda la documentación.
Tambien podeis comprar libros en Castellano sobre como se usa OpenSCAD.
Reloj Solar 3D que muestra la hora de forma Digital

En el repositorio:
https://github.com/lopezsolerluis/reloj-de-sol-libro
Tienes todos los documentos y datos necesarios para crearlo, e incluso un PDF completo.
Nota: El código necesario para ello apenas ocupa 360 líneas de codigo en OpenSCAD.