# Herramientas de diagnostico de piezas

Cuando modifico una pieza descargada o itero una propia, mirar el modelo en el laminador no basta: el laminador solo enseña lo que pinta, no lo que ha pasado. Estas herramientas responden cada una a **una pregunta concreta** sobre un STL. Viven juntas en `~/3D/utilidades/` porque sirven para cualquier pieza y cualquier proyecto.

## Como se usan

Todas se llaman igual y no dependen de ningún proyecto: reciben la ruta del STL por argumento.

```bash
uv run --with numpy python ~/3D/utilidades/diagnostico/<script>.py pieza.stl

```

Sin argumentos, cada script imprime su propia ayuda.

## Que pregunta responde cada una

| Script | Pregunta |
|---|---|
| `render3d.py` | ¿Cómo se ve de verdad? Render con **z-buffer** (cada píxel muestra la cara más cercana): proyección desde cualquier dirección, sombreado y recorte en profundidad. Sirve para sólidos de CAD, de miles de triángulos; con mallas de millones es lento. |
| `diagnostico/compara_stl.py` | ¿Qué le ha pasado a la pieza entre la v1 y la v2? Separa material **añadido**, **quitado** y **movido**, y distingue un cambio real del ruido del facetado. |
| `diagnostico/mapa_alturas.py` | Para cada punto de la planta, ¿cuál es la altura máxima? Encuentra rebajes sin tener que acertar dónde mirar. Vale para mallas enormes, como las de HueForge. |
| `diagnostico/voladizos.py` | ¿Qué pediría soporte y **con qué luz**? Separa un puente de 2 mm de un suelo en voladizo de 167 mm, que el laminador avisa igual. |
| `diagnostico/compara_orientacion.py` | ¿Conviene voltear la pieza? Huella en la cama y luz máxima de voladizo en seis orientaciones. |
| `diagnostico/superficies_no_prismaticas.py` | En una pieza hecha de caras planas, ¿dónde está lo que no lo es (esferas, chaflanes)? Marca dónde mirar. |
| `diagnostico/estabilidad_expositor.py` | ¿Este expositor aguanta **esta** pieza? Da tres números sobre el conjunto montado: inclinación, altura del apoyo respecto al centro de masas y fuerza que lo vuelca. |
| `verifica_preflight.py` | ¿Este 3MF hará la comprobación previa de la K2 Pro antes de imprimir? |

## Lo que he aprendido usandolas

- **La vista frontal engaña.** Añado siempre una vista oblicua (3/4) a `render3d`: es la que delata escalones y geometría enterrada.
- **Una diferencia pequeña no siempre es un cambio.** Dos mallas del mismo sólido con distinto número de segmentos no coinciden punto a punto. `compara_stl` compara la diferencia con la **sagitta**, el error máximo que puede meter el facetado: por debajo no prueba nada, por encima es geometría. Si la pieza no es de revolución, dice «no concluyente» en vez de inventarse un umbral.
- **«Malla rota» son cuatro defectos distintos.** `compara_stl` los separa: malla abierta, geometría pegada o solapada, triángulos duplicados y caras del revés.
- **En un expositor manda la fuerza de vuelco.** En el caso que motivó la herramienta hacían falta 300 gramos-fuerza para despegar el medallón de su asiento y solo 9 para tumbar el conjunto.
- **Antes de escribir una sonda nueva, miro esta tabla.** Una vez reimplementé un mapa de alturas que ya existía.

## Que no va aqui

Los scripts de un solo uso, atados a una pieza concreta (rutas fijas, medidas de esa geometría), se quedan en su proyecto. Lo que vale de ellos es el resultado, y eso va a las lecciones. Si hace falta repetir el diagnóstico, se reescribe en cinco minutos con el método.

La ficha completa de cada herramienta, con cómo leer sus veredictos, está en `~/3D/utilidades/README.md`.