plano3d/docs/guia-tecnica.md

38 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# Guía técnica
Resumen de las decisiones técnicas vigentes y de las reglas del código. El detalle y la fecha de cada decisión están en [decisiones.md](decisiones.md).
## Producto
Aplicación de escritorio que reconstruye piezas mecánicas 3D a partir de planos de tres vistas y verifica el plano. Todo se procesa en el equipo del usuario: no hay servidor ni cuentas.
## Tecnologías
| Tecnología | Uso |
| --- | --- |
| Python 3.12 | Todo el proyecto |
| CadQuery (OpenCASCADE) | Sólidos 3D y exportación STEP/STL |
| ezdxf | Lectura de DXF |
| shapely | Geometría 2D de las vistas |
| OR-Tools CP-SAT | Búsqueda de la pieza que reproduce el plano |
| PySide6 y VTK | Interfaz y visor 3D |
| SQLite | Historial local de conversiones |
| PyInstaller | Instalador |
| pytest | Pruebas automáticas |
## Alcance
- Entradas: DXF (imprescindible), DWG mediante conversor externo, PDF vectorial (importante).
- Geometría imprescindible: tres vistas, caras planas, chaflanes, agujeros pasantes y roscas (agujero más nota).
- Geometría importante: agujeros ciegos, avellanados y cajeados; piezas de revolución.
- Sistemas de proyección europeo (ISO-E) y americano (ISO-A); se avisa si un plano los mezcla.
- Lo que no se soporta se detecta y se avisa. Nunca se entrega una pieza que no reproduce el plano sin advertirlo.
## Reglas del código
- `motor/api.py` es el contrato entre motor y aplicación. La aplicación solo importa desde ahí, y cualquier cambio se acuerda entre los dos.
- `motor/simulado.py` devuelve la pieza CUBE01 mientras el motor real no esté terminado.
- `prototipo/reconstruir.py` es la prueba técnica original. Se conserva como referencia y no se modifica.
- Cada pieza del catálogo tiene su carpeta en `pruebas/catalogo/` con `plano.dxf`, `esperado.step` e `info.md`.
- Ramas, commits y revisiones según [CONTRIBUTING.md](../CONTRIBUTING.md).