REVISIÓN8 — ENCAJE GEOMÉTRICO

Se conserva la silueta y el círculo maestrosv7. Cuerpo3.000×3.000×800mm. Los dospostes se desplazan aY435, carasY400…470. La profundidad total con soporte posterior es870mm. Altura3000; mesa1800×650, cara superior1000.

166piezas:21interpenetracionesv7 eliminadas. Doslargueros enU se reemplazan por cuatrotramosrectos; no hay entalles ocultos en ellos. Ménsulas725mm. Riostrasmesa45° con asiento sobreY400 yZ835; perfilesDXF enYZ. Riostrasposteriores con planosdeasientoX±915,Z70yX0; perfilesDXF enXZ. Las caras terminales y los largos fueron regenerados desde los mismos sólidos.

QA:colisiones.json verifica98miembrosconvexos porSAT y68tablas porclippingcoplanar, más separaciónAABBentre fachada yotrosmiembros. Cero intersecciones positivas a tolerancia computacional0,001mm. La tolerancia es de auditoría digital, no una tolerancia exigida al carpintero.

contactos.json:357encuentros de caras con área positiva; las166piezas formanun componenteconectado. No quedan piezas geométricamente flotantes. Esto no define tornillos, soldaduras, capacidad, deformaciones o estabilidad. Bases/anclajes yH3integrada siguen pendientes de ingeniería y material real.

Generación reproducible:
1. Ejecutar audit.py desde Python con dependenciasnumpy,shapely,trimesh,pycollada,ezdxf,mapbox-earcut,Pillow.
2. audit.py importa build.py y luego collision_audit.py/contact_audit.py; deben conservarse los cuatro scripts juntos.
3. master_geometry.py genera la lámina de geometría pura sin mesa ni apoyos.

No insertar H3 en los largos actuales sin medir y descontar el retiro de testa. Los perfiles recortados de diagonales son geometría de asiento; la capacidad y fijación de cada nudo siguen abiertas.
