# Figuras científicas y proyecciones `src/drawings.py` genera una composición multipanel A3 horizontal de 420 × 297 mm, un PDF vectorial, un SVG vectorial y cinco pares SVG/DXF individuales. La escena de líneas y textos es común al PDF y al SVG. Cada exportación registra la versión y SHA-256 del JSON maestro; `planos_metadata.json` contiene dimensiones, límites físicos, escalas y plano de corte. Los parámetros físicos se expresan en metros. El origen XYZ es la esquina inferior frontal izquierda; X crece a la derecha, Y hacia el fondo y Z hacia arriba. Planta XY: Y arriba de la lámina; frontal XZ: observación en dirección +Y; lateral YZ: observación en dirección -X. El isométrico es una proyección ortogonal con base ortonormal; las longitudes sobre los ejes sufren la reducción propia de esta proyección. ## Escala e impresión Para el JSON inicial, las vistas ortogonales se imprimen a escala 1:30 en A3 al 100 %. El isométrico usa su escala indicada, 1:40 inicialmente. Las escalas se calculan de nuevo si cambian las dimensiones para conservar espacio de rotulación. La barra gráfica corresponde sólo a las vistas ortogonales. Las cotas numéricas en metros prevalecen sobre cualquier medición de la impresión. Al reducir el PDF a A4, la escala numérica impresa ya no es válida; usar barra gráfica y cotas. Los DXF R12 usan coordenadas de proyección en metros, escala geométrica 1:1, e incluyen líneas de cota y anotaciones. Como R12 no define universalmente INSUNITS, configurar **metros** al importar. Cada vista tiene origen geométrico (0,0). El DXF isométrico conserva la proyección ortogonal y su reducción axial. Se entregan caracteres Windows-1252 compatibles con numerosos lectores R12; SVG y JSON están en UTF-8. SVG/PDF son las referencias para la composición editorial y alineación de texto; la justificación DXF básica puede diferir entre aplicaciones. ## Qué representa la lámina inicial La envolvente discontinua utiliza X=1.10 m, Y=1.10 m y Z=2.50 m como dimensiones preliminares proporcionadas. No representa tubos de sección desconocida ni una estructura constructiva validada. Sin el archivo `croquis_original.jpeg` no hay lectura visual confirmada. Los 20 identificadores U01-U20 existen en el JSON; no se dibujan bolsas sin posición, diámetro y altura explícitos. Los sensores se representan sólo con un símbolo sin tamaño físico cuando tengan coordenadas explícitas. El corte A-A corresponde a y=Y/2. Muestra únicamente intersecciones de líneas geométricas explícitas con ese plano, sin inferir material, espesores ni rellenos. En el estado inicial, el corte se entrega vacío y rotulado. No es una sección constructiva de tubos, codos o bolsas. Para geometrías explícitas, se dibujan intersecciones de su representación alámbrica; un corte material exacto requiere las operaciones booleanas de CAD, una vez disponibles todos los parámetros físicos. Los tubos requieren start/end/outer_diameter_m/wall_thickness_m; los codos, center/axis_u/axis_v/bend_radius_m/angle_deg/outer_diameter_m/wall_thickness_m; la polisombra, sólo el polígono vertices. El colector geométrico de CAD decide qué objetos están completos para todas las salidas: un tubo o codo con espesor desconocido queda omitido también de las figuras, aunque conozcamos su diámetro exterior. Las unidades necesitan simultáneamente position, diameter_m y height_m. No se inventan tramas, tejidos, calibre de malla, diámetro de PVC ni distribución de unidades. `wall_thickness_m` no se representa como sección interior en estos planos alámbricos. Las instalaciones con position y size_m se representan por su caja geométrica explícita. Geometría incompleta produce advertencias y queda sin representación material. ## Reproducción y verificación Desde la raíz del proyecto, ejecutar el generador principal o invocar `generate_drawings(design, outdir)` con un diccionario leído del JSON. Se requieren Python y ReportLab para el PDF; SVG y DXF se generan con la biblioteca estándar. Las pruebas `python -m unittest tests.test_drawings -v` comprueban dirección de ejes, ausencia de material inventado, sincronización de cambios dimensionales, documentos vectoriales reales, metadatos e inclusión de objetos explícitos. Antes de publicación, revisar la última exportación en un visor PDF y comprobar impresión al 100 %, tipografía y ausencia de superposiciones. El resultado es una figura conceptual; no documenta resultados empíricos, desempeño agronómico, estabilidad física, ventilación medida ni condiciones ambientales. El porcentaje reportado de polisombra no se convierte en humedad relativa.