Diseños personalizables

Cómo escribir un diseño personalizable

Los diseños personalizables son código con ajustes: KerfScript para la versión de corte láser y OpenSCAD para la de impresión 3D. Esta guía explica la sintaxis de los ajustes, las capas láser y el montaje 3D en KerfScript, las impresiones 3D multicolor, las bibliotecas que puedes usar y cómo publicar.

Qué es un diseño personalizable

Un diseño personalizable es código que crea un diseño a partir de unos pocos valores. Los visitantes no ven el código salvo que lo pidan: reciben un panel de ajustes normal, una vista previa en vivo y descargas. El código se ejecuta en su navegador, así que no se sube nada mientras personalizan.

Un diseño puede tener dos versiones: una para corte láser escrita en KerfScript, que se descarga como un SVG por capas, y otra para impresión 3D escrita en OpenSCAD, que se descarga como STL y 3MF. Rellena una o las dos en el Banco de trabajo y se publican juntas.

Convertir variables en ajustes

Pon tus ajustes al principio del archivo, antes del primer módulo. Cada uno necesita un valor simple. Un comentario después del valor describe el control, una línea de comentario encima se convierte en la ayuda y un comentario de grupo empieza una sección nueva. KerfScript y OpenSCAD leen los mismos comentarios, así que un ajuste con el mismo nombre funciona igual en las dos versiones.

/* [Size] */
// Width of the tag in mm
width = 70; // [30:1:160]
height = 30; // [15:0.5:80]

/* [Text] */
label = "Hello"; // 16
shape = "round"; // [round, square, star]
size = 2; // [1:Small, 2:Medium, 3:Large]
hole = true;
colour = "#c08552";

/* [Hidden] */
$fn = 64;
En tu códigoLo que ven los visitantes
width = 70; // [30:160]Un deslizador de 30 a 160
width = 70; // [30:0.5:160]Un deslizador con pasos de 0,5
count = 3;Un campo numérico
shape = "round"; // [round, square]Una elección entre los valores de la lista
size = 2; // [1:Small, 2:Large]Una elección con tus propias etiquetas
hole = true;Un interruptor de sí o no
label = "Hi"; // 16Un campo de texto de hasta 16 caracteres
colour = "#c08552";Un selector de color
size = [40, 20, 5];Un número por eje
/* [Group] */Empieza una nueva sección de ajustes
/* [Hidden] */Todo lo que va después se queda solo en el código

Nombra las variables en snake_case: hole_size se muestra como Hole size. Usa milímetros para que coincidan con el resto del sitio.

Versiones para corte láser en KerfScript

KerfScript es un lenguaje hecho para el corte láser. Las formas se cortan salvo que las envuelvas en engrave() o score(), y la descarga es un SVG con una capa de color por operación, listo para LightBurn o tu programa de láser. El texto puede usar cualquier fuente del catálogo de MyLaserTools por su nombre.

label = "Hello"; // 16
width = 70; // [30:1:160]

difference() {
    rect([width, 30], r = 5, center = true);
    translate([-width / 2 + 7, 0]) circle(d = 5);
}
engrave() text(label, size = 10, font = "Pacifico", halign = "center", valign = "center");
score() offset(delta = -2.5) rect([width, 30], r = 5, center = true);

material() define el grosor de la plancha y el kerf, y part() da nombre a cada pieza y dice cuántas cortar. La documentación de KerfScript cubre todo el lenguaje y el Playground de KerfScript tiene más ejemplos.

Mira las piezas montadas

Da a una pieza at = [x, y, z] para moverla y rotate = [x, y, z] para girarla, en grados, y la vista previa 3D muestra el diseño montado. Las piezas primero se giran y luego se mueven, como en OpenSCAD. Si dos piezas colocadas chocan, el Banco de trabajo te avisa, y así se nota un borde con dedos al revés. Las piezas sin posición quedan planas junto al montaje, y box() coloca sus propios paneles. Pon las piezas dentro de step("Pega la base") y la vista previa muestra flechas que arman el modelo paso a paso. hardware() añade espigas, tornillos e imanes a la vista 3D, y part(bend = [x0, x1, angle]) muestra una bisagra flexible doblada.

material(thickness = 3, kerf = 0.1) {
    part("base", at = [0, 0, 0]) rect([80, 40]);
    part("back", at = [0, 40, 3], rotate = [90, 0, 0]) rect([80, 30]);
    part("spare") rect([20, 20]);
}

Versiones para impresión 3D en OpenSCAD

La versión para impresión 3D es un programa de OpenSCAD y se descarga como STL y 3MF. Da a las piezas distintos valores de color() y cada color se convierte en su propio objeto en el 3MF, para asignar filamentos en tu laminador. La vista previa sigue la paleta elegida.

color("#c08552") cylinder(d = 60, h = 80);
color("#3d3277") translate([0, 0, 80]) cylinder(d = 62, h = 3);

Bibliotecas y fuentes

  • use <kerf/box> cajas y paneles con uniones de dedos en KerfScript.
  • include <BOSL2/std.scad> formas redondeadas, roscas, engranajes y uniones en OpenSCAD.
  • Fuentes para text() en OpenSCAD: Liberation Sans, Liberation Serif, Liberation Mono y Noto Sans. En KerfScript, text() puede usar cualquier fuente del catálogo.

Límites

  • El código puede tener hasta 500.000 caracteres en un solo archivo.
  • Solo se pueden incluir las bibliotecas disponibles. import() y surface() de OpenSCAD no están disponibles.
  • Una vista previa de OpenSCAD que tarda más de 45 segundos se detiene. Mantén $fn moderado mientras trabajas.
  • Se muestran hasta 60 ajustes, en el orden en que aparecen en el código.

Publicar

  1. Configura tu perfil de diseñador para que tu diseño enlace contigo.
  2. Guarda el diseño en el Banco de trabajo. Los diseños guardados aparecen en Mis diseños.
  3. Haz clic en Publicar, añade un título, una descripción y una foto de algo que hayas hecho con él, y elige una licencia.
  4. Si cambias el código más adelante, guárdalo y usa Actualizar diseño público para enviar la nueva versión a tu página.

Preguntas

¿Los visitantes necesitan saber programar?

No. Los visitantes solo ven los ajustes, la vista previa y los botones de descarga. El código está para los creadores que quieran aprender de él o copiarlo.

¿Puedo subir un archivo .kerf o .scad que ya tengo?

Sí. Usa Subir .kerf o Subir .scad en el Banco de trabajo y el archivo va a la versión de su lenguaje. Los archivos que usan la sintaxis de comentarios del personalizador conservan sus ajustes.

¿De quién es un diseño publicado?

Tuyo. La licencia que elijas se aplica al código y a lo que la gente haga con él, igual que con un diseño publicado.

¿Es gratis?

Escribir, guardar, publicar y personalizar diseños es gratis. Las cuentas gratuitas pueden guardar hasta 10 diseños privados; los publicados no cuentan.

¿Alguien puede cambiar mi diseño?

Copiar al Banco de trabajo les da su propia copia privada. Tu diseño publicado solo cambia cuando tú lo actualizas.

Las versiones para impresión 3D funcionan con OpenSCAD, software libre publicado bajo la Licencia Pública General de GNU. Su código fuente es público, y nuestra página de licencias reconoce cada proyecto de código abierto detrás del Banco de trabajo.