38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
|
|
# 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).
|