You are on page 1of 288

UNIVERSIDAD SIMÓN BOLÍVAR

Decanato de Estudios Profesionales
Coordinación de Ingeniería Mecánica

ELABORACIÓN DE UN PROGRAMA DE CÁLCULO DE CARGAS TÉRMICAS
PARA EDIFICIOS DE OFICINAS

Por
Ricardo González Pernía
Sartenejas, octubre de 2006

UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Mecánica

ELABORACIÓN DE UN PROGRAMA DE CÁLCULO DE CARGAS TÉRMICAS
PARA EDIFICIOS DE OFICINAS

Por
Ricardo González Pernía
Realizado con la Asesoría de
Alfonso Quiroga

PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de
Ingeniero Mecánico
Sartenejas, octubre de 2006

UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Mecánica

ELABORACIÓN DE UN PROGRAMA DE CÁLCULO DE CARGAS TÉRMICAS
PARA EDIFICIOS DE OFICINAS
PROYECTO DE GRADO presentado por
Ricardo González Pernía

REALIZADO CON LA ASESORÍA DE Alfonso Quiroga
RESUMEN
La elaboración de un programa de cálculo de cargas térmicas partió de la
investigación intensiva del funcionamiento de un programa existente que se esquematizó
para identificar acciones de mejora y elementos de utilidad.
Se desarrolló el programa en Visual Basic 6.0, para poder establecer una interfaz en
entorno de Windows que permitiera una fácil introducción y corrección de los datos y que
reportara los datos de modo global y visible tanto en pantalla como en un archivo que
respalde el cálculo. Se trabajo con rutinas de almacenamiento de listas de datos y
procedimientos de cálculo iterativos basados en el procedimiento de las Diferencias de
Temperaturas Totales Equivalentes según las normas ASHRAE 1997.
Se obtuvo de este modo un programa en ambiente de Windows que permite realizar el
ingreso de los datos de unidades de manejo de aire, de ambientes y de cargas en función de
las necesidades del usuario y no siempre de modo directamente dependiente, que realiza los
cálculos en una mayor velocidad y permite obtener un archivo de resultados fácil de
consultar.

PALABRAS CLAVES
Programa de Cálculo, Cargas Térmicas, normas ASHRAE

Aprobado con mención:_____
Postulado para el premio:_____
Sartenejas, octubre de 2006

Dedicatoria:
A mi madre, quien me ha
enseñado con el ejemplo que la
constancia y el esfuerzo siempre
reportan como premio los buenos
resultados en la vida.

"El secreto de la existencia humana no solo está en vivir, sino también en saber para qué se vive."
- Fedor Dostoievski -

AGRADECIMIENTOS

Al Profesor Alfonso Quiroga, por el apoyo constante e incentivo a seguir
ambicionando con un mayor desarrollo del programa
A mi hermana, por ser mi constante ayuda, apoyo y editora de la estructura del
trabajo.
A mi madre por sus constantes incentivos y conversaciones tranquilizantes, que me
dieron las herramientas para soportar la presión del trabajo.
A mi familia por el seguimiento, apoyo y ayuda brindados durante este período final
de trabajo del proyecto.
A la profesora Nathaly Moreno, por haberme puesto en contacto con el profesor
Quiroga y motivarme a hacer el proyecto de programación en Visual Basic.
A Luis Luque por su aporte prestándome el libro de mayor referencia para la
programación en Visual Basic durante todo el período.
A la Universidad Simón Bolívar por todo el aporte que ha dado a mi cultura como
futuro ingeniero y como actual ciudadano de un país en crisis.
A Dios sobre todas las cosas por ser mi guía espiritual en los momentos de mayor
dificultad.
A los muchachos de Vanguardia Universitaria USB, porque a pesar de siempre
hacerme ocupar mi tiempo en otras cosas distintas al proyecto, lograban que despejara mi
mente y no rebosara los niveles de estrés.

............................................... Calor Sensible y Latente............................................................. 11 4.....3............................................. 6 4............. 5 4.......................................................................................................... Ganancias de Calor Internas ...............................................2..................2.............................. Humedad..... 26 5...................... 24 5......................................... 12 4.............................................1.. 4 3.......................2........ ÍNDICE GENERAL 1......... Procedimientos de Cálculo ..................................... 25 5................i 1.........................................1........................... Tablas ........................... Cargas de Enfriamiento .............. 33 5..................................................................... Procedimiento.............................2........................................1........... Ganancias de Calor Externas............................2................. Psicrometría ..............................2................ OBJETIVOS ....... 6 4.....................3. FUNDAMENTOS TEÓRICOS..........................................iv 1.....1.................... 15 4..................................... Método de la Función de Transferencia (MFT) ..... 40 6................................... INTRODUCCIÓN ...........1.......................................... Objetivo General ............................................2............................................................................................................................................ Figuras ................ 1 2.................................................................................................................. 5 3.................................................................2...........................................................................1.......... Método de las Diferencias de Temperaturas Totales Equivalentes (DTTE) .......2...........4............ Método de la Diferencia de Temperaturas de las Cargas de Refrigeración (DTCR).......................... 18 4............4........................................... 38 5... Índice de Tablas y Figuras. Temperatura del aire......................................................2.................. 18 4........................................ Cargas de Enfriamiento ..................2................. 9 4.....................................................................................2.2........... 40 i ...... ÍNDICE GENERAL .................. 22 4................ 25 5........................................... 38 6... Conceptos Termodinámicos ................................................................ 10 4.....3.......iv Abreviaturas .....................................1.... MÉTODOS Y PROCEDIMIENTOS ................................................................. 22 4............................. 14 4..................1.......2................................. Antecedentes..................................5.... Propiedades del aire húmedo................................................... Técnicas del Cálculo de Cargas de Enfriamiento de Espacios cerrados ........1....... 9 4....................4...................1............3................iv 1............................ Fundamentos del Balance..............................4.........1.........4...................................................................... Objetivos Específicos ............................4.............1....... DESARROLLO ................................................. Obtención de las Tablas “Regionalizadas”..................... 5 3................................4.....................2....................................

............. Temperatura Sol-Aire...6........ Estructura del Programa . 131 E.... Avances en el Procedimiento de Almacenamiento y Corrección de Datos .................. 134 ii ..... 82 Apéndice A5 ...............................................................................1....................................................................................................................................... 77 Apéndice A4 .........................2.................................... 94 Apéndice D.................. 109 D........... APÉNDICES ..................................................................... Ganancia de Calor a través de Áreas Ventanales..... Imágenes de una corrida del programa........... Métodos de Almacenamiento de Datos .................. 114 E........ Coeficientes de Función de Transferencia para Conducción...... 121 E................ 88 Apéndice B............................ Términos de programación ...4............................................... Conceptos Básicos de Programación .......................................................................... Tablas ........................ Ganancia de Calor Sensible .......1........................... 76 Apéndice A3 ...................... 114 E...... El Programa ........................ 129 E......... 112 Apéndice E.......................................................5............................................................ 114 E......5.............. Secuencia de Funcionamiento del Programa................1....................................1............ 69 8.................................................................................... Principios de las Cargas de Calefacción ..4.....1............... ......1................................................... Avances en el Procedimiento de Cálculo del Programa.................. Conceptos de Cálculo de Ganancia de Calor ............................................... 73 Apéndice A.................. 56 6.............5........................................... 49 6.............. 72 Referencias .1..... BIBLIOGRAFÍA .......................... Ganancia de Calor a Través de las Superficies ..................................................................... 86 Apéndice A6 .... 71 9........... 89 Apéndice C .............7..................................................................................... 59 7..............................2..................................2..................................................... 131 E......2.............................................................. Espacios Adyacentes y Pisos....................1................ 109 D............. 72 10............6.............6......................................................................................1...... 42 6............................. 132 E.............................................................................................. 50 6..........................2..................................................... 73 Apéndice A2 ...................................3..............4........... Ganancia de Calor a través de Ventanas Exteriores.....................................................................................................................2............6........................................................1................................3.. El Método............................................................... Ganancia de Calor a través de Superficies Interiores... 128 E......................... Ganancia de Calor a través de Superficies Exteriores ........................................ Ganancias de Calor por Infiltración y Ventilación .....2.... 133 E........3................................................................ 131 E.. 55 6...................... 73 Apéndice A1. Fuentes de Calor en los Espacios Refrigerados .. Desarrollo del programa .............................................................2............ Procedimiento de Cálculo de Diferencias de Temperaturas Totales Equivalentes en un Promedio de Tiempo (DTTE/PT) ....................... CONCLUSIONES Y RECOMENDACIONES .................2.............................1.........................................2...................................................... RESULTADOS .... 114 E.......................................................................................................................... 122 E...........................................................................................................1................................................................................................ 114 E........

.................. 136 E...........2.......... .. 135 E..... Ganancia de Calor a través de las Paredes y Techos Exteriores .........8......... ................. 138 iii ..7... Ganancia de Calor a través de infiltraciones y ventilación. 135 E...9... 134 E................6.. Procedimientos de Conversión. Tratamiento de la Ganancia de Calor y la Carga de Refrigeración.........2............................. 137 E...E..................................... Promedio Temporal de la Carga de Refrigeración..................2.10............. ........... La Diferencia de Temperatura Total Equivalente como una función de los factores de decremento y retrasos temporales............2......3.......2.......................................... Ganancia de calor desde espacios adyacentes..............

A.1 Número mínimo de cambios de aire por hora requeridos por las normas del M. Factores U para varios elementos con vidrios en W/(m *K) 79 Tabla A3.1. Coeficientes para vidrios DSA. Datos Climáticos de las Ciudades más importantes de Venezuela 88 117 Tabla E.5. Ganancia de Calor de Motores Eléctricos Comunes 85 Tabla A5.1 de requerimientos de aire por ventilación 73 Tabla A1.2.3 de requerimientos de aire por ventilación 75 Tabla A2.4.2. Temperaturas soleadas para Julio 21. Irradiación Solar y Coeficiente de Ganancia de Calor para Latitud 16° N 77 78 Tabla A3. Código de la creación y despliegue de la lista de ambientes disponibles 46 Figura 6. Reflectividad de superficies exteriores 2 Tabla A3.S.1.2. Porcentajes Convectivos y de Radiación del total de Calor Sensible 84 Tabla A4. Coeficiente de función de transferencia para Techos Tabla A4. Escalas comunes de temperatura 10 Figura 6. Porcentaje de Rango Diario 27 Tabla 5.2.1 Tabla de propiedades térmicas para materiales comunes de edificios y aislantes 86 Tabla A5. Figuras Figura 4.2 Coeficiente de función de transferencia para Paredes 83 Tabla A4.1. Código de almacenamiento de las unidades de manejo de aire 43 Figura 6. Procedimiento de almacenamiento de las correcciones de datos en las unidades de manejo de aire 47 iv .1.2 Conductancia y Resistencias del Aire en Superficies 87 Tabla A6.1.3. Ganancias de Calor de los ocupantes de un espacio refrigerado 123 1.3. Código principal de la subrutina de cargar el módulo de las unidades de manejo de aire 44 Figura 6.2 de requerimientos de aire por ventilación 74 Tabla A1.1.) 80 Tabla A3. Comando ejecutado con el botón de “Crear el entorno para guardar los datos y resultados” 45 Figura 6.2. Índice de Tablas y Figuras 1. Tablas Tabla 5.5. Factores U para varios elementos con vidrios en W/(m2*K) (cont.1.4. para cálculos de Transmitancia y Absorbancia28 Tabla A1.2.1.3 Tasa de Ganancia de Calor de los Ocupantes 84 Tabla A4.4.1.3.2. Irradiación Solar Extraterrestre y Datos Relacionados 28 Tabla 5.S según uso del local 76 Tabla A3.6. Extracto del código de selección específica de las características de una carga 47 Figura 6. 40° N de Latitud Tabla E.2.5 Transmisión Visible (VT) y Coeficientes de Sombra (SC) para vidrios solos y aislados 81 82 Tabla A4.

Imagen de la carga de personas cuando se selecciona una lista de datos 57 Figura 6.12. Imagen del programa en la Carga de Personas Figura 6.7. Código particularizado para el cálculo de las cargas de Equipos de Potencia 53 Figura 6. Esquema de funcionamiento del programa.11.8. 119 Figura E. Balance de Calor de un Retorno por Plénum 126 v . Estracto del análisis de las cargas por oficinas Figura 6.1.49 Figura 6. Esquema del procedimiento de cálculo del programa 55 56 Figura 6. Esquema de funcionamiento del programa.10.13. Balance de Calor en un instante para material cristalino expuesto al sol.9.2. parte 1 de 2 58 Figura 6. parte 2 de 2 59 Figura E.

la radiación emitida por los cuerpos negros a la temperatura del aire exterior.Abreviaturas A A α aj αD Área Constante de Evidencia Solar Absorbancia de la superficie a la radiación solar Coeficientes de Absorción de Vidrios CGCS C °C Cp Absortancia de vidrios DSA American Society of Heating Refrigerant and Air-Conditioning Engineers Coeficiente de Extinción Atmosférica Altitud Solar Coeficiente de ganancia de calor solar Factor de Difusión del Cielo Grados Celsius Calor específico a una presión constante Cpd C ps Calor específico del aire a presión constante Calor específico del vapor de agua δ Declinación Diferencia entre la radiación incidente en la superficie desde el cielo y los alrededores y. W/m2 ASHRAE B β ∆R DSA DTCR DTTE E ε ea Ed ED EDN Edg Eds °F FCR FS Fsa FTC Ful γ g ij h ha Diferencia de Temperaturas de las Cargas de Refrigeración Diferencias de Temperaturas Totales Equivalentes Energía transmitida Emitancia hemisférica de la superficie Promediado en el tiempo Irradiación Difusa Irradiación Directa Irradiación Normal Directa Irradiación Reflejada del Suelo Irradiación Difusa al Cielo Grados Fahrenheit Factores de Carga de Refrigeración Factor de sombra Factor de balasto de iluminación Función de Transferencia para Conducción Factor de uso de iluminación Acimut Superficie-Sol Factor de radiación entre la superficie i y la superficie interior j Entalpía Entalpía específica del aire 1 .

Número de moles de vapor de agua por partes de aire con vapor saturado. [kJ/kg] Ángulo de hora Humedad relativa Incidencia total de radiación solar a la superficie.θ Coeficiente de transferencia de calor por radiación y por convección externa a la superficie. Pascal Presión de aire seco Acimut Superficial Libras por pulgada cuadrada atmosférica Promedio en el Tiempo Presión de vapor Calor Calor de conducción de una superficie interna en un instante θ °R Ra REi .hci hg 0 Coeficiente convectivo de calor en la superficie interior i Entalpía específica del vapor de agua ho psia PT pw q qi . W/m2 Grados Kelvin Kilo joules Kilogramos Latitud Masa de aire Método de la Función de Transferencia Masa de vapor Número moles de aire seco. que es absorbida por la ρg superficie i en el instante θ Capacidad de reflejar del Suelo RLi . Fracción de radiación absorbida Número de moles de vapor de agua en una muestra de aire húmedo.θ superficie i en el instante θ Constante de gases del agua Temperatura Ángulo de Incidencia Temperatura del aire interno en el instante θ Transmitancia de vidrios DSA Temperatura promedio de la superficie interior i en el instante θ 2 . It °K kJ kg L ma MFT mw na Ni nw nws Pa.θ Grados Ranking Constante de gases de aire seco Tasa de calor irradiado por los equipos y ocupantes. W/(m2 K) Entalpía específica del vapor de agua. pa ψ Rw T θ Ta .θ Tasa de calor irradiado por las luces y absorbido por la superficie i en el RS i .θ τD Ti .θ instante θ Tasa de energía Solar que incide por las ventanas y es absorbida por la hw H Hr.

tj Coeficientes de Transmisión de Vidrios T j .θ Temperatura promedio de la superficie interior j en el instante θ TVidrio V U UMA w W Xw Xws Y ∑ Total de Vidrio Volumen Factor de resistencia térmico del cristal Unidad de Manejo de Aire Grado de humedad Vatios Fracción molar del vapor de agua en aire húmedo Fracción molar de vapor saturado en aire Tasa de difusión vertical/horizontal del cielo Inclinación de Superficie Acimut Solar φ 3 .

permitiendo a su vez que se pueda adaptar a otras latitudes donde se utilicen los métodos de ASHRAE. la inclusión de tablas de datos para Venezuela y la inclusión de la normativa nacional.2. que cumple los principios termodinámicos básicos y considera los múltiples factores que pueden afectar los resultados de éstos. 4 . estructurándolo de un modo que simplifica la comprensión de las variables y detalla los resultados en las distintas etapas dentro del sistema de espacios que conforma a una edificación. rápido y preciso en su obtención de resultados. Se diseña de este modo un programa de cálculo de cargas térmicas funcional. se desarrolla un nuevo sistema adaptado a los métodos de cálculo actuales. INTRODUCCIÓN El presente trabajo se fundamenta en la elaboración de un programa de cálculo de cargas térmicas. añadiendo características que simplifican el trabajo para Venezuela. Partiendo de un programa realizado en la década de los ochenta por un grupo de ingenieros y estudiantes de ingeniería. que a su vez trabaja en una interfaz diseñada para un entorno de Windows y entre las particularidades importantes del mismo están.

Objetivos Específicos - Modernizar los procedimientos de cálculo del programa existente introduciendo los cambios que ha incorporado ASHRAE en sus metodologías de cálculo.1.2. 5 .3. - Incorporar datos climáticos de Venezuela para obtener un perfil de carga diario ajustado a nuestras necesidades específicas. - Desarrollar un programa que funcione en una interfaz compatible con Windows. Objetivo General - Desarrollar un programa que compile los procedimientos de recolección de datos y cálculo de cargas bajo los nuevos esquemas del procedimiento de Diferencias de Temperaturas Totales Equivalentes según las normas ASHRAE 1997 en el lenguaje de programación Visual Basic 6. 3. - Mejorar la entrada de datos facilitando su modificación y corrección. OBJETIVOS 3.

Antecedentes Previo a la elaboración del programa de cálculo de cargas térmicas que resultante de este proyecto. Evalúa todas las cargas fundamentalmente en función de tablas adaptadas a la región venezolana. A continuación se menciona una breve descripción de algunos programas que se conocieron y observaron previo al desarrollo del proyecto: • Aire: Programa de cálculo de cargas térmicas y psicrometría desarrollado por estudiantes y profesores de la Universidad Simón Bolívar en la década de los ochenta. se examinaron los software de cálculo más comunes en el mercado. el formato de introducción de datos. el desarrollo del estudio psicrométrico posterior al cálculo de cargas. Los conocimientos de termodinámica para el cálculo del calor son los mismos. para cualquier latitud. sin embargo las peculiaridades de la zona deben de tenerse en cuenta si se desea facilitar y simplificar el proceso de cálculo para usuarios locales.4. FUNDAMENTOS TEÓRICOS 4. algunos parten del uso de bases de datos en forma de tablas y otros de las listas simples de datos.1. Las diferencias fundamentales que se pueden conseguir entre diversos programas son: El sistema de unidades utilizado. el cálculo por unidades de enfriamiento y de manejo de aire. entre latitudes de 8 y 10°N. Todos los programas existentes están basados en métodos similares. en base a lo cual se llegó a las siguientes premisas. 6 .

Su desventaja principal es que sólo permite calcular un espacio refrigerado a la vez.A. se basa en el uso de una base de datos sencilla que no requiere la instalación de servidores o librerías adicionales. Se maneja en el entorno de Windows. que por ser de código cerrado (requiere licencia) no permite conocer el método de cálculo. puede servir de soporte para el diseño del circuito de enfriamiento y de ciclos de calor. Su principal problema es que está basado en las normas europeas y españolas y su base de datos la conforman únicamente ciudades de España. 7 . Entre los programas analizados es el más completo. Su interfaz es en monitor completo a tres colores. Muy similar al entorno de trabajo del programa Aire. • Dpclima: Programa desarrollado por el Departamento de Termodinámica Aplicada de la Universidad Politécnica de Valencia (España). se fundamenta en el uso de bases de datos complementarias al programa. Es un programa más diverso porque además de calcular los requerimientos de carga de los ambientes.. con una interfaz gráfica que permite la visualización de lo que se va introduciendo como datos. Su desventaja es que se basa en las normas Europeas y que su base de datos de ciudades está conformada únicamente por ciudades de España. Requiere de una licencia de uso.• Climaver: Programa desarrollado por la Universidad Politécnica de Valencia en conjunto con Cristalería Española S. • CoolPack: Programa desarrollado por el Departamento de Ingeniería Mecánica de la Universidad de Dinamarca en 1997.

Como desventaja. de fácil manejo. Sus desventajas son que desglosa las cargas sólo en los espacios. populares en el entorno de los expertos en aire acondicionado. permite la zonificación y reporta una alta precisión de resultados. • Carrier E20: Programa que se destaca por su organización en pantalla. • Trace (Trane): Programa muy versátil en la etapa de carga de datos. se estiman las cargas en cada hora del día. • Carrier E53: Un programa muy amigable para la introducción de carga. no en el edificio completo y la interpretación de los resultados es compleja. aunque tiene como desventajas el que no permite salvar datos. • Saunier Duval: Es de muy fácil manejo. rápido y eficiente. pero inapropiados para fines académicos. Su desventaja es que desglosa los datos de carga únicamente en la hora pico y no considera los fenómenos de acumulación de calor • Carrier HAP: Programa que se maneja en entorno de Windows. permite la zonificación del edificio y da la posibilidad de simular el consumo energético del sistema. tiene pantallas laberínticas y su base climática no es modificable. debido a que no son abiertos. permite desglosar las cargas de varios modos. relativa precisión debido al uso del método Carrier y permite zonificar el edificio. ni permite zonificar el edificio. 8 . se requiere introducir pocos datos y estima de modo rápido las cargas. Tiene como desventajas que no permite elegir entre espacios simples o complejos y no permite fraccionar las cargas sino en el ambiente específico. posee librerías de cada uno de los elementos a insertar. no en el edificio.Algunos otros programas de cálculo de cargas térmicas.

95 Argón 0. Desde el punto de vista de la psicrometría. Se utiliza para ilustrar y analizar las características de los diversos procesos y ciclos de los sistemas de aire acondicionado.4. Psicrometría Es el estudio de las propiedades termodinámicas del aire húmedo.8 a 37.2. Una nube en el cielo está compuesta por microscópicas partículas de agua condensada que está rodeada de una delgada capa de vapor de agua.93 Dióxido de Carbono 0. Varía sigilosamente de acuerdo a la ubicación geográfica y de acuerdo al tiempo.2. Conceptos Termodinámicos 4. mejor conocido como humedad. La superficie de la tierra se encuentra rodeada de una capa de aire que es llamada atmósfera o aire atmosférico.01 La cantidad de vapor presente en el aire seco a una temperatura entre un rango de 17. Esto tiene una influencia significativa en las características del aire seco.05 a 3 por ciento de la masa. La composición del aire seco en porcentajes de volumen de sus elementos más comunes es la siguiente: Nitrógeno 78.1. Aire húmedo. Estas capas son las que le dan a las nubes la capacidad de flotar en el aire.03 Otros gases 0.8 ºC varía desde 0. La composición del aire seco es comparativamente estable.08 Oxígeno 20. 9 . El vapor de agua es más ligero que el aire. la atmósfera baja es una mezcla de aire seco (incluyendo algunos agentes contaminantes) y vapor de agua.

La conversión de la escala Celsius a la escala Fahrenheit se realiza de la siguiente manera: º F = 1.697 psia). La temperatura de una sustancia es la medida de cuán fría o caliente se encuentra ésta.01 ºC (32. con una presión de 611.08864 psia).1 se observan de modo gráfico sus equivalencias. Se dice que dos cuerpos se encuentran a una misma temperatura si no se observa ningún cambio en sus características térmicas al ponerlos en contacto.325 Pa (14.2.1. Temperatura del aire Temperatura y escalas de temperatura. a una presión atmosférica estándar de 101.018 ºF). Escalas comunes de temperatura En el sistema internacional.2. Existen varias escalas usadas comúnmente para medir la temperatura de varias sustancias. la escala Celsius tiene un punto de solidificación a 0 ºC (32 ºF).4. Figura 4. y un punto de evaporación a 100 ºC (212 ºF).2 Pa (0.8(º C ) + 32 (1) 10 . Para el punto triple. En la figura 4. la magnitud de la escala Celsius es de 0.

3.2.778 pat − pw pat − pw (3) donde Ra y Rw son las constantes de los gases para el aire seco y agua respectivamente en [J/(kg·K)].352 pw pw = = 0.4. con la fracción molar del vapor de agua en una muestra de aire con vapor saturado Xws a la misma presión y temperatura. El grado de humedad del aire w es la relación que hay entre la masa de vapor mw y la masa del aire seco ma contenida en la mezcla de aire húmedo. se pueden aplicar a esta expresión las ecuaciones de gas ideal y leyes de Dalton para cada uno de los distintos componentes y así se vuelve a escribir la relación de la siguiente forma: w= mw pwVRaTR Ra pw = = m a paVRwTR Rw pat − pw 53. La humedad relativa φ del aire. Puede ser calculado de la forma: w= mw ma (2) En vista que tanto el aire como el vapor ocupan el mismo volumen y están a la misma temperatura. Humedad Grado de humedad. se define como la relación de la fracción molar del vapor de agua Xw en una muestra de aire húmedo.. Esta relación se puede escribir como: ϕ= χw χ ws T .p (4) 11 . o Hr. Humedad relativa.62198 85.

La diferencia específica de entalpía ∆h para un gas ideal en KJ/kg. °C 12 . T2 = Temperatura del gas ideal en las etapas 1 y 2. lo que implica: χa + χw = 1 (7) 4. en tal sentido se consiguió que la suma de las fracciones molares de vapor de agua y de aire seco da como resultado uno.2. a una presión constante se define por: ∆h = C p (T2 − T1 ) (8) donde Cp = Calor específico a una presión constante.4. Propiedades del aire húmedo Entalpía. mol nws = número de moles de vapor de agua por partes de aire con vapor saturado. mol nw = número de moles de vapor de agua en una muestra de aire húmedo. las siguientes expresiones se pueden escribir de la forma: χw = nw na + nw (5) χ ws = nws na + nws (6) donde na = número moles de aire seco.Y por definición. mol El aire húmedo es una mezcla de aire seco y vapor de agua. kJ/(kg·K) T1 .

Las ecuaciones de gas ideal y las leyes de Gibas-Dalton son válidas 2. En un rango de temperatura entre -17. La entalla del aire seco es igual a cero a -17. se puede considerar la entalpía del aire húmedo como una mezcla de aire seco y vapor de agua en donde la cantidad de aire seco es exactamente 0. Las siguientes afirmaciones se realizan para calcular la entalpía del aire húmedo: 1. ºC 13 .8 a 37. Para la conveniencia de cálculo.Como el aire húmedo es prácticamente una mezcla binaria de aire seco y vapor de agua.454 kg (1 lb). La entalpía del vapor saturado a -17.005 ⋅ T (11) donde Cpd = calor específico del aire seco a presión constante.8 °C 4.005 kJ/(kg·K). En base a estas consideraciones.8°C 3. (kJ/kg·K) T = temperatura del aire seco.8 °C el valor del calor específico para el aire seco es de 1.8 °C es 2468 kJ/kg 5. Todo el vapor de agua contenido en el aire húmedo se vaporiza a -17. respectivamente las entalpías del aire seco y del vapor de agua en (kJ/kg). Entonces la entalpía específica del aire seco ha se puede escribir como: ha = C pd T = 1. la entalpía del vapor de agua puede ser considerada como h = ha + H w (9) donde ha y H w son. la entalpía del aire húmedo h = ha + whw (10) donde hw = entalpía específica del vapor de agua. kJ/kg.

pero por simplificación se denota simplemente como kJ/kg.859 ⋅ T ) (14) La unidad de trabajo que se considera se escribe como kJ/kg aire seco. En la ecuación (13). la entalpía del aire húmedo en un estado definido a -17. El Calor Latente hfg es la energía calórica asociada con el cambio de estado del vapor de agua.859 kJ/kg·K. a una presión constante es aproximadamente: hw = hg 0 + C psT (12) donde hg 0 = entalpía específica del vapor de agua a -17.5.8 ºC se puede considerar que el valor de esta entalpía es de 1. Calor Sensible y Latente El Calor Sensible es la energía asociada con el cambio de temperatura del aire. (kJ/kg·K) Dentro de un rango de temperatura comprendido entre -17. 4. se puede asumir este valor como 2468 kJ/kg C ps = calor específico del vapor de agua a presión constante.2.La entalpía específica del vapor de agua hw.8 ºC. El calor Latente de la vaporización denota los requerimientos del calor 14 . Con lo cual la entalpía del aire húmedo se puede escribir como: h = C pd T + w(hg 0 + C psT ) (13) h = 1.005 ⋅ T + w ⋅ (2468 + 1.8 y 37.8ºC puede dividirse en dos partes: h = (C pd + wC ps )T + whg 0 (15) El primer término del lado derecho de la ecuación (15) denota el calor sensible.

De esta forma.3. Ganancia de Calor del Espacio. La ganancia de calor se clasifica por 15 . Muchos componentes de las cargas de enfriamiento varían en un amplio rango de magnitud durante un período de 24 horas. 4. refrigeración. frecuentemente difíciles de precisar y siempre intrínsecamente relacionadas entre sí. Ambos calores. En la ecuación (15) el segundo término del lado derecho de la expresión whg 0 . sin embargo. se expresan en términos de kJ/kg de aire seco. para vaporizarla o condensarla. A ciertas horas del día durante temporadas calurosas o intermedias. sensible y latente. Cuando se aumenta o disminuye la humedad de un espacio o proceso. el Calor Latente en la condensación indica el calor que debe ser removido del vapor de agua para condensarlo y hacerlo líquido. denota al Calor Latente. debe manejar el pico de carga de enfriamiento para cada zona en el lapso específico de máximo registro. Cargas de Enfriamiento Las variables que afectan los cálculos de cargas de enfriamiento son numerosas. Esta tasa instantánea de ganancia de calor es el modo en el cual el calor entra y/o es generado dentro de un espacio para un instante dado. Como estos cambios cíclicos de los distintos componentes a tomar en cuenta. cada una con su propio control de temperatura) no necesita reconocer grandes capacidades de cargas de enfriamiento más que sumatoria total de las cargas simultáneas de las distintas zonas a lo largo de las horas del día de diseño.latente para vaporizar agua líquida a su estado gaseoso. generalmente ocurren desfasados entre sí. cada uno debe ser analizado individualmente para establecer una resultante de carga de enfriamiento máxima para cada edificio o zona del mismo. Un sistema zonificado (un sistema cuyos equipos de aire acondicionado sirvan para distintas áreas independientes. una cantidad de Calor Latente correspondiente deberá actuar. algunas zonas requerirán calefacción mientras que otras.

c) Conducción de calor a través de particiones internas. convección y/o radiación. e) Energía transferida como resultado de la ventilación o la infiltración de aire externo. Los modos en que puede ocurrir ganancia de calor son a) Radiación solar a través de superficies transparentes. o f) Ganancias varias de calor. del vapor emitido por los ocupantes y equipos). Carga de refrigeración del espacio. Para mantener una humedad constante. La sumatoria de cada una de las ganancias de calor en cada instante no es necesariamente igual a la carga de refrigeración del espacio para el mismo instante. En la selección de aparatos de enfriamiento. Cada aparato de enfriamiento tiene un máximo de capacidad para extraer calor sensible y un máximo para el calor latente según las condiciones de operación particulares.a) las formas de ganancia de calor al espacio y b) Si es una ganancia de calor sensible o latente. Esta es la tasa a la cual el calor debe ser removido del espacio para mantener constantes las condiciones de temperatura del aire. d) Calor generado en el espacio por los ocupantes. el exceso de vapor debe ser condensado en los aparatos de refrigeración a una tasa igual a la que entra en el espacio. es necesario distinguir entre la ganancia de calor sensible y latente. aislamientos y suelos. Ganancia de Calor Sensible y Latente. b) Conducción de calor a través de paredes y techos exteriores. La cantidad de energía requerida para compensar la ganancia de calor latente esencialmente es igual al producto de la tasa de condensación y al calor latente de condensación. luces y equipos. Formas de ganancia de calor al espacio. La ganancia de Calor Latente ocurre cuando la humedad aumenta en el ambiente (Ej. 16 .. La ganancia de calor Sensible se suma directamente al espacio acondicionado por conducción.

Ganancia de Calor por Radiación. Del efecto de almacenamiento térmico es de quien depende la diferenciación entre los instantes de ganancia de calor y de carga de enfriamiento para un instante dado. La energía de Radiación debe ser primero absorbida por las superficies que encierran el espacio (paredes. y de este modo ocurre la interacción entre la porción de calor por radiación y su correspondencia con parte de la carga de enfriamiento del espacio. La tasa a la cual se remueve la energía en el “Cooling Coil” que sirve a uno o más espacios acondicionados equipara a la suma de las cargas instantáneas de enfriamiento de cada espacio (o la tasa de extracción de calor del espacio si se considera que la temperatura de la zona no varía) para todos los espacios que atiende el éste. junto a cualquier otra carga externa adicional. La ganancia de calor por radiación del espacio. 17 .). pisos y cerramientos) y los objetos en el espacio (mobiliario. parte del calor absorbido es transferido al aire por convección. no se convierte de un modo instantáneo en una carga de enfriamiento. La capacidad de almacenar calor de estas superficies y objetos determinará la tasa a la cual incrementará la temperatura superficial de ellos al someterse a procesos de radiación. en la medida que la temperatura de aire del espacio se mantenga constante. Entre tales cargas externas se incluyen las ganancias de calor en el sistema de distribución entre los espacios individuales y la unidad de enfriamiento. Tasa de Extracción de Calor del Espacio. La tasa en que el calor es removido del espacio acondicionado equipara a la carga de enfriamiento del mismo. etc. Tan pronto como estas superficies y objetos se calientan más que el aire del espacio. Carga del “Cooling Coil”. y el calor del aire y la humedad que se insertan en los sistemas de distribución a través de la unidad de enfriamiento. adornos.

Técnicas del Cálculo de Cargas de Enfriamiento de Espacios cerrados 4. Para demostrar el principio de cálculo. Para calcular la carga de enfriamiento del espacio mediante procedimientos de balance de calor requieren de una laboriosa solución a las ecuaciones de balance de energía que involucran el aire del espacio. el aire de infiltración y de ventilación. convección y radiación para cada pared del espacio y el balance de calor convectivo para el flujo de aire.θ + REi .θ − Ti . las paredes y ventanas que lo encierran.θ + RLi .θ ⎦ (16) para i = 1.θ ) + ⎣ m ∑g j =1.θ )⎥ Ai + RS i . Fundamentos del Balance. y las fuentes internas de energía.θ = Tasa de calor conducido a la superficie i a la superficie interna en el instante θ Ai = Área de la superficie i hci = Coeficiente convectivo de calor en la superficie interior i g ij = Factor de radiación entre la superficie i y la superficie interior j Ta . se considera un cuarto encerrado por cuatro paredes. La estimación de la carga de enfriamiento para un espacio cerrado involucra calcular la ganancia de calor por conducción.1. El cálculo que rige el intercambio de energía para cada superficie en un instante dado es: ⎡ qi .θ = Temperatura del aire interno en el instante θ 18 .6 dónde: m= Cantidad de superficies en el espacio qi .4.4.θ − Ti .4. un suelo.3.θ = ⎢hci (Ta .4.5. con aire de infiltración y ventilación y con fuentes de energía interna. j ≠ i ij ⎤ (T j . con cielo raso.2.

m = índice de la variable temporal. se deben resolver las seis formulaciones arriba mencionadas de la ecuación (16) de modo simultáneo con la ecuación que gobierna la conducción a través de las seis superficies.θ − m (17) donde: q = tasa de calor de conducción en una superficie específica a una hora específica. estas ecuaciones están formuladas como funciones de transferencia conductivas.θ = Tasa de calor irradiado por las luces y absorbido por la superficie i en el instante θ REi .θ − m +1 + ∑ Fm qin .θ = ∑ Yk . 19 . Típicamente.mto . afectan las condiciones de las superficies interiores.Ti . En consecuencia.θ = Tasa de energía Solar que incide por las ventanas y es absorbida por la superficie i en el instante θ RLi .θ −m +1 −∑ Z k .θ = Temperatura promedio de la superficie interior j en el instante θ RSi . que es absorbida por la superficie i en el instante θ Funciones de transferencia de conducción. afectando de este modo la conducción interna. k = orden de la función de transferencia por conducción.θ = Tasa de calor irradiado por los equipos y ocupantes. in = superficie interna. Las ecuaciones que gobiernan la conducción a través de las seis superficies no pueden ser resueltas de un modo independiente a la ecuación (16). con el fin de calcular la carga de enfriamiento del espacio. una vez que los intercambios energéticos ocurren dentro de la habitación. de la forma: M M M m =1 m =1 m =1 qin .mtin .θ = Temperatura promedio de la superficie interior i en el instante θ T j .

θ + RLa .θ en la ecuación (17). la ecuación (18) representa un balance de energía en el aire del espacio.M = número de valores de CTF no nulos.θ (t v .θ − t a .θ en la ecuación (1) y tin . ⎡m ⎤ QL . que debe ser resuelto de modo simultáneo también.θ + RE a .θ = flujo volumétrico de infiltración externa de aire a la habitación para el instante θ to .θ = temperatura del aire de ventilación en el instante θ RS a .θ ) ⎣ i =1 ⎦ + ρCVv . Nótese que las temperaturas de la superficie interior ti . o = superficie externa t = temperatura θ = tiempo x = valor exterior de CTF Y = valor transversal de CTF Z = valor interior de CTF Fm = coeficientes históricos de flujo (tasa de flujo de calor) Balance de energía en el aire del espacio.θ = ⎢∑ hci (t i . requieren soluciones simultáneas.θ = flujo volumétrico de ventilación para el instante θ tv .θ )⎥ Ai + ρCV L .θ ) + RS a .θ − t a .θ = tasa de calor solar a través de las ventanas y de convección al aire de la habitación en el instante θ RLa .θ − t a .θ (18) dónde ρ = densidad del aire C = calor específico del aire VL . De igual modo.θ (t o .θ = flujo de calor convectivo de las luces hacia el aire en el instante θ 20 .θ = temperatura externa del aire para el instante θ Vv .

θ = flujo convectivo de calor de los equipos y ocupantes hacia el aire de la habitación en el instante θ Nótese que el componente del aire de ventilación en la ecuación (18) se asume entrando directamente al espacio refrigerado. El concepto de la función de transferencia es una simplificación del procedimiento estricto de cálculo del balance de calor. La función de transferencia se calcula de modo numérico con varias constantes que representan la carga de enfriamiento correspondiente al pulso de excitación de entrada que se introduzca. En estos cálculos se consideran y simulan como pulsos unitarios los componentes de la carga tales como la ganancia solar. equipos y ocupantes. la ganancia por conducción o la ganancia de calor de las luces. se calculan inicialmente las temperaturas de las superficies y la carga de enfriamiento mediante métodos rigurosos de cálculo antes descritos. en vez de ser a través de un aparato asociado al sistema de refrigeración. Fijando la temperatura del aire del espacio. algunos autores evaluaron el uso de factores de respuesta térmica de los cuartos. el cálculo requiere de multiplicaciones sencillas de las funciones de transferencia por representaciones de series en el tiempo de la ganancia de calor y la subsiguiente suma 21 . la carga de enfriamiento no necesita ser determinada simultáneamente. Una vez que estas funciones de transferencia son determinadas para construcciones típicas. Véase también que la temperatura del aire del espacio puede ser variable. Los programas computarizados conocidos en donde se calcula la carga de enfriamiento instantánea de esta manera están orientados para usos de cálculo energético sobre períodos de tiempo prolongados. Para este concepto. media o ligera. Esta rigurosa aproximación de cálculo de cargas de enfriamiento es impráctica sin la rapidez a la que pueden procesar datos algunas de las modernas computadoras digitales. colegios y viviendas de construcción robusta. en vez de utilizar picos de perfiles de temperatura. se asumen independientes del pulso de entrada. ya que las temperaturas externas están normalizadas de modo incremental. En este procedimiento. para una diversidad de construcciones representativas como oficinas.REa . permitiendo así determinar las cargas de enfriamiento sin muchos cálculos rigurosos. Sin embargo.

La debilidad fundamental es que utilizar un simple promedio de los componentes de carga por radiación es una pobre aproximación a los fenómenos físicos envueltos y. debido a su complejidad.3. Varios de los componentes de la ganancia de calor en el espacio se calculan asociando valores de Diferencias de Temperatura Totales Equivalente. el método de la Función de Transferencia (MFT) aplica una serie de factores significativos. con los valores relacionados de un período apropiado de horas inmediatamente precedentes. 4.4. pero es mejor que sean resueltos por computadores. los cuales pueden llevarse en una pequeña computadora. 4. o coeficientes de factores de transferencia para conducción (FTC) a superficies opacas exteriores y a diferencias entre la temperatura ambiental y la temperatura interna para determinar la ganancia de calor con 22 . la técnica del factor de respuesta es utilizada para un número representativo de tipos de paredes y techos con lo cual se deriva en factores como funciones de la temperatura del aire ambiental y la temperatura mantenida en la habitación. Esta técnica provee un significado racional al manejo cuantitativo de los fenómenos de almacenamiento térmico. elegir utilizar un promedio más apropiado es subjetivo y depende de la pericia de quien lo evalúe.de dichos productos. y los resultados se añaden a las ganancias internas de cada elemento para obtener el total de la ganancia instantánea de calor en el espacio.2.4. Método de la Función de Transferencia (MFT) Aunque en principio resulta similar al Método de las Diferencias de Temperaturas Totales Equivalentes Promediados en el Tiempo (DTTE/PT). Método de las Diferencias de Temperaturas Totales Equivalentes (DTTE) En el método de la Diferencia de Temperaturas Totales Equivalentes (DTTE). Esta ganancia se convierte en una carga instantánea de enfriamiento del espacio por técnicas de promedio en el tiempo de las porciones de carga de ganancia de calor por radiación del instante de diseño. Los mismos conceptos de función de transferencia pueden ser aplicados para calcular la ganancia de calor de los componentes en total.

23 . Los factores de función de transferencia por conducción son obtenidos de modo similar a la obtención de valores específicos de comportamiento de respuesta térmica de algunos elementos de construcción. Los coeficientes de función de transferencia de la habitación se relacionan específicamente a la geometría espacial. la configuración.una inercia térmica reflectiva apropiada de las superficies respectivas. De cualquier modo. Funciones de Transferencia. Siempre que el método de funciones de transferencia sea científicamente apropiada para un análisis específico de cargas de refrigeración. a la ganancia de calor y los valores de carga de refrigeración de todos los elementos de carga que tienen componentes radiantes. para considerar los efectos de almacenamiento térmicos en la conversión de ganancias de calor en cargas de refrigeración. se requerirá de un computador para la aplicación efectiva de un diseño comercial del entorno. la masa y otras características del espacio así como un reflejo de las variaciones de almacenamiento térmico que sean significativas en tiempos específicos por encima de los efectos observados en un promedio específico de tiempo. Son coeficientes que se relacionan a una función de salida a un instante dado y a un período estimado de tiempo precedente a éste. mientras que los factores de función de transferencia de la habitación se obtienen de los componentes de las cargas de enfriamiento. A continuación el método aplica una segunda serie de factores significativos o coeficientes de función de transferencia de la habitación (FTH). Ambas series de evaluación consideran datos de varias horas previas así como la de evaluación. La ganancia de calor solar a través de los vidrios y las variadas formas de ganancia de calor internas se calculan directamente de la carga horaria de interés. muchos de los períodos de 24-h inmediatamente previos se asumirán iguales a la carga de la hora de interés.

4. Todos estos factores incluyen los efectos de a) el retardo temporal en la ganancia por conducción a través de superficies opacas externas y b) el retraso temporal que implica el almacenamiento térmico para la conversión de la ganancia de calor por radiación en carga de enfriamiento.4. los resultados serán consistentes con los obtenidos por el Método de la Función de Transferencia. utilizando datos representativos de diversas aplicaciones del MFT. Los Factores de Carga de Refrigeración (FCR) para un cálculo similar en una sola etapa de la carga solar a través de los vidrios y para cargas internas. para cálculos en una etapa de cargas de refrigeración por ganancias de calor por conducción a través de paredes y techos expuestos al sol y conducción a través de vidrios expuestos también al sol. también han sido desarrollados. se obtienen los coeficientes de la Diferencia de Temperaturas de las Cargas de Refrigeración. siempre y cuando los datos estén disponibles y se usen apropiadamente. Esta simplificación permite calcular manualmente las cargas de enfriamiento. por esto el método se hace popular para la enseñanza. 24 . Método de la Diferencia de Temperaturas de las Cargas de Refrigeración (DTCR) De la comparación de los métodos de la Función de Transferencia y de la Diferencia de Temperaturas Totales Equivalentes.4.

5. ya que se fundamenta en tablas estandarizadas de características. tiempo en el cuál esta va incrementando hasta alcanzar el máximo posible. Esto se debe considerar ya que la ganancia de calor por radiación no es instantánea y considerarlas de este modo erróneo puede derivar en una mala estimación de algún pico de carga de los cálculos. Además su selección se fundamenta en la investigación comparativa realizada entre los distintos métodos de cálculo de cargas que se presentan en el capítulo 28 del manual “ASHRAE Fundamentals 1997”.1. MÉTODOS Y PROCEDIMIENTOS El programa de cálculo de Cargas Térmicas que se desarrolla a partir de la investigación realizada. posterior a eso. se hace una consideración semejante para la disminución de la carga en un promedio semejante de tiempo. una vez que la persona abandona el espacio refrigerado. la ganancia por radiación de una persona no se calcula de modo directo cuando esta ingresa al espacio refrigerado. 5. Por ejemplo. de las cuales se obtienen coeficientes de comportamiento o valores relevantes del cálculo. 25 . Es uno de los métodos más fáciles de comprobar de modo manual. sino que se comienza a promediar en un tiempo de 5 horas. se aproximan en un modo muy adecuado. Procedimientos de Cálculo El método tiene consideraciones de comportamiento de la ganancia de calor en el espacio que si bien no intentan ser exactas a la realidad. se fundamenta en el método de la Diferencia de Temperatura Total Equivalente promediada en el tiempo que se encuentra descrito en el Manual “ASHRAE Fundamentals 1997” que es un procedimiento que generalmente se realiza de modo manual y que requiere de muchos cálculos para llegar a un resultado muy semejante al de los otros métodos descritos. dónde se comprueba la validez de los resultados por éste método a pesar de la simplificación de cálculos.

Para el caso de esta investigación se cuenta con datos de temperaturas medias Tm de las ciudades importantes de Venezuela. los procedimientos adecuados que se recomiendan para el método de cálculo que se aplica.5 °C. La temperatura de cada hora. Esta corrección para ser más precisa se debe especificar junto con el rango específico de variación de temperaturas de cada una de las ciudades. 26 .1. Se calcula además la temperatura en cada hora asumiendo la hora de temperatura máxima como las 15:00. los cuales permitirán una ganancia de calor del ambiente a través de ellas. Las variables de estas ecuaciones son y se obtienen de acuerdo a como se explica a continuación: Te . y a partir de ese dato comienza a restarse a la variación el rango multiplicado por un factor porcentual de disminución indicado a continuación en la tabla de Porcentaje de Rango Diario. de ventilación e infiltración. Ganancias de Calor Externas Partiendo de la ecuación (21) Te = To + αI t / ho − ε∆R / ho y la ecuación (22) Tea = Toa + α ⎛ I DT ⎞ ε∆R . se obtiene el cálculo de las ganancias de calor en techos. considerada en función de la temperatura máxima y corregida para las demás horas según el rango de temperatura de bulbo seco de la región. por la acción de la energía solar.1. 5. que para Venezuela se identifica como 7 °C. por lo que se considerará la temperatura máxima TMax a la suma de la promedio más 3.Se considera para cada tipo de ganancia de calor externa. interna. ⎜ ⎟− ho ⎝ 24 ⎠ ho paredes y vidrios externos de los ambientes. La temperatura sol-aire To .

I t = 1.026 para superficies claras y 0. 27 . cuyo valor es 0. teniendo en cuenta que el acimut solar φ y el acimut superficial ψ son medidos en ángulos desde el sur. Factor de Ganancia de Calor Solar. Tea . El factor de radiación = -3. Toa .Tabla 5.9 °C para superficies horizontales y 0 °C para superficies verticales. ángulos al este del sur. I DT . Porcentaje de Rango Diario Hora % Hora % Hora % 1 87 9 71 17 10 2 92 10 56 18 21 3 96 11 39 19 34 4 99 12 23 20 47 5 100 13 11 21 58 6 98 14 3 22 68 7 93 15 0 23 76 8 84 16 3 24 82 Fuente: ASHRAE Fundamentals 1997 α / ho . Ganancia de Calor Solar total del día. El factor de superficie. I t . La temperatura de Bulbo seco promediada en las 24 horas del día. son negativos y ángulos al oeste del sur son positivos. La temperatura soleada promediada en las 24 horas del día. pero el utilizado en el desarrollo de este programa no se fundamenta en tablas sino en el cálculo de cada uno de los factores de ganancia de calor a partir de un procedimiento computarizado que se describe a continuación. La Carga Solar Incidente Total. FGCS . Factor de Ganancia de Calor Solar Existen en la actualidad muchos métodos para calcular el Factor de Ganancia de Calor Solar.1.15 ⋅ ( FGCS ) ε∆R / ho .052 para superficies oscuras.

L .3 0. C .122 0. t j .4 13.0 23.4 -6.205 0.057 2 1230 1215 1186 1136 1104 1088 1085 1107 1151 1192 1221 1233 Fuente: ASHRAE Fundamentals 1997 Los valores mostrados en la de Coeficientes para vidrios DSA. W/m2 Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre Ecuación de tiempo. Ni . EDN .156 0.45 B C 0.0 -10.092 0. φ .2 -13. para cálculo de Transmitancia y Absorbancia (tabla 5.3.71235 -0.94657 8. Irradiación Solar Extraterrestre y Datos Relacionados Io. Ed .063 0. Coeficientes para vidrios DSA.00885 2.134 0. para cálculos de Transmitancia y Absorbancia i aj tj 0 1 2 3 4 5 0.144 0.75995 -3. γ .142 0.196 0. Tabla 5.45 20.177 0.149 0.121 0.2. β .142 0.0 -10. ρ g .3 -1.8 1.073 0. Declinación. El resto de los valores para días distintos se obtienen por métodos de interpolación lineal. θ .01188 -0. ED .201 0. δ .6 12. Tabla 5.180 0.01154 0.201 0.0 11. τ D . Y .62062 -7.136 0. B . A .1 3.38135 3. Eds .77674 -3.207 0.9 -7. a j .57881 -8.2 -2.5 15. Edg .4 7. min 1416 1401 1381 1356 1336 1336 1336 1338 1359 1380 1405 1417 A grados -11. y α D .071 0.89922 Fuente: ASHRAE Fundamentals 1997 28 . ∑ .060 0.058 0.Variables a usar: H .3) fueron calculados para el 21o día de cada mes.097 0.07329 9. ψ .8 0.6 20.5 1.5 -19.6 W/m -20.8 -23.

Acimut SuperficieSol γ Ángulo de Incidencia θ Irradiación Normal Directa EDN γ = φ −ψ (52) cos θ = cos β ⋅ cos γ ⋅ sin ∑ + sin β ⋅ cos ∑ (53) E DN = A ⋅ exp(− B / sin β ) (54) Irradiación Directa ED = EDN ⋅ cos θ si cos θ > 0 ED ED = 0 en otro caso (55) 29 . grados H Altitud Solar β Acimut Solar φ H = 0. A partir de esto. Ángulo de hora. también se deberá considerar un factor de ho = 17 W/(m2·K) que es el coeficiente de transferencia externo que es más utilizado. para calcular el factor N i que proviene de la ecuación (29).25 ⋅ (minutos al mediodía) (49) sin β = cos L ⋅ cos δ ⋅ cos H + sin β ⋅ sin δ (50) cos φ = sin β ⋅ sin L − sin δ cos β ⋅ cos L (51) donde δ se obtiene de la tabla (tabla 4).2 valor que resulta promedio de los valores tabulados para los distintos materiales y ángulos que se han tabulado (ver Apéndice A3.2 ). se pueden calcular los factores que permitirán el cálculo del FGCS.La absorción y transmisión de la radiación solar incidente de modo directo son: 5 α D = ∑ a j ⋅ cos j θ (47) j =0 5 τ D = ∑ t j ⋅ cos j θ (48) j =0 Como consideraciones especiales para el cálculo de los factores de FGCS se considerará un factor de ρ g de 0. Tabla A3.

Tasa de difusión del cielo en superficies Si cos θ > −0. Superficies Verticales Otras que no son Verticales Eds = C ⋅ Y ⋅ EDN (58) ⎛ 1 + cos ∑ ⎞ Eds = C ⋅ EDN ⋅ ⎜ ⎟ 2 ⎝ ⎠ (59) ⎛ 1 − cos ∑ ⎞ Edg = EDN ⋅ (C ⋅ sin β ) ⋅ ρ g ⋅ ⎜ ⎟ 2 ⎝ ⎠ y.437 ⋅ cos θ + 0.2 verticales y en Y = 0. multiplicando al factor por 1.45 (56) horizontales Y Irradiación Difusa Ed (57) Ed = Eds + Edg donde. 30 .55 + 0. (60) Ganancia de Calor Solar Componente Transmitida Componente Absorbida Factor de Ganancia de Calor 5 5 j =0 j =0 5 5 j =0 j =0 = ED ∑ t j cos j θ + 2 Ed ∑ = ED ∑ a j cos j θ + 2 Ed ∑ tj j+2 aj j+2 FGCS = Energía transmitida + N i (Energía absorbida) (61) (62) (63) Ganancia de Calor en Techos y Paredes Externas Una vez que se obtiene el valor del factor de ganancia de calor solar correspondiente a una hora y mes determinado se procede a calcular la carga solar incidente total I t .313 ⋅ cos 2 θ superficies en otro caso. Y = 0.15 tal y como se indica anteriormente.

Con los valores de DTTE de cada hora se calcula la ganancia de calor en cada momento de paredes y techos. según sea correspondiente y necesario siguiendo la ecuación (45).Con estos datos resultantes. de acuerdo a como se indica en la ecuación (21). se obtienen las temperaturas soleadas Te para cada uno de los instantes requeridos. Con estos datos y la temperatura interior de diseño del espacio refrigerado. tabla A4. tabla A4.2) de acuerdo a lo que se le va a calcular la ganancia de calor. Ganancia de Calor en Ventanas y Superficies de Vidrio Para el cálculo de las ganancias de calor en ventanas y superficies de vidrio se consideran los dos tipos de fenómenos por los cuales se transfiere calor en mayor medida hacia el ambiente. de la tabla de Coeficientes de Función de Transferencia de Conducción para Techos (ver Apéndice.1 y tabla A4. para la cuál se deberá hallar el coeficiente de transferencia U en las tablas de Coeficientes de Función de Transferencia de Conducción (ver Apéndice. se procede a buscar. por efecto del calentamiento del ambiente exterior y de la luz del sol. Con las temperaturas soleadas de cada hora y su promedio en las 24 horas de estudio ya calculadas. Posterior a esto y con los datos que sean necesarios.2) que corresponda al techo o pared específica que sea objeto de cálculo.1) o de la tabla de Coeficientes de Función de Transferencia de Conducción para Paredes (ver Apéndice. se obtiene el diferencial de temperatura total equivalente DTTE (ver ecuación (46)). que son el fenómeno de convección y de radiación. se hace el cálculo correspondiente a la temperatura soleada promedio Tea tal y como se indica en la fórmula representada en la ecuación (22). el factor de decremento λ . tabla A4. la temperatura ambiental To correspondiente a cada hora y el valor de factor de radiación ε∆R / ho que sea pertinente al caso. 31 .

que no se encuentran expuestas al sol. determinando el coeficiente de transferencia de calor U en función de las resistencias de cada uno de los materiales que compongan la división y estableciendo el área A de la superficie.4) que considera los diversos valores para las diferentes configuraciones de cristales que comúnmente se consiguen en las ventanas. para lo cuál se hará necesario determinar el factor de sombra correspondiente. de ser superior la ganancia será positiva y de lo contrario. tabla A3. pero que delimitan un ambiente u oficina específico permiten el flujo de ganancia de calor al espacio refrigerado cada vez que del otro lado de la separación exista una temperatura externa distinta a la del espacio refrigerado. tablas A3.El Calor por convección se calcula según se indica en la ecuación (37). será considerado según se indica en la ecuación (38). considerando el coeficiente de transferencia de calor del vidrio de los valores disponibles en la de Factores U para varios Elementos con Vidrios (ver Apéndice A3.3 y A3. El procedimiento para calcular estas cargas se realiza estableciendo las temperaturas internas ti y de los espacios adyacentes tb a cada ambiente. y el valor de FGCS calculado previamente para cada hora del día. Mientras que el calor por el efecto de radiación solar. que se obtiene de la tabla respectiva al caso (ver Apéndice A3. será negativa.5). Cielo Raso y Suelos Estas divisiones de espacios. La ganancia total de Calor a través de superficies de vidrio al espacio es el resultado de sumar ambos resultados o se puede obtener directamente de calcularla según: qTVidrio = U ⋅ A ⋅ (To − Ti ) + A ⋅ FS ⋅ FGCS (64) Ganancia de Calor a través de paredes de Partición. 32 . para calcular la carga en función de lo expresado en la ecuación (30).

tabla A4. los cuales se obtienen de la tabla de Resistencias al Aire en Superficies (Apéndice A5. tabla A5. se realiza obteniendo la resistencia de cada material que compone la división en la tabla de Propiedades Térmicas Típicas para Edificios Comunes (Apéndice A5.El cálculo del coeficiente de transferencia de calor en función de las resistencias. Ganancia de Calor de Personas El cálculo de la ganancia de calor de personas se recomienda hacer basándose en los valores de ganancia de calor sensible y latente promedio que generan las personas en unas actividades cotidianas que se encuentra en la tabla de Tasas de Ganancia de Calor de los Ocupantes (Apéndice A4. 33 .1). N qsensible = N × Ganancia de Calor Sensible (66) qlatente = N × Ganancia de Calor Latente (67) = El número de personas dentro del ambiente.2. y obtener el inverso de esa sumatoria. tabla A5.2). los cuales aportan más energía al ambiente que el sistema de aire acondicionado debe extraer.3). para luego sumarlos a los coeficientes interno hi y externo ho respectivamente.1. U= 1 n hi + ∑ R j + ho (65) j =0 5. Ganancias de Calor Internas Dentro de los ambientes se generan ganancias de calor que se producen con el ingreso de personas o con el encendido de distintos aparatos eléctricos o que producen calor.

Según se expresa en la tabla (Apéndice A4. Dicha ganancia se produce también a través de los fenómenos de radiación y convección. a mayor temperatura superficial. Fsa =1 para luces incandescentes y Fsa =1. El calor generado por las lámparas se obtiene. sino de un modo incremental en un lapso de cinco horas a partir del momento en que la o las personas ingresan al espacio refrigerado incrementándose un 20% de la carga de radiación por hora en el primer período. a menos que no sean alimentadas por energía eléctrica. 40% en el segundo. 80% en el cuarto y finalmente para el quinto se contará con el 100% de la contribución por radiación. 60%. tabla A4. que es un elemento de contribución del tipo de luces al ambiente.2 para luces fluorescentes. La contribución por radiación.Para el caso de la ganancia de Calor Sensible. de la potencia nominal W del conjunto de lámparas. según se observa en la ecuación (31). no se estima que ocurra de modo instantáneo. se diferencian dos fenómenos relevantes para el análisis de los picos energéticos del ambiente completo. el decremento se realizará de un modo similar pero inverso al de la contribución por radiación con la entrada al ambiente. Una vez que la o las personas abandonan el espacio refrigerado. 60% en el tercero.4) existe un promedio establecido en el cual se divide la contribución de cada uno de los fenómenos. del factor de uso Ful . a diferencia de las demás ganancias de calor. producen únicamente ganancia de calor sensible. Ganancia de Calor por Luces Las cargas de luces. y variará el porcentaje de contribución de cada uno de éstos de acuerdo a la temperatura en que trabaje la lámpara. que indica que un 67% del calor sensible será convectivo y el restante 33% será por radiación. 80%. mayor es la contribución por radiación. 20% y finalmente 0%. 40%. 34 . que es la proporción en que el total de lámparas se encuentran encendidas y el factor de balasto Fsa . ya que la transferencia de calor ocurre de las personas hacia el ambiente de un modo convectivo y por radiación.

así como el dispositivo al cual está accionando. Las contribuciones que éstas aportan al ambiente. que variarán correspectivamente entre 20 y 80% de 35 . Tabla A4. Tabla A4. [W] EF = factores de eficiencia y de configuración en el ambiente.4). Una vez calculada la ganancia de calor total. se encuentran representadas en la tabla de Ganancias de Calor de Motores Eléctricos Comunes (Apéndice A4. según la tabla (Apéndice A4. nos da cuatro colocaciones posibles del sistema motor-equipo. mientras que para las luces fluorescentes el aporte será de 50%. que son motores que accionan a otros dispositivos.Se considera. Ganancia de Calor de Equipos de Potencia Los equipos de potencia.5) o pueden estimarse en función de lo que indique el fabricante del motor en la placa. que la contribución por radiación de las luces incandescentes es de un 80% del calor generado. Un motor puede estar dentro o fuera del espacio refrigerado. se debe establecer la contribución de los efectos de radiación y convección. de modo gradual en un período de cinco horas una vez que comience a actuar la carga en el ambiente refrigerado y de modo decreciente en un lapso similar de tiempo una vez que sea desactivada la carga. generan mayor o menor calor al ambiente de acuerdo al modo en que sean colocados. El calor sensible total que aporta un equipo de potencia al ambiente refrigerado. La distribución en el tiempo de la contribución se realiza de modo similar a como se indica anteriormente en la Ganancia de Calor de Personas. puede calcularse del modo siguiente: q p = P ⋅ EF (68) donde P = potencia del equipo. La combinación de estas configuraciones.

acuerdo a la temperatura superficial del equipo. Si trabaja a temperatura cercana a la
temperatura ambiente, la radiación aportará tan sólo un 20% del total, mientras que si el
equipo trabaja a altas temperaturas, podrá aportar un 80% de la ganancia de calor sensible.
De igual modo, el aporte en cada hora de la ganancia de calor por radiación, se
estimará de un modo gradual una vez que sea accionado el equipo, durante un lapso de
cinco horas, tal y como se explica en la Ganancia de Calor de Personas.

Ganancia de Calor de Aparatos

Los aparatos, dentro de los cuales se encuentran muchos equipos de oficina y de
cocina, son calculados de modo que su ganancia de calor total es instantánea, ya que a pesar
de tener también contribuciones por efecto de radiación y convección, su superficie por lo
general tiende a calentarse de modo instantáneo, de modo tal que las cargas entran al
sistema una vez que son encendidos.
Se ha listado una diversidad de aparatos, algunos de cocina y otros de oficina, que
generalmente se consiguen en edificaciones de tipo industrial. Existen aparatos que
necesitan de modo imperativo la instalación de una campana de extracción de aire encima
de ellos, para que extraiga vapores y parte importante del calor que se genera. Por lo tanto,
cuando un aparato tiene un extractor sobre él, no aportará calor latente al espacio, sino calor
sensible, significativamente a través del fenómeno de radiación, pero como ya se comentó,
será de modo instantáneo.
Para los casos en que no se ha listado la ganancia de calor sensible y latente según
sea el caso de existencia o no de campana, se debe usar la ecuación:

qsensible = qentrada FU FR

(69)

donde

qentrada = la energía consumida por el aparato según especificaciones, W

36

FU

= factor de uso

FR

= factor de Radiación

El calor latente, por su parte se obtiene de la diferencia del calor sensible y el calor
de entrada del aparato. Estas formulas se usan para aquellos aparatos que no indiquen en su
placa de especificaciones o se les haya borrado la información de ganancias de calor
respectivas.

Ganancia de Calor por Ventilación e Infiltración de Aire

El aire de refrigeración requiere de renovación de aire, por lo que es necesario
incluir una ventilación externa y la diferencia de temperaturas entre el aire exterior y el
interior, así como el diferencial existente entre las humedades relativas de ambos
ambientes, va a añadir más calor al ambiente como se explica en el principio de

Psicrometría, que el sistema de refrigeración deberá retirar para mantener la temperatura
deseada en el ambiente interior.
Las ganancias de calor a través de la ventilación y las infiltraciones serán
proporcionales al flujo de cada una de las cantidades de aire. La carga sensible será
proporcional también a la diferencia de temperaturas entre el exterior y el ambiente
refrigerado, mientras que, la de calor latente será proporcional a la diferencia entre las
humedades relativas entre ambos. A continuación se describe como serían las ecuaciones
respectivas a cada una de las ganancias de calor:

qsensible = 1,23 ⋅ Q ⋅ (to − ti )

(43)

qlatente = 3010 ⋅ Q ⋅ (Wo − Wi )

(44)

donde,

Q

= flujo de aire kg/m3

t o , ti

= temperatura externa e interna, °C

37

Wo ,Wi = humedad relativa externa e interna, kg(agua)/kg(aire seco)

5.1.3. Cargas de Enfriamiento
Las cargas de enfriamiento deben ser equivalentes a la ganancia de calor total, para
así lograr la extracción total de la energía térmica que ingresa y se va acumulando en el
espacio. Por lo tanto, se considera que el total de la carga de enfriamiento de una
edificación estudiada bajo este procedimiento, será la suma de los calores latente y sensible
que se produzcan.
El total de calor sensible será la suma de las ganancias por radiación y convección
de todos los elementos que induzcan el incremento de cargas en el ambiente refrigerado y
el calor latente será la suma de las ganancias de calor latente de los mismos. De este modo,
se obtiene el total de cargas del ambiente por horas.
Una vez que se tiene el total de cargas por horas, se comprueba cuál es la hora con
mayor carga, siendo éste el pico de carga en función del cuál se recomienda la selección del
equipo de aire acondicionado correspondiente para la edificación o zona de oficinas.

5.2. Obtención de las Tablas “Regionalizadas”
Para la realización de los cálculos según el procedimiento descrito en el manual
“ASHRAE Fundamentals 1997”, se recomienda el uso de unas tablas de temperatura
fundamentadas únicamente en la ciudad de Caracas-Venezuela, hecho que haría una
aproximación de rango imprevisible de considerar otras ciudades con humedades y
temperaturas muy distintas a la ciudad capital. En tal sentido, se propuso la búsqueda de los
datos climáticos de varias ciudades importantes de Venezuela como lo son Caracas,
Maracaibo, Puerto Cabello, Barcelona y Puerto Ayacucho entre otros, donde en función de

38

su latitud, altura sobre el nivel del mar, temperaturas máximas promedio mensuales y
anuales y, las humedades relativas promedio mensuales y anuales.
Estos datos, que fueron en parte proporcionados por el personal del Observatorio
Cagigal en Caracas y en otra parte del portal del clima “TuTiempo.com”
(http://www.tutiempo.net/clima/Venezuela/VE.html), en el cuál se complementan los datos
proporcionados por la entidad Oficial del clima en Caracas.
Partiendo de estos datos característicos de las ciudades y sus respectivos climas, se
realizan los cálculos recomendados del factor de ganancia de calor solar, el cual permite
después obtener los datos requeridos de temperaturas soleadas de cada una de las
orientaciones de elementos (Norte, Sur, Este y Oeste). Estos procedimientos se realizan del
modo expuesto en el Factor de Ganancia de Calor Solar dentro de las Ganancias de Calor

Externas.
Como los datos de las tablas son requeridos para el cálculo de las ganancias de calor
externas, pero no son de relevancia para el conocimiento del usuario, no se exhiben en
ningún momento, pero sí son calculadas las filas requeridas en función de las condiciones y
orientaciones que se coloquen como datos al programa.
De ser necesario calcular las condiciones para otras ciudades que no se encuentren
en la tabla de Datos Climáticos de las Ciudades más Importantes de Venezuela (Apéndice
A6, tabla A6.1) se requerirá por parte del usuario proporcionar los datos de latitud, altura,
temperatura máxima y humedad mensual y/o anual y la variación estándar de temperatura
en el día. En caso que se proporcione únicamente el promedio anual para las temperaturas,
se requiere adicionalmente que se indique el mes más caliente y la variación estándar entre
los meses, para poder establecer un patrón de comportamiento mensual y así estimar
posteriormente el comportamiento diario dentro de cada mes.

39

6. DESARROLLO
El fundamento de este trabajo de investigación es desarrollar un programa
computarizado de cálculo de cargas térmicas que se apalanque en el procedimiento
programable más actualizado, eficaz y eficiente que pueda proporcionar un perfil diario de
ganancia de calor, para establecer los requerimientos mínimos que debe cumplir un sistema
de aire acondicionado para mantener la temperatura de diseño dentro de un ambiente a
refrigerar.
Se requiere que el programa realice de modo automático los procedimientos
establecidos en las normas ASHRAE de ventilación y aires acondicionados, que
simplifique el trabajo del usuario reduciéndole la necesidad de cálculos manuales previos,
que permita el aprendizaje al usuario del mismo y a su vez, que permita un ahorro
significativo del tiempo en que se realicen los cálculos respectivos.

6.1. Procedimiento
En el proceso de investigación y desarrollo del programa que se obtiene como
resultado de este trabajo, se partió de un programa de cálculo de cargas térmicas y
psicrometría realizado por estudiantes y profesores de la Universidad Simón Bolívar en la
década de los ochenta y que aún en día lo utilizan para comprobar condiciones de cargas
para edificios de estudio.
Al hacerse necesario renovar el funcionamiento del mismo, se propuso el uso de un
programa elaborado en una plataforma de Visual Studio, ya que su interfaz grafica se
mimetiza con el sistema operativo de Windows y hace más interactivo cualquier software.
Se parte entonces con el estudio del programa anterior, realizado en lenguaje Basic,
y se determinan las rutinas de cálculo que están divididas en 20 subrutinas, 10 de ellas de

40

Además. La interfaz del programa anterior es. Fundamentalmente para corregir un dato en operación. Se maneja como una compilación de subprogramas que a su vez. ya que el programa no permite patrones de comparación con aquellos que sí están bien introducidos. arrojaba 3 subproductos. los cuales no son de acceso fácil al usuario común. pero que permita ser más dinámico y que pueda servir para la enseñanza del tema de cálculo de cargas térmicas o del diseño de aires acondicionados. donde no exista sino un único programa que realice las operaciones de cálculo de modo sencillo y que permita al usuario del mismo involucrarse más con los datos y resultados que el programa muestra. Por esta razón requiere ser operado por personas diestras en la materia de aires acondicionados y con un alto conocimiento del funcionamiento del programa de cálculo. De este modo se desarrolla un esquema de trabajo que sea lineal. lo cual dificulta la corrección de datos en tiempo de ejecución. Se incluye además la innovación del método de cálculo. bajo plataforma DOS. corregir el archivo de datos con ayuda del editor de texto de Windows. debido al programa de alta data que es Basic. la velocidad de cálculo se limita mucho debido a que son procesos dentro de otros y la falta de linealidad complica muchas veces el desenvolvimiento de las etapas.cálculo de factores de cargas. Se dificulta mucho por esta razón identificar un error en la inserción de datos. 41 . Por esta razón se hace necesario elaborar un nuevo programa que permita tomar algunos procedimientos adecuados del anterior. se debe reiniciar el subprograma de carga de datos completo o. que sufrió mejoras con el pasar de los años y simplifica en muchos casos tanto la introducción de datos como el cálculo de cargas y coeficientes.

por pestañas para cada letra del alfabeto.” el cual da la idea de partida para el desarrollo del almacenamiento.D. ya que se requiere en muchos casos de licencias y permisos especiales de uso. Agenda Telefónica.com/vb/scripts/ShowCode. apellido. teléfono. celular y algún comentario adicional que se requiera. donde se pueda asociar a un nombre varios datos o 1 Javi P. almacenamiento y presentación de los datos en pantalla. La búsqueda de los mencionados programas se realizó en el portal web Planeta Source Code (http://www.2. El uso de los códigos allí encontrados se supedita a un uso no comercial de los mismos sin el consentimiento del autor. se permite la búsqueda de los elementos almacenados según algunos criterios presentados en el mismo. se procedió a la selección de un procedimiento que fuese de utilidad de diversos programas de código abierto que permitieran las opciones de adquisición. Permite la visualización de de los nombres y números de teléfono según el nombre. Se halla un programa de “Agenda Telefónica”1 desarrollado por un autor español registrado bajo el pseudónimo de “Javi P.asp?txtCodeId=51498&lngWId=1. Desarrollo del código Para desarrollar el método de almacenamiento de datos. De la revisión de procedimientos de varios autores sobre el modo de almacenamiento por los procedimientos de base de datos y de lista de datos..6.com/) donde se encuentra disponible una diversidad de programas sencillos o procedimientos complejos que son elaborados por desarrolladores informáticos alrededor del mundo. 2004 42 .D.Planet-Source-Code. A su vez. dirección. revisión. http://www. La agenda telefónica aporta para el desarrollo de nuestro programa las cualidades de almacenamiento por listas de datos. se determina que el desarrollo del sistema debía ser elaborado bajo una plataforma que no obligase al usuario a requerir trabajar con algún programa determinado que le fuese de apoyo. modificación y uso de los datos para el programa a desarrollar de cálculo de cargas térmicas. La agenda permite ingresar para una persona su nombre.planetsourcecode. Permite seleccionar el nombre para ver los datos completos del mismo y a su vez se puede modificar alguno de ellos o agregar cualquiera que haga falta.

Text datos.txt" For Random As #1 Len = Len(datos) Get #1.Tmext = txtTme.retorno = cboRetorno. Private Sub CargUMA_Click() If txtnombuma.nombuma = txtnombuma.Text datos.Text datos. Código de almacenamiento de las unidades de manejo de aire En la figura 6.Text = "" End If End If Call Form_Load End Sub Figura 6. también permite asimilar las rutinas para lograr la presentación de las diferentes listas de datos en pantalla. sólo procederá a almacenar los datos sí existen datos introducidos en cada una de las casillas.Text = "" txtChmin.id = datos.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text = "" Or txtHintd.1 se extrae el código de la instrucción del programa que permite crear y/o almacenar las características de cada unidad de manejo de aire en el archivo correspondiente para tal fin.1 = 0 Then n_uma = n_uma + 1 Open App.Text datos.Text datos. para poder observar las características de cada variable.bpf = txtBpf.Text = "" txtTintd.Agua = cboAgua.Text datos. 43 .Text = "" Or txtcantumaigual. un ambiente o un elemento de carga. vbExclamation Else Dim n_uma As Long n_uma = lenfile(App.Uma = "UMA" datos.cantumaig = txtcantumaigual.Textd = txtTextd. Este procedimiento se ejecuta una vez que se hace clic en el botón de “Cargar Uma” de la sección respectiva y como se observa en sus líneas.Text datos.Text = "" Or txtTextd.1.txt") If n_uma .Text datos.Text = "" txtcantumaigual.Text = "" Or txtBpf.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text datos.Text datos.Text = "" Or txtTintd.chmin = txtChmin.Text datos. datos Close #1 txtnombuma.Text = "" Or txtChmin.Text = "" Or txtTme. datos Close #1 If n_uma > 2 Then MsgBox " No se pueden agregar más de dos (2) Unidades de Manejo de Aire para esta versión del programa" Else datos.Text = "" txtBpf.Text datos.Hrint = txtHintd.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text = "" Or txtHrext.Text = "" Then MsgBox "Faltan datos. n_uma. n_uma.txt" For Random As #1 Len = Len(datos) Put #1.Hrext = txtHrext.Text = "" txtHintd. que en nuestro caso será una unidad de manejo de aire.Tintd = txtTintd.id + 1 Open App.borrado = 1 datos.Flujo = cboFlujo.características pertinentes. verifique que llenó todas las casillas".TVar = "UMA" datos.

1000.". 2 ListView1.borrado = 1 Then Set itmX = ListView1. 0 ListView1.retorno) Set itmX = Nothing End If Loop Close #1 txtTextd. "flujo".SubItems(7) = Trim(datos. 2 ListView1.bpf) itmX.SubItems(2) = Trim(datos.". De igual modo se realiza para las características de oficinas y para las características de cargas de ganancia de calor. 700.txtTextpromg.ColumnHeaders. que se consideran principales en el desarrollo del programa para el cálculo de cargas térmicas objeto de este trabajo.SubItems(10) = Trim(datos.2. Int.txtHrextg. "Temp. 2 ListView1.Add .ColumnHeaders.Add . 2 ListView1.SubItems(4) = Trim(datos.SubItems(11) = Trim(datos.Item(4). 0 ListView1.ColumnHeaders.txtTituloProyecto. 2 ListView1. "Nombre UMA".Uma. Med.ColumnHeaders.Add .Add . "Temp.nombuma) itmX.ColumnHeaders.SubItems(8) = Trim(datos. "Temp. 700.SubItems(5) = Trim(datos.Text TabStrip1.2 se observa el extracto del código que se invoca cuando se carga el módulo de las características de las unidades de manejo de 44 . 2 ListView1. 1500.ColumnHeaders. "Retorno".Text txtTme. 1)) = "U" And datos.ColumnHeaders.ListItems. datos.id) itmX.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Clear Dim itmX As ListItem i=0 Open App.Add(1. . "hrint". debe actualizarse constantemente. "tempm".ColumnHeaders. "temp".Text = CondicionesExteriores. "Hrext".Selected = True 'Encabezados Lista UMAs ListView1.Text = CondicionesExteriores.Tintd) itmX. 2 ListView1. "PK". 1000.Tabs. 700. "reto".Add .".ListItems.Clear ListView1.Add .Agua) itmX.Textd) itmX. "ID". datos i=i+1 If UCase(Left(datos.SubItems(3) = Trim(datos. "Flujo".".txtTexts.Hrext) itmX. Ext. 2 ListView1. "By Pass".Text End Sub Figura 6. En la figura 6.1 itmX. "Hr Ext.ColumnHeaders. 800.ColumnHeaders.Flujo) itmX. "Agua". "PK". 2 'Actualiza la tabla de UMAs ListView1.Text = CondicionesExteriores. "Nomb".ColumnHeaders. Ext. Código principal de la subrutina de cargar el módulo de las unidades de manejo de aire La impresión en pantalla de los datos insertados para poder observar la vinculación de cada unidad de manejo de aire con sus respectivas características. 700.".para evitar así que se introduzcan datos incompletos para las unidades de manejo de aire.Add .Text txtHrext.Path & "/" & Trim(Directorio) & "/Datos/UMAs. "tint". 800. 2300. Private Sub Form_Load() Directorio = DatosGenerales. 2 ListView1.Add . .Add .Hrint) itmX.SubItems(9) = Trim(datos. "bpf". "ID".SubItems(1) = i .Add .ColumnHeaders.Tmext) itmX. "agua".Add .Add .SubItems(6) = Trim(datos.ColumnHeaders. "Hr Int.

aire.Text If ExisteDir(App.3.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos) Put #1. la cree y se cree una carpeta de resultados en su interior.Path & "/Tablas/InfoGeneral.id + 1 datos.Encargado = txtEncargadoProyecto. Private Sub Command1_Click() On Error Resume Next Dim datos As techo Dim Directorio As String Directorio = txtTituloProyecto.Show Else MkDir (App.Enabled = True End If End Sub Figura 6. Esto se logra con un procedimiento verifique inicialmente si existe alguna carpeta con el nombre que se introduce como título del proyecto y que en caso de no existir. Se observa en el código que se asocia directamente a la carpeta cuyo nombre sea igual al título del proyecto.salto = vbCrLf Open App.Path & "/" & Trim(Directorio) & "/Resultados") n_proc = lenfile(App. requiere que se analice primero la existencia o no un nombre similar al proyecto.1. de modo que se mantenga actualizada la visualización de los datos como se puede ver al final de la figura 6.3. ya que al asignarle el título al proyecto se crea la carpeta donde se almacenan los archivos de resultados y de datos de cada uno de los casos estudiados mediante el programa.Nombre = txtNombreEmpresa.Path & "/" & Trim(Directorio) & "/Datos") MkDir (App.Path & "/Tablas/InfoGeneral.Path & "/" & Trim(Directorio)) MkDir (App.Text datos. datos Close #1 TabStrip1.Titulo = txtTituloProyecto.dat" For Random As #1 Len = Len(datos) Get #1.Fecha = txtFecha. Este procedimiento se observa en el código descrito dentro de la figura 6.id = datos. de modo de permitir que sean borrados los datos anteriores o simplemente que se cree la carpeta nueva.O = "N" datos. donde está la instrucción “Call Form_Load”. datos Close #1 datos. La opción de creación de la carpeta donde se almacenarán los datos respectivos de cada uno de los proyectos que sean analizados con el programa desarrollado en este trabajo.Text datos.Path & "/" & Trim(Directorio)) = True Then DlgReemplazar.Text datos. Esta subrutina es también invocada cada vez que se realiza otra de las acciones del módulo.Text datos. n_proc. Comando ejecutado con el botón de “Crear el entorno para guardar los datos y resultados” 45 . n_proc.dat") Open App.

46 . para que sea de fácil ubicación por el usuario. cuando Visual Basic 6. según sea el caso. con el nombre que se indique. datos i=i+1 If UCase(Left(datos. 1)) = "O" Then cboEquiposCorr.4 realiza la búsqueda de todos los nombres Private Sub cboEquiposCorr_dropdown() cboEquiposCorr. se hace imposible de realizar directamente en los archivos de datos. de modo que se puedan realizar sin problemas los cálculos posteriores de los elementos de ganancia de calor. De este modo se garantiza que la correspondencia exista con elementos existentes. evitando errores al totalizar los datos.La instrucción “MkDir” de Visual Basic 6. ya que la codificación en que se imprimen los datos no es del tipo de cadena. se requiere que el usuario no nombre arbitrariamente la correspondencia.Clear i=0 Open App.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. por esa razón se da la instrucción que le de el nombre del título del proyecto y que se cree en el directorio parentesco. ambientes y oficinas.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. sino de variables numéricas.TVar. sino que seleccione de una lista vinculada al archivo correspondiente de las unidades de manejo de aire o ambientes disponibles. Código de la creación y despliegue de la lista de ambientes disponibles Ya se garantiza que se agreguen las características completas a todas las unidades de manejo de aire. La posibilidad de modificación de los datos. lo realiza a través de secuencias de símbolos y espacios que sólo el programa que lo codificó y no un editor de texto.nombamb) End If Loop Close #1 End Sub Figura 6.AddItem (datos.0 codifica en un archivo de datos las de este tipo. en caso de ser necesario.4. . podrá interpretarlo del modo adecuado.0 permite la creación de una carpeta en la ubicación que se especifique. La rutina que se observa en la figura 6. Para la vinculación directa de una carga con un ambiente respectivo o de éste con una unidad de manejo de aire.

(ListView3.id = n_uma Put #2.Path & "/" & Trim(Directorio) & "/Datos/UMAs. donde se crea un archivo virtual con los datos que permanecerán y luego sustituye al archivo original. se tomará del archivo la lista correspondiente al elemento seleccionado y se colocarán todas sus características en las casillas pertinentes dentro del entorno del programa. datos Close #1 Figura 6. evento que si modifica el tamaño del archivo. El código de selección de la lista de características se ejemplifica en la figura 6.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Path & "/" & Trim(Directorio) & "/Datos/nUMAs. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas. . Al momento de almacenar un dato corregido o eliminado se corre una subrutina variada del almacenamiento de datos.Path & "/" & Trim(Directorio) & "/Datos/UMAs. Una vez que se haga esto. tal como se puede observar en la figura 6. dónde se extrae el comando de esta operación para las cargas. ya que se elimina un espacio reservado para datos y se reordenan los datos que seguirán en existencia. Open App.txt" Figura 6. Se añade también la opción de suprimir un elemento.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.txt" Kill App. 47 .txt" For Random Access Read As #1 Len = Len(datos) Open App. Extracto del código de selección específica de las carácterísticas de una carga La selección de este modo de los datos específicos de una lista de datos.6.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.txt" FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs. Open App. que es el extracto de esta rutina para el caso de la modificación de los datos de unidades de manejo de aire.Para lograr la modificación de los datos parciales o totales de una lista completa.5 a continuación. Esta opción se logra asignándole un valor de verificación que será 1 si el dato debe permanecer y 0 si el dato debe ser eliminado.5.borrado = 1 Then n_uma = n_uma + 1 datos. Procedimiento de almacenamiento de las correcciones de datos en las unidades de manejo de aire. n_uma. de modo que el archivo no incrementa su tamaño ni se modifica su orden.txt". App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs. debe ser seleccionada la misma en pantalla y hacer doble clic en ella.SubItems(1) * Len(datos)) + 1.SelectedItem.6. permite a su vez guardarla en el espacio espefíco que se reservaba para ella. datos If datos.

Estracto del análisis de las cargas por oficinas Algunos procedimientos. Cómo se observa en la figura 6. para poder realizar los análisis respectivos que se ejecutarán si se cumplen las condiciones que indiquen la dependencia de carga y ambiente.0 permite el manejo de las operaciones algebraicas sin ningún problema más allá de la correspondencia entre el tipo de variable que se utiliza.Una vez que se desarrollan los procedimientos de adquisición y almacenamiento de datos.1)) = datos.7. que son procedimientos que se ejecutan en subrutinas distintas a la 48 . se hace necesaria la utilización de los mismos para los procedimientos de cálculo respectivos.7. Primero se calculan los elementos que pertenecen a los ambientes en un procedimiento de bucle que evalúe la totalidad de cargas que correspondan al espacio. . ya que estos deben ser números enteros en la mayoría de los casos. luego se procede a evaluar el ambiente siguiente y se obtiene la totalización de los elementos de carga que influyan en su interior. De igual modo se realiza con la impresión de los resultados en pantalla y en el archivo de resultados.Ofcorr Then (Procedimiento de cálculo de acuerdo al tipo de carga que se analice) End If Loop Next nOfi Figura 6. se hace necesario aplicar un doble bucle. por lo cual se debe evitar complicar la compilación del código de programación y se hace por medio de una subrutina que sólo se efectúa cuando se hace necesario. El lenguaje Visual Basic 6. cómo el cálculo de las tablas regionalizadas de ganancia de calor solar se efectúan sólo cuando es requerida una latitud que no haya sido previamente calculada. datos i=i+1 If Ofi((nOfi .Path & "/" & Trim(Directorio) & "/Datos/Cargas. For nOfi = 1 To n_ofi Open App. El llamado de los datos. debe hacerse en correspondencia con los ambientes y unidades de manejo de aire existentes y debe calcularse los efectos totales de los elementos contenidos en cada uno. que para efectos de precisión de los calculos se utiliza del tipo “double” para todos los procedimientos intermedios y del tipo “long” para los datos finales.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.

El Programa El programa se desarrolla en el lenguaje Visual Basic 6.rutina normal de cálculo. A diferencia del manejo de Base de Datos.0 soportado en interfaces de Visual Studio 6. ya que los caracteres que se introduzcan serán incompatibles con la asignación que se le ha dado desde el programa. Memoria RAM 256Mb (o superior) y Capacidad de Disco Duro (libre) de 10Mb (o superior). En caso de alterarse o borrarse los archivos necesarios para el programa como lo son las Tablas.0.60GHz (o superior). lo cual permite la utilización de una interfaz gráfica que no distorsiona con el funcionamiento de una plataforma de Windows. No se 49 . 6. Se fundamenta en un programa con soporte en Archivos de Datos. Un directorio parentesco es un directorio donde se aloja el programa en ejecución y que reconoce automáticamente para a partir de ahí llegar según códigos programados a guardar o abrir archivos y carpetas. Es por esta razón que no se debe modificar un archivo directamente desde la interfaz de Windows con un programa de procesamiento de texto. el programa incurrirá en una acción de error y probablemente deje de operar. de los cuales puede leer y/o imprimir variables de interés. sólo requiere de la existencia de los archivos necesarios para poder funcionar correctamente. Se garantiza el funcionamiento del programa en una computadora con por lo menos un Sistema Operativo Windows Xp. Cargas o Resultados (según sea el caso) en función del directorio parentesco y de la lectura de los datos ahí contenidos el programa determina por asignación y según las especificaciones de variables contenidas. cuáles son los datos que se habían guardado en esos archivos. El principio de funcionamiento se basa en invocar a un archivo dentro de la carpeta de Tablas. Procesador de 2.3. la lista no requiere de programas de soporte alterno. con la finalidad de agilizar los procedimientos y evitar que se haga pesada la ejecución de los procedimientos.

se debe almacenar por etapas en archivos de datos que sólo son de escritura o lectura. pero le será más fácil el uso y comprensión a alguien que conozca del cálculo de cargas térmicas y ganancias de calor. 6.requiere de la instalación de programas ni librerías adicionales. El programa que sirve de base para el desarrollo del programa de este proyecto. Avances en el Procedimiento de Cálculo del Programa Debido a que se parte de un programa ya elaborado como base.4. Este 50 . y hacer ese proceso limitaba mucho la velocidad de funcionamiento del mismo. por eso se pueden crear listas de datos que puedan ser leídas y separar los datos con una coma del siguiente. el desarrollo del nuevo programa se sustenta en el modo de funcionamiento del mismo para desarrollar un nuevo software que mejore significativamente aquellas funciones que sean susceptibles de mejoras y se continuará haciendo un proceso similar en aquellas características que convenga aún usar el método tradicional. se realiza del mismo modo. un funcionamiento simultáneo de estas opciones se dificulta debido a que el procedimiento de lectura y escritura de datos se realiza bit a bit. sólo se requiere de la especificación de una carpeta matriz en donde se almacene el programa y sus carpetas hijas. para realizar una lectura de los mismos de acuerdo a lo que sea requerido. por su parte. El funcionamiento del programa es sencillo y fácil de comprender para cualquier usuario. El procedimiento de manejo de lista de datos en Visual Basic. con la peculiaridad que identifica un fin de comando al encontrar una coma. tiene la opción de realizarse byte a byte o según el procedimiento denominado Random. es decir de acuerdo a cada instrucción de impresión que se le proporcione al programa éste ocupará el espacio. La lectura de datos de archivos en Basic. no tiene la posibilidad de almacenar en memoria virtual los datos de cálculo por un período prolongado de tiempo.

Gracias a la ventaja que permite este método de almacenamiento de los datos. poseerá información que es incomprensible para el software de cálculo. donde se correrá por cada ambiente. 24 51 . Con esta característica. También. las diferentes cargas que pertenezcan a ésta en el lapso indicado. para compararlas entre ellas. en el programa de cálculo desarrollado. se realiza en una etapa cíclica única. Por lo tanto. ya que el programa no debe tener diseñada la función de búsqueda en un lugar específico del archivo de datos.procedimiento de escritura y lectura de datos permite el almacenar líneas completas de datos de acuerdo a la instrucción que se le proporcione al ser programado el llenado de las tablas. se almacena una línea completa de datos que incluye toda la información suministrada y que al ser leída se puede discriminar en función de cualquiera de las variables de toda la lista. a partir de ese punto del archivo. Por ejemplo. se simplifica considerablemente el procedimiento de cálculo. si se abre un archivo y se le modifica en aunque sea un caracter. que de ahí proviene el nombre del modo de almacenamiento. sino que busca por criterios. es que los usuarios finales no podrán hacer modificaciones de los archivos fuera de tiempo de ejecución del programa. Por esta razón es que se puede hacer el llamado de los ambientes para realizar las correcciones necesarias en cualquiera de los datos específicos de ellas y de este modo corregirlos y almacenarlos de nuevo. cuando se almacena un Ambiente Tipo. El procedimiento de cálculo. ya que el caracter que se introduce utilizando un programa de edición de texto no es el mismo que el que se encuentra programado en la raíz del procedimiento de almacenamiento automático de datos del programa desarrollado. se almacena en una única línea de datos toda una serie de variables que pueden ser características de una en específico. La desventaja mayor de este sistema. permite búsquedas aleatorias en las filas de datos.

Tcolocacion) ini = Trim(datos.tcarga.duracion) Canteq = Trim(datos. Se procede a la carga de datos 52 . j) ‘Actualización del total de ganancia Next j End If End If Loop Close #1 Next nOfi Figura 6. si la opción de cálculo seleccionada así lo requiere. j) End If If j >= ini And j <= fin Then Período de consumo de energía Qequipos(0. 13)) = "EQUIPOTENCIA " Then qequi = Trim(datos. datos If Ofi((nOfi . Código particularizado para el cálculo de las cargas de Equipos de Potencia En el extracto del código de programación para el cálculo de la ganancia por equipos de potencia (Figura 6. For nOfi = 1 to cantofi ‘Se realiza el proceso tantas veces como ambientes existan Open App. continuará avanzando Get #1.8.1 fin = ini + dur qequi = qequi * 1 For j = 1 To 24 If j < ini Then ‘Acción para las cargas antes de ser encendidas Qequipos(0.Path & "/Datos/Cargas.Inicio) dur = Trim(datos.8) se observa cómo en principio se hace la carga del archivo con la instrucción de abrir como proceso de lectura aleatoria. j) = 0 + Qequipos(0.uso) ini = ini * 1 dur = dur * 1 .1)) = datos.IgEquipos) uso = Trim(datos. . j) = 0 + Qequipos(0.Ofcorr Then 'Revisar que pasa aqui con el id del dato If UCase(Left(datos. j) End If If j > fin Then ‘Una vez que se apaga el equipo Qequipos(0. j) = qequi * uso * Canteq + Qequipos(0.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) ‘Mientras existan cargas. j) End If totalEq = totalEq + Qequipos(0.veces nada más si el tipo de análisis es de un solo mes o 288 veces (24x12).

8. Una vez que estos datos son calculados se almacenan en un archivo con el nombre correspondiente a cada ambiente refrigerado. en este caso se denomina datos al esquema de almacenamiento para el tipo de cargas dentro de cada ambiente. De igual modo se almacenan los resultados de cargas totales de las unidades de manejo de aire. se procede a buscar los valores picos de cada una de las opciones de lista en caso que el análisis sea anual. no se especifica línea de trabajo y se especifica el protocolo en que debió ser almacenado. pero todos simultáneos. Se comparan los datos del archivo de Cargas según la correspondencia de ambiente y se procede al cálculo de todas las ganancias de cada una de los distintos elementos contenidos en ese ambiente y son almacenados en los resultados según la correspondencia inicial. A su vez almacena los resultados en otro tipo de archivo que es leído en la etapa siguiente del programa y busca las asociaciones de UMA’s que tengan cada uno de estos resultados de carga para poder hacer las consideraciones globales de cada una de ellas y poder dar los totales de carga que correspondan. para que puedan ser de fácil lectura para el usuario final. va a comparar todas ellas para calcular las ganancias. Sección Resultados) que ha sido llenado en función de la matriz de espacios disponibles del archivo “Oficinas” que se crea cuando éstas son almacenadas. Así cada total de ambiente se va realizando de modo similar al indicado en la figura 6. Una vez que el programa apertura el archivo para leerlo empieza de modo aleatorio a tomar todos y cada uno de los datos contenidos y comienza la comparación de variables. los cuales son de la dimensión correspondiente del tipo de análisis realizado.con el comando Get y la vinculación al archivo abierto “#1”. en este caso existe un vector de nombres de ambientes llamado Ofi (ver apéndice C. para poder proporcionar el pico de carga y su correspondiente mes. 24x1 o 24x12. 53 . ya que mientras no se termine el archivo de cargas.

9.Figura 6. resultando más dinámico y simplificando la etapa de llenado de datos en memoria dinámica del computador.9. se realiza el procedimiento de cálculo psicrométrico por cada una de las unidades de manejo de aire. como lo realiza el programa de la década de los ochenta. El principio de secuencia de los cálculos y determinación del recalentamiento. El esquema simplificado el procedimiento es el reseñado en la figura 6. será el resultado global de calor que se debe extraer del edificio en total. Bajo el mismo principio. multiplicados por la cantidad de ellas que sea pertinente realizar. Esquema del procedimiento de cálculo del programa La suma de los totales por unidades de manejo de aire. 54 . se realiza de un modo similar al que se obtiene del programa Cargas realizado en Basic. si fuere necesario. por lo que el sistema de aire acondicionado se confecciona de acuerdo a ello. proporcionará el aporte que se requiere de la unidad enfriadora por parte de cada una y la suma de todas. para obtener así los requerimientos de recalentamiento o no de la unidad. con la ventaja que ahora los datos se leen por lista completa y no dato por dato.

Esta dificultad fue una opción para el desarrollo de un nuevo sistema que permitiera al usuario equivocarse y tener la opción de corregir de un modo dinámico los datos que se estuvieran introduciendo. tener visibles las demás cargas de personas que se han insertado.5. tiene como una de sus desventajas principales el hecho que los datos no pueden ser modificados durante la ejecución del programa. Avances en el Procedimiento de Almacenamiento y Corrección de Datos El programa de partida para el desarrollo del presente proyecto. Imagen del programa en la Carga de Personas 55 . Permitiendo además un trabajo con los datos siempre en pantalla.10. lo cual obliga al usuario del mismo a ser muy diestro en el manejo de los datos y a no cometer error alguno. para que puedan ser de referencia para algunos datos subsecuentes que se requiera insertar. Se permite de este modo al caracterizar cualquier tipo de carga. como se muestra en la Figura 6. por ejemplo de “Personas”. Figura 6.10. para así comprobar si es necesario o no incluirla y si se parece a la de algún otro ambiente. porque significaría que el programa no correrá en absoluto.6. Este desarrollo se logra hacer gracias a la existencia del sistema de trabajo por lista de datos que fue explicado con anterioridad. copiar los datos de una de las que estén listadas.

11. cuando se selecciona una lista de datos 6. selecciona la opción borrar y acepta. Una vez que el usuario hace el llamado desde la tabla a alguna lista de datos.11. el programa está en la capacidad de permitir al usuario hacer el llamado de los datos de la línea específica de carga para así ver los datos en las casillas de texto correspondientes a cada elemento y corregir aquel error que existiere. la presente carga queda eliminada permanentemente de los datos. ya que con el nombre que coloque se creará una carpeta donde se 56 .En caso de observarse algún error en alguno de los datos listados. unidad de manejo de aire u ambiente si fuere necesario. Secuencia de Funcionamiento del Programa Una vez comenzado el programa.6. También se incluye la opción de borrar alguna carga. almacenándolo una vez corregido. el usuario debe comenzar por colocar los datos generales del proyecto. como se puede observar en la Figura 6. Imagen de la carga de personas. ya que en las listas de datos se abre entre las variables una opción invisible para el usuario de validación para borrar. Figura 6.

12 y Figura 6. teniendo un carácter de dependencia entre ellas. A Pesar que se encuentran en un mismo nivel aparente la inclusión de datos de las Unidades de Manejo de Aire. salvo que el usuario decida tomar la opción de “Guardar y Salir” presente en la pantalla del programa. para posteriormente poder acceder a ellos si así fuese requerido.12.13) Figura 6. Esquema de funcionamiento del programa. Para poder establecer la correspondencia y requerimientos de enfriamiento de cada uno de los ambientes por las Unidades de Manejo de Aire que deban atenderlos. parte 1 de 2 57 .almacenar los datos y lista de resultados pertenecientes al proyecto que se elabore. así como se indica a qué Unidad de Manejo de Aire pertenece cada uno de los Ambientes. se da la opción al usuario de colocar a qué Ambiente pertenece la Carga que se introduzca. Un diagrama ideal de funcionamiento del programa es el que se observa entre los siguientes esquemas (Figura 6. las de Oficina o Ambiente y las Cargas. los siguientes procedimientos de guardado serán automáticos. Posterior a que se ha asignado un nombre al proyecto y se ha creado la carpeta para guardar los resultados.

éstos corresponden a las UMA’s pertinentes. Una vez que el usuario ha introducido las respectivas unidades de manejo de aire. Igualmente ocurre para las cargas. El procedimiento de cálculo en que se fundamenta el programa se rige bajo el esquema planteado en los Procedimientos de Cálculo explicados en el capítulo de Métodos 58 . Una vez que se ha comprobado que las cargas corresponden a los ambientes respectivas y a su vez. que sólo podrán compatibilizarse con un ambiente que haya sido previamente descrito en el segmento respectivo. ambientes refrigerados y cargas con todas sus características.13. los ambientes y las cargas dentro de ellas. Las cargas.Figura 6. parte 2 de 2 El usuario sólo puede asignar por cada tipo de ambiente una UMA que ya haya sido caracterizada previamente. se introducen por tipo. se puede revisar cada una o ir a la opción de ver el listado completo. el usuario puede solicitar el cálculo de las cargas. donde se especifica la correspondencia de cada una de las UMA’s. Esquema de funcionamiento del programa. seleccionando inicialmente el tipo de carga que se quiere añadir y luego especificando tanto las condiciones como el ambiente al que pertenecen. para así evitar incongruencias en la lectura de los datos.

6. Opera dentro de una estructura de botones o pestañas que indican la etapa del programa en que se encuentra trabajando. Se hace imperativo que el programa sea alimentado con número de acuerdo al estándar numérico de cada región (uso de comas en Latinoamérica para separar los decimales) de modo que no ocurra error en el cálculo de las cargas. ya que es un programa realizado como requisito para la obtención del título de grado de un bachiller. Automáticamente una vez que se realiza el cálculo de las ganancias de calor de cada carga. 6. Inicio En la sección de Inicio se da la bienvenida al programa y además se explica el carácter académico del mismo.y Procedimientos. 59 . Permitiendo que se generen los cálculos para cada una de las 24 horas de operación en el rango anual o mensual que haya sido seleccionado para el cálculo respectivo. Estructura del Programa El programa de cálculo posee una interfaz con el usuario que permite la corrección de los datos que son insertados por el usuario y permite añadir o borrar cualquiera de los datos insertados. se almacenan en un archivo de texto que puede ser fácil de consultar por cualquier usuario y simultáneamente se imprime en pantalla el mismo listado de las cargas por horas de acuerdo a cada ambiente y también el cálculo global por UMA’s.1.

Condiciones Exteriores Es en las condiciones exteriores donde se selecciona. en caso de ya existir un proyecto con ese nombre. Adicional a eso.Datos Generales Esta sección es importante ya que se debe identificar el proyecto. la latitud. si desea sustituir el anterior o cambiar su selección de nombre. Las variables de temperatura. la empresa para la cual va a realizarse el trabajo de estudio de cargas térmicas. Condiciones de la(s) UMA(s) Ingresar las condiciones de UMA’s es necesario para poder crear un ambiente válido. o se crean los datos de. pero a su vez está la opción de agregar una nueva ciudad agregando los datos completos de temperaturas máximas por mes o el promedio de máximas anual. Al momento de terminar de indicar el nombre. la altura de ubicación. se le indica al usuario. se especifica el responsable del proyecto y se determina la fecha de realización del mismo. la temperatura de bulbo seco en el exterior. estarán disponibles siempre. Las ciudades que se agreguen. temperatura promedio y humedad 60 . la humedad relativa. ya que es a través de la unidad de manejo de aire que se controla el confort del ambiente acondicionado. Al hacer clic sobre el botón “Base de Datos de Ciudades…” se abre una nueva ventana donde se muestra la lista de datos climatológicos de algunas ciudades de Venezuela. y la temperatura promedio en el exterior. eligiendo de un desplegable las opciones entre un análisis mensual específico o un análisis anual. Aunque sólo en el computador en que se ha agregado. la ciudad de ubicación. se debe especificar el tipo de análisis que se va a realizar. se especifica si la ciudad no estaba previamente especificada. la diferencia estándar de temperaturas por día.

para garantizar que se llenen todos los datos. el área superficial. aunque en la realidad se pueden hacer variaciones de temperatura por control de flujo de salida del aire.exterior serán las mismas que las que se introducen en la sección de Condiciones Exteriores. seleccionar la unidad de manejo de aire. si es enfriado por agua o no. Se permite escoger al usuario el tipo de flujo (si tiene o no derivación). la cantidad de ambientes con similares condiciones (de carga inclusive). Con retorno Parcial). Sin retorno. destinado a cierta cantidad de locales comunes en el país. que se despliega al hacer clic sobre el botón y contiene el listado de cambios de aire mínimos por hora que recomiendan las normas según el Ministerio de Sanidad Venezolano. Se obliga de este modo a que la temperatura de todas los espacios refrigerados correspondientes a una unidad de manejo de aire sea igual. Condiciones de Ambiente(s) Cada ambiente debe ser dependiente de una UMA. y escoger entre el tipo de retorno del aire (Con retorno. 61 . la altura global de pared (al techo o cielo raso) y el número máximo de personas que se estime habrá en el local en un instante determinado. Para la introducción de los cambios de aire por hora mínimos. se agregó una sección de “Normas”. que representan una unidad. Los valores que se introducen de las UMA’s pueden verificarse en la lista que se despliega debajo y puede seleccionarse haciendo doble clic sobre cualquiera de las líneas de datos. para el cálculo psicrométrico de las UMA’s. Se permite insertar los datos del nombre con que se identifica al ambiente. por lo tanto se exige que se especifique una de las que han sido previamente guardadas en la sección correspondiente para poder contar con datos de temperatura y humedad interior. pero son suposiciones que no se pueden estimar de un modo sencillo.

Cargas La sección de Cargas dentro del programa es dónde se debe determinar cuánta energía requieren o producen los distintos elementos que delimitan y conforman un ambiente. los ambientes guardados se presentan en una lista general en la parte inferior de la pantalla y permiten al usuario seleccionar cualquiera haciendo doble clic. De igual modo que ocurre con las UMA’s.Se presentará de modo automático la proporción de personas por área del ambiente. y se permite seleccionar la cantidad de ventilación e infiltraciones correspondientes al ambiente según las normas del estándar 62 de ASHRAE. para verificar. Las cargas que influyen en un ambiente están caracterizadas. 62 . para los usos típicos de los espacios. al menos las más representativas. Techos La carga de techos es particularmente sencilla se debe hacer clic sobre el recuadro del coeficiente de transferencia de calor donde se puede identificar el tipo de techo directamente de la lista de techos comunes establecida o. modificar o borrar los datos almacenados. se accede al módulo de estimación del comportamiento del mismo. en función de alguno de los materiales listados y la resistencia térmica total del techo. los cuales provocarán un incremento de calor que el sistema de refrigeración deberá extraer a lo largo del período del día si el espacio es refrigerado. A continuación se detalla lo que se debe realizar en cada una de las cargas para que sean válidos los datos. que el usuario selecciona en función de lo que deba introducir como datos. y se presentan las diez cargas en un formato de pestañas desplegables.

se limita a las opciones de claro y oscuro. se despliega una ventana que permite calcular los coeficientes de pared en función de similitudes con las preestablecidas o seleccionar directamente una pared de las existentes para tomar sus valores como datos de la carga de pared en cuestión. Se indica también si existen más paredes similares dentro del mismo ambiente y el área superficial que se expone al sol. ya que de la orientación dependerá el posterior cálculo de la ganancia de calor solar que se obtenga a través de esa sección de la estructura total. El color de pared. que puede ser obtenido de las tablas del fabricante o de algún manual específico de vidrios.052) y se indica si posee o no cielo raso el espacio de estudio.026 u oscuro = 0. pero el usuario puede indicar un coeficiente de color distinto.Luego de eso. al igual que el de techo. se especifica el área de techo. es similar al que se realiza para los techos exteriores. El programa presenta además el tipo de techo característico que es o se asemeja al de estudio. Pared El ingreso de datos para paredes exteriores. Sólo se debe incluir este 63 . el coeficiente por color del techo (claro = 0. al hacer clic sobre el cuadro de texto del coeficiente de transferencia de calor. Vidrio La carga de vidrio debe ser introducida especificando para este caso el coeficiente de transferencia de calor del vidrio. Es importante en este caso indicar la orientación en que se encuentra la cara externa de la pared.

el área. que se le presenta al hacer clic sobre el cuadro de texto del coeficiente de transferencia de calor. como lo son persianas o material reflectante en la superficie del cristal. es por eso que se recomienda acudir a los manuales de fabricantes o estimar el valor de algún modo científico. se debe seleccionar un ambiente válido. 64 .factor. ya que su procedimiento de cálculo ocurre bajo el mismo principio. y para obtener la temperatura interna. Se requiere que el usuario seleccione de la lista de materiales de construcción. Es en el factor de sombreado. Piso. ya que sólo de este modo se activará el cuadro de texto correspondiente. para que según la función se obtenga el resultado del factor U necesario para el cálculo de la ganancia. la transferencia de calor entre espacios adyacentes de temperaturas distintas. donde se involucra la relevancia de existencia o no de material que evite el paso de luz a través de los cristales. Partición. Se debe especificar la temperatura del ambiente contiguo. Techo Interno El manejo de estas cargas de ganancia se realiza de un modo similar. la configuración de la estructura o que la especifique según los estimados de resistencia de cada material. la orientación el coeficiente de sombreado (según fabricante) y la cantidad de vidrios iguales en el ambiente.

cuánto tiempo permanecen encendidos y cuántos de ellos hay en el ambiente refrigerado al que pertenecen. en el ambiente ya que se requieren sólo el total de potencia nominal instalada y la especificación del tipo de luces. incandescentes para las luces que trabajan a altas temperaturas. Se debe indicar en este momento si el aparato se encuentra en un sistema con o sin campana de extracción. Aparatos Para dar los valores requeridos de ganancias de calor sensible y latente de los aparatos.Luces La carga de luces depende del total instalado por cada tipo de luz. además del tiempo en que permanecen encendidas y la hora de inicio. incandescente o fluorescente. o fluorescente para las luces que trabajan a una menor temperatura. generalmente de color amarillo. que es un factor que incrementa la influencia de la radiación en la ganancia de calor que se genera al espacio refrigerado. se indica el factor de balasto. es imperativo hacer clic sobre el cuadro de texto de alguna de ellas y así acceder a una ventana donde se ofrecen cuatro listas distintas de aparatos comunes que sirvan de referencia para establecer según ellas los valores respectivos de cargas. generalmente luz blanca. 65 . Es necesario indicar también la hora en que se encienden los aparatos. Al reconocer el tipo de luces. ya que éste es un factor que reduce la ganancia de calor latente en su totalidad y parcialmente la sensible.

la energía que se transfiere al espacio varía si el equipo y el activado se encuentran dentro del espacio refrigerado o si tan sólo uno de ellos es el que se encuentra dentro. al igual que para los equipos de potencia. podría generar un error de juicio al considerar la ganancia de calor que genera el equipo. no tanto en la generación de calor por temperatura. bien puede ser un ventilador industrial. No especificar este factor. para que se despliegue una ventana con varios ejemplos típicos referenciales de calor producido por una persona estándar en unas condiciones de local y actividad 66 . se requiere que el usuario haga clic en la ganancia de calor sensible o latente. Son equipos de mayor complejidad que los aparatos y que su principal efecto de transferencia de calor es en la producción y transmisión de energía. están regulados por normas que generalmente hacen que sean instalados en espacios abiertos o ventilados lo más naturalmente posible. para comodidad del usuario los motores eléctricos más comunes que se pueden conseguir en industrias y edificios. una bomba de agua.Equipos de Potencia Los equipos de potencia son motores que impulsan a algún elemento de carga. Se listan. ya que según fabricantes de motores. un generador eléctrico. Personas Para la carga de personas. por eso se deben diferenciar. Otro factor significativo de esta carga es la colocación del equipo. por eso no se encuentran como opción en la lista de posibilidades. Los motores a combustible no son frecuentemente instalados en espacios refrigerados porque al concentrar vapores combustibles y emitir gases contaminantes. entre otros.

hecho que ocurre únicamente en la ventana de Lista Total de Datos. ambientes y condiciones iniciales. pero no debe ser modificado directamente en el archivo. por lo tanto. permitiendo que sean modificadas cada una de ellas por el usuario de un modo simple. donde será responsabilidad del usuario la revisión de correspondencia de los datos ingresados al 67 . realizando dicha actividad. Así como indicar la hora de entrada de las mismas y su tiempo de permanencia en el espacio refrigerado. unidades de manejo de aire. Los datos serán recopilados en un archivo “*. donde se establecen y comprueban los vínculos precisos de las cargas respecto a las UMA’s. en una estructura similar a la de un árbol. Resultados La ventana de resultados se visualiza cuando el usuario manda a “calcular” al programa. pero dentro de la ejecución del Software. En particular no se requiere más que indicar el número de personas que permanecerán en el ambiente. de ambiente y de tipo de carga.específicas.dat”. que puede ser de fácil acceso por cualquier usuario. se permite que el programa cargue en esta etapa el archivo compilado de cargas. El usuario puede seleccionar alguna de las opciones de la lista y será asumida como datos ingresados en el formulario de la carga o simplemente podrá tomar alguno como referencia para considerar otra ganancia. Lista Total de Datos En esta sección del programa se presenta una lista resumida de los datos introducidos anteriormente. Se muestra una recopilación simplificada de los nombres de unidad de manejo de aire. porque no deja de ser comprendido por el programa. en promedio.

se observa la determinación del pico de carga. Se presenta una lista de datos general. los factores de ganancia de calor requeridos por el estudio y los coeficientes de temperatura total equivalente TETD en cada dirección necesaria. Como general se presenta en la parte inferior de la ventana un resumen de la unidad de enfriamiento que indica las cargas en el punto más desfavorable de energía y la potencia de un equipo de refrigeración mínima para cubrir las necesidades del ambiente. para que sean de fácil acceso para documentación de proyectos relativos al cálculo de las cargas de refrigeración. el programa almacena de un modo tabulado los mismos. si corresponde el tipo de análisis y en la parte inferior de la sección de pestañas. para indicar las condiciones de temperatura soleada que se necesitó calcular. De forma simultánea que se van realizando los cálculos y obteniendo los resultados.programa para la efectiva determinación de cargas por espacio y por unidad de manejo de aire en el tiempo que sea indicado el análisis. que se muestran en tres listas de datos. En la misma opción de pestañas se permite ver también los resultados por UMA’s donde se listan las cargas totales de las mismas en cada mes. 68 . para este caso. otra para indicar las Ganancias de Calor Latente y la tercera para indicar las Ganancias Totales de cada carga presente. Luego una opción de pestañas donde se presentan los resultados por cada ambiente. una para indicar las Ganancias de Calor Sensible de los ambientes.

libera al programador y al usuario final de tener que cancelar usos de licencias para el soporte de las mismas. cuando se hace la conversión del tipo de variable numérica a un formato de cadena de caracteres. como en la elaboración de las referencias programadas de un software. que pueden ser aceptadas por el usuario así como puede tener algunas consideraciones que disten de lo incorporado en el mismo. a diferencia de muchos otros. que es el formato impreso en los archivos de resultados y que se visualiza en las listas de la sección correspondiente. ya que el uso de éstas requiere de librerías y software adicional.7. ya que se fundamenta en ecuaciones y convenciones de signos que así lo garantizan. Su uso en el hemisferio sur requiere de modificaciones que no se consideraron en el caso de este proyecto ya que el punto focal era elaborar un sistema automatizado de cálculo para Venezuela y los datos de comparación disponibles para comprobar la efectividad del cálculo están todos basados en el hemisferio norte. El trabajo con listas de datos en vez de con base de datos. RESULTADOS El programa de cálculo de cargas de refrigeración para edificios realizado permite. La precisión de de los cálculos se considera aceptable al compararla con datos específicos de cargas de los ejemplos del manual ASHRAE Fundamentals 1997. ya que no realiza redondeos de variables sino al final. tanto en la publicación de los métodos. En este programa sólo se hace referencias a tablas de características. También está en capacidad de soportar latitudes de todo el hemisferio norte. Se evita finalmente la dependencia de tablas de factores de ganancia que son calculados y aproximados por terceras personas. considerar la situación geográfica específica de Venezuela sin tener que invocar a aproximaciones en función de tablas que no corresponden de modo preciso a las latitudes presentes en este espacio geográfico. que a su vez pueden tener muchos detalles al transcribirse. que hace más pesado el programa de 69 .

permite la asociación de las variables completas de una carga. permitiendo así el manejo más dinámico de los procedimientos de búsqueda datos y posterior cálculo de resultados. cuya interfaz permite la corrección dinámica de los datos que se van añadiendo y el cual a su vez. permite la comprensión de las situaciones que requiere el cálculo para aquellas personas que no se encuentran totalmente familiarizadas con el proceso de cálculo de cargas térmicas para dimensionar algún sistema de aire acondicionado. se permite que sea aplicable como proyecto de investigación y no como proyecto de lucro. Además el trabajo con listas en Visual Basic. Esto es debido a que fue probado el programa en varias máquinas que cumplían las especificaciones indicadas y sin necesidad de tener instalado el programa base de programación. La compatibilidad del programa con cualquier máquina que cumpla los requerimientos mínimos indicados. a diferencia de cómo ocurría con el programa en Basic. Al realizarlo de este modo. Esto se realizó aunque no era requisito de la investigación. Se consigue un programa que bajo elementos de carga que no superen los 100 tipos de ambientes y las 50 unidades de manejo de aire. corrió sin problemas y arrojó los resultados esperados. 70 . Esto debido a que no se realizan tantos saltos en la línea de operación de los cálculos. está comprobada y su velocidad de cálculo incrementa con la velocidad del procesador del computador en que sea utilizado el programa. ambiente o unidad de manejo de aire. correrá en un tiempo prudencial para el sentir humano. ya que va exigiendo variables importantes y proporcionando otras que quizás alguien con poca experiencia pueda pasar por alto en muchos casos. La interfaz además. que se debía prever la disposición de los datos para considerar su lectura del archivo.cálculo y requiere un costo adicional. aporta muchas de las listas de materiales y cargas que se consiguen en las oficinas e instalaciones industriales.

71 . 2. es una herramienta muy versátil para el cálculo de cargas térmicas. ya que a pesar de lograr los objetivos previstos. Se complementa de los demás métodos de cálculo de cargas. proporcionando así medidas de control que contribuyan con el ahorro energético que demanda el mundo actual en vías de expansión del consumo con recursos limitados. CONCLUSIONES Y RECOMENDACIONES 1. La regionalización de los cálculos es un paso relevante. 4. Finalmente. El método de la Diferencia Total de Temperaturas Exteriores promediadas en el tiempo (TETD/TA). La reducción de instrucciones incrementa la velocidad de proceso y por lo tanto mejora el rendimiento del programa. a su vez permite seguir desarrollando sistemas que adaptados a mecanismos de control electrónicos permitan un cálculo contínuo de la relación de energía requerida versus la consumida. favorece la obtención de un diseño adaptado a las necesidades y costos de nuestras industrias. simplifica la obtención de resultados e incrementa la velocidad con que se desarrollan los proyectos. Poseer un programa que permita calcular los requerimientos térmicos y energéticos de un sistema de refrigeración. el programa desarrollado en este proyecto puede ser objeto de mejoras en las rutinas de cálculo y programación. siempre existen métodos de reducción de líneas de programación que el autor pudo haber omitido durante el desarrollo. La automatización de los cálculos.8. se enaltece la estima por lo nacional al ver entre las primeras opciones de ciudades a las del país donde se nació. 3. a pesar que no se tenga regulado el diseño de aires acondicionados en Venezuela. Además. y se obtienen resultados similares. en un proceso que requiere un menor número de consideraciones y cálculos. El cálculo de cargas térmicas mediante programas de computadoras.

F. “Apuntes de clase de Instalaciones Mecánicas USB”. Atlanta. Chapter 24. Refrigerant and Air-Conditioning Engineers. Refrigerant and Air-Conditioning Engineers. 1-36 Rey F. pp 160 López. Refrigerant and Air-Conditioning Engineers... BIBLIOGRAFÍA Referencias ASHRAE. Atlanta. Franco. Varela. American Society of Heating. M. Atlanta. Siracusa. Carrier Air Conditioning Company. Inc. 1981 ASHRAE “Fundamentals 1989” Psychrometrics. Atlanta. Chapter 29. Nueva York. J.) 72 . Bartolomé. American Society of Heating. Molina y J. Thermal and Water Vapor Transmission Data. Chapter 25. Carrier Corporation 1960. Atlanta...M. Velasco. Inc.99-108 (S. McGraw Hill. “Estudio comparativo de métodos de cálculo de cargas térmicas en edificios”. Madrid.200-1155. Refrigerant and Air-Conditioning Engineers. Atlanta. American Society of Heating. Refrigerant and Air-Conditioning Engineers. Inc. Refrigerant and Air-Conditioning Engineers. American Society of Heating. Caracas. Chapter 26. American Society of Heating. Climatic Design Information.A.. 1997 ASHRAE “Fundamentals 1997”. “Programación avanzada con Microsoft Visual Basic 6.J.0”. Chapter 6. 1997 ASHRAE “Fundamentals 1997”. 1989 ASHRAE “Fundamentals 1997”. F. Chapter 6.F. Inc. ANSI/ASHRAE Standard 62-1999 ASHRAE “Fundamentals 1981” Psychrometrics. 1999 “Ventilation for Aceptable Indoor Air Quality”.9. Inc. 1997 Balena.. 1° edición en español. Climatización pp. 1997 ASHRAE “Fundamentals 1997”. Chapter 28.. Atlanta. E. “Load Estimating”. American Society of Heating. Refrigerant and Air-Conditioning Engineers. 2006. pp. Ventilation and Infiltration. Inc. Energía. Inc.. American Society of Heating. Fenestration. 1972. 2000.J. M. 1997 ASHRAE “Fundamentals 1997”. Nonresidential Cooling and Heating Load Calculations.

7. Tablas Apéndice A1 Tabla A1.1 de requerimientos de aire por ventilación. APÉNDICES Apéndice A. Pág. 73 .2 2 ASHRAE 62-1999.10.

2 de requerimientos de aire por ventilación. Pág. 8. 74 .3 3 ASHRAE 62-1999.Apéndice A1(Cont) Tabla A1.

75 .4 4 ASHRAE 62-1999. 9.Apéndice A1 (Cont.3 de requerimientos de aire por ventilación. Pág.) Tabla A1.

P-6 76 .S. Milton.1 Número mínimo de cambios de aire por hora requeridos por las normas del M.A.Apéndice A2 Tabla A2.S según uso del local5 5 López. Apuntes.

Apéndice A3 Tabla A3. Page 29. Irradiación Solar y Coeficiente de Ganancia de Calor para Latitud 16° N6 6 ASHRAE Fundamentals 1997.1.29 77 .

) Tabla A3.2.Apéndice A3(Cont. Reflectividad de superficies exteriores 78 .

Apéndice A3 (Cont. Factores U para varios elementos con vidrios en W/(m2*K) 79 .3.) Tabla A3.

) 80 .Apéndice A3 (Cont.4. Factores U para varios elementos con vidrios en W/(m2*K) (cont.) Tabla A3.

5 Transmisión Visible (VT) y Coeficientes de Sombra (SC) para vidrios solos y aislados 81 .Apéndice A3 (Cont.) Tabla A3.

Apéndice A4 Tabla A4. Coeficiente de función de transferencia para Techos 82 .1.

Apéndice A4 (Cont.2 Coeficiente de función de transferencia para Paredes 83 .) Tabla A4.

4.3 Tasa de Ganancia de Calor de los Ocupantes Tabla A4. Porcentajes Convectivos y de Radiación del total de Calor Sensible 84 .) Tabla A4.Apéndice A4 (Cont.

) Tabla A4. Ganancia de Calor de Motores Eléctricos Comunes 85 .Apéndice A4 (Cont.5.

1 Tabla de propiedades térmicas para materiales comunes de edificios y aislantes 86 .Apéndice A5 Tabla A5.

2 Conductancia y Resistencias del Aire en Superficies 87 .) Tabla A5.Apéndice A5 (Cont.

Datos Climáticos de las Ciudades más importantes de Venezuela 88 .1.Apéndice A6 Tabla A6.

Ventana de Datos Generales 89 . Imágenes de una corrida del programa Figura B1.Apéndice B. Ventana de Inicio del programa Figura B2.

Ventana de Condiciones Exteriores Figura B4.Figura B3. Ventana de Condiciones de las UMAs 90 .

Ventana de Condiciones de Ambientes Figura B6.Figura B5. Ventana de Cargas de Personas 91 .

Ventana de Resultados Figura B8. Esquema de Funcionamiento del Programa (1 de 2) 92 .Figura B7.

Figura B9. Esquema del procedimiento de cálculo del programa 93 . Esquema de Funcionamiento del Programa (2 de 2) Figura B10.

ini.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.nombuma u=u+1 End If Loop n_uma = u Close #1 'DETERMINACIÓN DE CANTIDAD Y NOMBRE DE OFICINAS i=0 k=0 Open App. 23) As Long Dim Qluces(0. SensibleUMA(12.text" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. .Path & "/Datos/Oficinas. 100). nOfi As Integer Dim Tabs As Integer i=0 k=0 u=0 Open App. 24) As Long Dim Qequipos(0. 24) As Long Dim CargaTotalUE(12. 24).TVar. QLaparatos(0. 24). 24) As Long Dim Qpersonas(0.TVar. 24). LatenteUE(12. 24). .Path & "/Datos/UMAs. shg. datos 'i = i + 1 If UCase(Left(datos. QCluces(0. SensibleUE(12. 24) As Long Dim QSpersonas(0. QSCpersonas(0. 24. 100) As Long Dim TotalSensible(11. l. 24. 24) As Long Dim TotalUMA(12. QSRpersonas(0. 1)) = "U" Then Uma(u) = datos. 24) As Long Dim QRluces(0. m. 1)) = "O" Then Ofi(k) = datos. 23) As Long Dim n_ofi As Long Dim Ofi(1000) As String Dim Uma(100) As String Dim result As Resulta2 Private Sub Form_Load() 'MkDir App. 23) As Long Dim Qpared(11. TotalLatente(11. 24). n.Apéndice C Resultados. dur. 24) As Long Dim QLpersonas(0.nombamb k=k+1 End If Loop 94 . cantp. 23) As Long Dim Qvidrio(11. 24) As Long Dim Qaparatos(0. Códigos de Procedimiento: 'Dimensionamiento de Matrices para el cálculo de cargas Dim i As Integer Dim Qtecho(11. 100). 23). fin As Double Dim k. 24. datos i=i+1 If UCase(Left(datos. 24). QSaparatos(0. LatenteUMA(12.Path & "/¿Nombre de proyecto?" 'Cálculo de Cargas de personas Dim datos As techo Dim lhg. 24).

13)) = "PERSONAS " Then lhg = Trim(datos. j) = QSRpersonas(0.1)) = datos. j) = lhg * cantp + QLpersonas(0.n_ofi = k Close #1 'DETERMINACIÓN DE CANTIDAD Y NOMBRE DE OFICINAS^^ 'CALCULO DE LAS CARGAS POR Oficinas>> i=0 m=0 n=0 l=0 For nOfi = 1 To n_ofi For A = 1 To 24 QSpersonas(0. j) = QSRpersonas(0.6 * 0. j) QSRpersonas(0. A) = 0 QRluces(0. j) QSCpersonas(0. A) = 0 Qluces(0. A) = 0 QCluces(0.33 + QSRpersonas(0.Inicio) 'Personas dur = Trim(datos.duracion) 'Personas cantp = Trim(datos.33 + QSRpersonas(0. j) = 0 + QSpersonas(0. j) + 0. j) = 0 + QLpersonas(0. j) + 0. j) QLpersonas(0. A) = 0 QLaparatos(0. j) QLpersonas(0. j) = 0 + QLpersonas(0.33 * shg * cantp If j = ini + 1 Then QSRpersonas(0.Ofcorr Then 'Revisar que pasa aqui con el id del dato If UCase(Left(datos. .tcarga. j) = QSRpersonas(0. j) m=m+1 End If If j >= ini + 4 And j <= fin Then QSRpersonas(0. j) = 0 + QSCpersonas(0. A) = 0 QSCpersonas(0. j) 'QSRpersonas(0. j) = shg * cantp * 0. j) QSCpersonas(0. j) + 0.1 'Personas fin = ini + dur For j = 1 To 24 If j < ini Then QSpersonas(0.8 * 0. j) l=l+1 End If If j = ini Then QSRpersonas(0. A) = 0 Next A particion = 0: Tparticion = 0: Piso = 0: Tpiso = 0: TechoInt = 0: TTechoInt = 0 totalS = 0: totalL = 0: totalSc = 0: totalSr = 0 totalEq = 0 totalapara = 0: totallapara = 0: totalsapara = 0 totalluces = 0: totalrluc = 0: totalcluc = 0 Open App. j) = QSRpersonas(0.33 * shg * cantp If j = ini + 3 Then QSRpersonas(0.33 * shg * cantp 95 .txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.lhg) 'Personas shg = Trim(datos. j) QLpersonas(0. A) = 0 QSRpersonas(0. datos i=i+1 If Ofi((nOfi .4 * 0.Path & "/Datos/Cargas. A) = 0 Qequipos(0.33 * shg * cantp If j = ini + 2 Then QSRpersonas(0. j) = shg * cantp * 0. j) + 0.shg) 'Personas ini = Trim(datos. j) = 0 + QSRpersonas(0. j) QSRpersonas(0. j) = shg * cantp + QSpersonas(0. j) End If If j > fin Then QSpersonas(0. j) = 0 + QSRpersonas(0. j) QSCpersonas(0. A) = 0 Qaparatos(0. A) = 0 QLpersonas(0.cantpersonas) 'Personas ini = ini * 1 'Personas dur = dur * 1 . j) = 0 + QSCpersonas(0.2 * 0. j) = shg * cantp * 0.67 + QSCpersonas(0. j) n=n+1 End If If j >= ini And j <= fin Then QSpersonas(0. j) = 0 + QSpersonas(0. A) = 0 QSaparatos(0.

tcarga. j) totalS = totalS + QSpersonas(0. j) + (poten * (Facuso / 100) * Facbal * 0. j) = 0.6 * 0. j) QCluces(0.33 * shg * cantp + QSRpersonas(0. 13)) = "LUCES " Then Facuso = Trim(datos. j) = QCluces(0. j) + (poten * (Facuso / 100) * Facbal * 0. j) QCluces(0. j) = QCluces(0. j) = qequi * uso * Canteq + Qequipos(0. j) = 0 + QCluces(0.tipoluces) 'Luces ini = ini * 1 dur = dur * 1 . j) n=n+1 End If If j >= ini And j <= fin Then Qequipos(0. j) = 0.Inicio) 'Luces dur = Trim(datos. j) totalSc = totalSc + QSCpersonas(0.IgEquipos) 'Equipos uso = Trim(datos. j) 96 .tcarga. j) totalSr = totalSr + QSRpersonas(0.coefdis) 'Luces ini = Trim(datos. j) q=q+1 End If If j >= ini And j <= fin Then If kind = "Fluorescente" Then QRluces(0.33 * shg * cantp + QSRpersonas(0.uso) 'Equipos ini = ini * 1 'Equipos dur = dur * 1 .If j = fin Then QSRpersonas(0. j) + (poten * (Facuso / 100) * Facbal * 0. j) = 0.33 * shg * cantp + QSRpersonas(0.2 * 0.8 * 0.5) m=m+1 Else QRluces(0.1 'Equipos fin = ini + dur qequi = qequi * 1 For j = 1 To 24 If j < ini Then Qequipos(0.Potluces) 'Luces Facbal = Trim(datos.Inicio) 'Equipos dur = Trim(datos. j) = 0 + QRluces(0.duracion) 'Equipos Canteq = Trim(datos. j) Next j End If If UCase(Left(datos. j) = QRluces(0.5) QCluces(0. j) = 0 + QCluces(0. j) If j = fin + 1 Then QSRpersonas(0. j) = 0 + Qequipos(0. j) + (poten * (Facuso / 100) * Facbal * 0. j) If j = fin + 2 Then QSRpersonas(0.8) QCluces(0.2) l=l+1 End If End If If j > fin Then QRluces(0.uso) 'Luces poten = Trim(datos. j) l=l+1 End If totalEq = totalEq + Qequipos(0.33 * shg * cantp + QSRpersonas(0. j) = QRluces(0. j) m=m+1 End If If j > fin Then Qequipos(0. j) = 0 + QRluces(0.Tcolocacion) 'Equipos ini = Trim(datos.duracion) 'Luces kind = Trim(datos.1 fin = ini + dur q=0 m=0 l=0 n=0 For j = 1 To 24 If j < ini Then QRluces(0. j) Next j End If If UCase(Left(datos. j) If j = fin + 3 Then QSRpersonas(0. j) = 0. j) = 0 + Qequipos(0.4 * 0. j) totalL = totalL + QLpersonas(0. 13)) = "EQUIPOTENCIA " Then qequi = Trim(datos.

j) Next j totalluces = totalrluc + totalcluc End If If UCase(Left(datos.1 fin = ini + dur For j = 1 To 24 If j < ini Then QLaparatos(0. j) = 0 + QSaparatos(0.tcarga.tofi * 1) Tpiso = Piso * 24 End If If Nombre = "TECHO INTERNO" Then TechoInt = iguales * area * Ucoef * (tady * 1 . j) q=q+1 End If If j >= ini And j <= fin Then QSaparatos(0.Techo Interno Ucoef = Trim(datos. j) Qaparatos(0. j) l=l+1 End If End If If j > fin Then QLaparatos(0.Piso.Campana) 'Aparatos ini = Trim(datos.Techo Interno iguales = Trim(datos. 13)) = "PARTICION " Or UCase(Left(datos.n=n+1 End If totalrluc = totalrluc + QRluces(0.area) 'Particion. j) = 0 + QSaparatos(0. 13)) = "TECHO INTERNO" Or UCase(Left(datos.Inicio) 'Aparatos dur = Trim(datos. j) + QSaparatos(0. j) = QRluces(0. j) + QCluces(0. j) n=n+1 End If totallapara = totallapara + QLaparatos(0.lhg) 'Aparatos Ig = Trim(datos. j) + Latente * 1 m=m+1 Else QLaparatos(0.shg) 'Aparatos Latente = Trim(datos. j) Qluces(0.duracion) 'Aparatos ini = ini * 1 dur = dur * 1 .Ucoef) 'Particion. j) = 0 + QLaparatos(0.Piso.Piso. 13)) = "APARATOS " Then sensible = Trim(datos. j) = QLaparatos(0.tcarga.Techo Interno tady = Trim(datos.tofi * 1) TTechoInt = TechoInt * 24 n=n+1 End If End If End If Loop 97 . j) = sensible * 1 + QSaparatos(0. 13)) = "PISO " Then Nombre = Trim(datos.Piso.TAdyacente) 'Particion.tcarga.Techo Interno area = Trim(datos.Tso) 'Particion.Techo Interno tofi = Trim(datos. j) QSaparatos(0.IgPart) If Nombre = "PARTICION" Then particion = iguales * area * Ucoef * (tady * 1 .tcarga. j) Next j totalapara = totallapara + totalsapara End If If UCase(Left(datos.tcarga) 'Particion. j) = 0 + QLaparatos(0. j) = QLaparatos(0.Piso.tofi * 1) Tparticion = particion * 24 q=q+1 End If If Nombre = "PISO" Then Piso = iguales * area * Ucoef * (tady * 1 . j) QSaparatos(0.Igaparatos) 'Aparatos Campana = Trim(datos. j) totalsapara = totalsapara + QSaparatos(0. j) = 0 + QLaparatos(0. j) totalcluc = totalcluc + QCluces(0. j) If Campana = "SIN" Then QLaparatos(0.

22) result. 24) result.Close #1 'CÁLCULO DE LAS CARGAS DE PERSONAS^^ 'Intento por hacer el archivo de resultados>> Dim n_carg As Long Dim nombrearchivo As String nombrearchivo = App.rst" For Random As #1 Len = Len(result) Put #1.t9 = QSpersonas(0. 18) result. 8) result. 19) result. 12) result.t15 = QSpersonas(0.t9 = QLpersonas(0.t6 = QSpersonas(0.tTotal = totalS result.t8 = QSpersonas(0.t8 = QLpersonas(0.1))) + ". 19) result. 17) result.t21 = QLpersonas(0. 7) result.rst" If ExisteArch(nombrearchivo) = True Then Kill App. n_carg. 15) result.t14 = QSpersonas(0. 2) result. 3) result.t21 = QSpersonas(0. 11) result. 17) result.t16 = QLpersonas(0.t4 = QLpersonas(0. 22) result.t20 = QLpersonas(0.t19 = QSpersonas(0.t7 = QLpersonas(0. 9) result.Nombre = "Latente Personas" result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 21) result.Nombre = "Sensible Personas" result. 7) result.t1 = QLpersonas(0. 15) result.t17 = QLpersonas(0. 4) result. 14) result.1))) + ".t23 = QSpersonas(0. 4) result.t19 = QLpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .Comp = "L" result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .rst") Open App. 2) result.t3 = QLpersonas(0. 1) result. 11) result. 16) result. 6) result. 1) result. result Close #1 n_carg = lenfile4(App. 10) result. 23) 98 .t15 = QLpersonas(0.t2 = QLpersonas(0. 13) result. n_carg. result Close #1 result. 9) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .id = 0 Open App.t23 = QLpersonas(0.t5 = QSpersonas(0.t16 = QSpersonas(0. 14) result.t18 = QLpersonas(0. 8) result. 16) result.t22 = QSpersonas(0. 12) result.t2 = QSpersonas(0.1))) + ".t13 = QSpersonas(0. 20) result.t12 = QSpersonas(0. 21) result.t18 = QSpersonas(0.t5 = QLpersonas(0.t24 = QSpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t22 = QLpersonas(0.rst" For Random As #1 Len = Len(result) Get #1. 13) result.t10 = QLpersonas(0.t6 = QLpersonas(0.t11 = QLpersonas(0.1))) + ".t12 = QLpersonas(0.t13 = QLpersonas(0. 10) result.1))) + ".rst") result. 18) result.t4 = QSpersonas(0.t17 = QSpersonas(0.Comp = "T" result. 20) result. 5) result.rst" n_carg = lenfile4(App.t11 = QSpersonas(0.1))) + ".salto = vbCrLf result. 6) result.t14 = QLpersonas(0.t3 = QSpersonas(0.t7 = QSpersonas(0. 23) result.t10 = QSpersonas(0. 5) result. 3) result.t20 = QSpersonas(0.t1 = QSpersonas(0.

8) result.rst") result. 21) result.t5 = QSRpersonas(0. 16) result. 15) result.t1 = QSCpersonas(0.t9 = QSCpersonas(0.t10 = QSCpersonas(0. 6) result.1))) + ".t23 = QSRpersonas(0.t12 = QSRpersonas(0.id + 1 99 . 9) result.tTotal = totalSr result. n_carg.t20 = QSRpersonas(0. 12) result.tTotal = totalL result. 21) result.t5 = QSCpersonas(0.Comp = "S" result.t4 = QSCpersonas(0.t20 = QSCpersonas(0. 18) result.t13 = QSCpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 24) result.rst" For Random As #1 Len = Len(result) Put #1. 23) result.t6 = QSRpersonas(0. 15) result.Nombre = "Sensible Radiación Personas" result.t18 = QSRpersonas(0.1))) + ".t15 = QSCpersonas(0.id = result.t22 = QSRpersonas(0.t16 = QSCpersonas(0.t4 = QSRpersonas(0.t2 = QSCpersonas(0. 13) result. 14) result. 9) result.salto = vbCrLf result. 16) result.Nombre = "Sensible Convectiva Personas" result.1))) + ". 19) result.rst") result.t3 = QSRpersonas(0.t14 = QSRpersonas(0. 24) result.t13 = QSRpersonas(0.t10 = QSRpersonas(0. 10) result. 3) result.t8 = QSRpersonas(0. 5) result. 3) result.t24 = QSCpersonas(0.t21 = QSRpersonas(0.salto = vbCrLf result.t24 = QSRpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .result. 17) result. 24) result.t19 = QSCpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t9 = QSRpersonas(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t22 = QSCpersonas(0.t21 = QSCpersonas(0.t18 = QSCpersonas(0.id + 1 Open App.t15 = QSRpersonas(0. 5) result.1))) + ".rst" For Random As #1 Len = Len(result) Put #1.t3 = QSCpersonas(0. 18) result. 22) result.t6 = QSCpersonas(0.t17 = QSCpersonas(0. 23) result.t19 = QSRpersonas(0.t7 = QSCpersonas(0.t14 = QSCpersonas(0. 11) result.id = result.t11 = QSCpersonas(0.t2 = QSRpersonas(0. 7) result. 2) result. result Close #1 n_carg = lenfile4(App.salto = vbCrLf result. 6) result.t16 = QSRpersonas(0. 11) result.t24 = QLpersonas(0. 13) result. 20) result. 1) result.t8 = QSCpersonas(0.t1 = QSRpersonas(0.tTotal = totalSc result. 8) result. 17) result.t12 = QSCpersonas(0. 22) result. result Close #1 n_carg = lenfile4(App.t23 = QSCpersonas(0.t7 = QSRpersonas(0. 4) result. n_carg. 2) result. 1) result. 12) result.id = result. 4) result.Comp = "S" result. 10) result.t11 = QSRpersonas(0.id + 1 Open App. 7) result. 20) result. 14) result. 19) result.t17 = QSRpersonas(0.

id + 1 Open App. 10) result.id = result. 22) result.rst" For Random As #1 Len = Len(result) Put #1.t23 = Qequipos(0.t4 = Qequipos(0. 6) result.t21 = QCluces(0.rst" For Random As #1 Len = Len(result) Put #1. 21) result.1))) + ".t5 = Qequipos(0.t1 = Qequipos(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .Comp = "S" result.1))) + ".t4 = QCluces(0.rst") 100 . 15) result. 16) result. 1) result.t2 = Qequipos(0. 8) result.id = result. 19) result.t3 = QCluces(0. 6) result. 20) result. 17) result.t18 = Qequipos(0.t12 = Qequipos(0.t21 = Qequipos(0.t2 = QCluces(0.t19 = Qequipos(0. 3) result.t5 = QCluces(0. result Close #1 n_carg = lenfile4(App.1))) + ". 5) result.t7 = Qequipos(0. 7) result.t18 = QCluces(0.1))) + ". 12) result. 1) result.t22 = QCluces(0. 5) result.t23 = QCluces(0.Nombre = "Equipos de Potencia" result. 21) result. 9) result.t13 = Qequipos(0.t17 = Qequipos(0.t20 = QCluces(0. 12) result. 9) result. 16) result.t8 = QCluces(0.t15 = QCluces(0. result Close #1 n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t8 = Qequipos(0.t12 = QCluces(0.t16 = Qequipos(0. 13) result.Open App. 24) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t11 = QCluces(0.t16 = QCluces(0.t10 = QCluces(0. 2) result.t7 = QCluces(0. result Close #1 n_carg = lenfile4(App. 4) result. 15) result.t15 = Qequipos(0.rst") result.t24 = QCluces(0.t22 = Qequipos(0. 18) result. 20) result.t13 = QCluces(0. 23) result.t1 = QCluces(0.t6 = Qequipos(0.1))) + ". 2) result.Comp = "S" result.id + 1 Open App. 24) result. 13) result. 7) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . n_carg. n_carg. 4) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t9 = Qequipos(0.t6 = QCluces(0.salto = vbCrLf result.tTotal = totalEq result.t9 = QCluces(0.salto = vbCrLf result.t14 = QCluces(0.t17 = QCluces(0.1))) + ". 10) result.t14 = Qequipos(0. 14) result. 18) result. 17) result. 11) result. n_carg. 8) result. 3) result.t3 = Qequipos(0.t10 = Qequipos(0.t24 = Qequipos(0.t20 = Qequipos(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 22) result.Nombre = "Luces Convectivas" result. 23) result. 19) result.t11 = Qequipos(0.rst" For Random As #1 Len = Len(result) Put #1. 14) result.rst") result.tTotal = totalcluc result.t19 = QCluces(0. 11) result.

rst") result.t14 = QRluces(0. 7) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 23) result.salto = vbCrLf result. 17) result. 19) result.salto = vbCrLf result.Comp = "T" result.t4 = QRluces(0.t12 = QRluces(0.t5 = QRluces(0.t10 = Qluces(0.t18 = Qluces(0. 1) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 19) result.t13 = QRluces(0. 12) result. 20) result. 23) result.t9 = Qluces(0. 20) result.t15 = Qluces(0. 11) result.t2 = Qluces(0. 4) result.t24 = QRluces(0.t1 = Qluces(0.Comp = "L" result. 8) result.t6 = QRluces(0. result Close #1 n_carg = lenfile4(App.id = result.t8 = Qluces(0.id + 1 Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .1))) + ".t17 = Qluces(0.rst" For Random As #1 Len = Len(result) Put #1. 13) result. 15) result.t16 = QRluces(0.1))) + ".rst" For Random As #1 Len = Len(result) Put #1. 2) result.t2 = QRluces(0.tTotal = totalrluc result.Nombre = "Aparatos-Latente" result.t22 = QRluces(0.t15 = QRluces(0. 8) result.t16 = Qluces(0. 10) result. 1) result. 22) result. 16) result. 22) result. 11) result.rst") result. 9) result.t11 = QRluces(0. 18) result.1))) + ".Nombre = "Luces-Radiación" result. n_carg.t19 = Qluces(0. 21) result. 10) result.t9 = QRluces(0. result Close #1 n_carg = lenfile4(App.t18 = QRluces(0.t20 = Qluces(0.t7 = Qluces(0.t23 = QRluces(0. 2) 101 .t1 = QLaparatos(0.t6 = Qluces(0.t10 = QRluces(0.t20 = QRluces(0. 18) result. 24) result.t3 = Qluces(0. 2) result.id + 1 Open App.t1 = QRluces(0.t24 = Qluces(0.t21 = Qluces(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 5) result.t5 = Qluces(0. 16) result. 12) result. n_carg.t8 = QRluces(0. 14) result.t3 = QRluces(0.t4 = Qluces(0.tTotal = totalluces result. 9) result.1))) + ". 17) result.t7 = QRluces(0.Nombre = "Luces" result. 6) result. 3) result.result.t12 = Qluces(0. 4) result.t23 = Qluces(0. 7) result.t17 = QRluces(0. 5) result.t22 = Qluces(0. 6) result. 1) result.t21 = QRluces(0. 13) result. 15) result.id = result.t2 = QLaparatos(0. 3) result.t13 = Qluces(0.t19 = QRluces(0.Comp = "S" result. 21) result. 24) result.t14 = Qluces(0. 14) result.t11 = Qluces(0.

6) result. 11) result.t13 = QSaparatos(0. 13) result. 15) result. 2) result.Nombre = "Aparatos-Sensible" result. result Close #1 n_carg = lenfile4(App.t8 = QSaparatos(0. 6) 102 . 21) result. n_carg.t1 = QSaparatos(0. 3) result.t21 = QLaparatos(0. 17) result.t20 = QLaparatos(0. 14) result. 21) result. 24) result. 4) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t4 = QSaparatos(0.t17 = QSaparatos(0.t6 = Qaparatos(0. 5) result.t4 = Qaparatos(0. 2) result.t4 = QLaparatos(0.t23 = QLaparatos(0.id = result.Comp = "T" result.t9 = QSaparatos(0.t19 = QLaparatos(0.t19 = QSaparatos(0.Comp = "S" result.t14 = QSaparatos(0. 11) result. 18) result. 7) result.id = result.t22 = QLaparatos(0.t14 = QLaparatos(0.t17 = QLaparatos(0.t11 = QLaparatos(0. 12) result.1))) + ". 10) result. 12) result.t16 = QLaparatos(0.id + 1 Open App.t11 = QSaparatos(0. 20) result.Nombre = "Aparatos-Total" result. 1) result.t5 = QLaparatos(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t9 = QLaparatos(0.t16 = QSaparatos(0. 17) result.t15 = QSaparatos(0.t10 = QSaparatos(0.t2 = Qaparatos(0. 22) result.t10 = QLaparatos(0.rst") result.t15 = QLaparatos(0. 8) result. 16) result.t12 = QLaparatos(0.t2 = QSaparatos(0. 14) result.rst") result. 23) result.id + 1 Open App. 22) result.t1 = Qaparatos(0. 6) result.t21 = QSaparatos(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 3) result. 4) result.t24 = QLaparatos(0. 1) result. 24) result.1))) + ". 10) result. 18) result.t3 = QSaparatos(0.t8 = QLaparatos(0.t23 = QSaparatos(0.t18 = QLaparatos(0. 9) result. 4) result.result.t20 = QSaparatos(0.salto = vbCrLf result. 19) result.t6 = QSaparatos(0.tTotal = totalsapara result.1))) + ".t7 = QSaparatos(0. 13) result.t3 = QLaparatos(0.1))) + ".t5 = Qaparatos(0.t6 = QLaparatos(0.t12 = QSaparatos(0. 9) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t3 = Qaparatos(0.rst" For Random As #1 Len = Len(result) Put #1. 7) result. result Close #1 n_carg = lenfile4(App.t22 = QSaparatos(0.t7 = QLaparatos(0. 20) result.t18 = QSaparatos(0. n_carg.t24 = QSaparatos(0.t13 = QLaparatos(0. 3) result.tTotal = totallapara result. 23) result. 8) result. 15) result.salto = vbCrLf result.t5 = QSaparatos(0.rst" For Random As #1 Len = Len(result) Put #1. 19) result. 5) result. 16) result. 5) result.

t7 = Qaparatos(0.t18 = Qaparatos(0. 12) result.t17 = particion result.t16 = Qaparatos(0.t23 = Qaparatos(0.t11 = Qaparatos(0. 19) result.t8 = particion result. 20) result.t16 = particion result.t1 = Piso result.Comp = "S" result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t9 = Piso result.salto = vbCrLf result.t10 = Piso 103 . 7) result.t3 = particion result. 10) result.t17 = Qaparatos(0.t22 = particion result.t15 = particion result. 22) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . n_carg.salto = vbCrLf result.t20 = particion result.result.tTotal = totalapara result. 17) result.t3 = Piso result.t1 = particion result. result Close #1 n_carg = lenfile4(App.rst" For Random As #1 Len = Len(result) Put #1.t13 = Qaparatos(0.t21 = particion result. 8) result.t8 = Qaparatos(0.t2 = Piso result.1))) + ".rst" For Random As #1 Len = Len(result) Put #1.t15 = Qaparatos(0.t6 = particion result.t10 = particion result.t19 = Qaparatos(0.t12 = particion result.1))) + ".t19 = particion result.t23 = particion result.t7 = particion result.t7 = Piso result.t18 = particion result.Comp = "S" result.tTotal = Tparticion result.t4 = Piso result.t24 = Qaparatos(0.t10 = Qaparatos(0.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 23) result.Nombre = "Sensible-Partición" result.t14 = particion result. result Close #1 n_carg = lenfile4(App.id = result.t4 = particion result.t24 = particion result. 24) result.t8 = Piso result.rst") result.t20 = Qaparatos(0. 18) result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t22 = Qaparatos(0. 11) result.t5 = Piso result. 14) result.id + 1 Open App.t11 = particion result.1))) + ".t13 = particion result.1))) + ".id = result.t6 = Piso result.t9 = Qaparatos(0.t14 = Qaparatos(0.t21 = Qaparatos(0.rst") result. 15) result. 21) result. n_carg. 9) result.id + 1 Open App. 13) result.t2 = particion result.t12 = Qaparatos(0. 16) result.t9 = particion result.t5 = particion result.Nombre = "Sensible-Piso" result.

n_carg.t15 = TechoInt result.t22 = TechoInt result.rst" For Random As #1 Len = Len(result) Put #1.t1 = TechoInt result.Clear Dim itmX As ListItem Dim Total As Double ListView1.ListItems.id = result.t13 = TechoInt result.rst") result.t18 = TechoInt result.tTotal = TTechoInt result.Comp = "S" result.t23 = Piso result.result.t14 = TechoInt result.t15 = Piso result.rst" For Random As #1 Len = Len(result) Put #1.tTotal = Tpiso result.t10 = TechoInt result.t17 = TechoInt result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . result Close #1 Next nOfi 'FIN DE "ARCHIVO DE RESULTADOS"^^ 'TabStrip2. 0) = "Ofic" & Trim(Ofi((Tabs .t8 = TechoInt result.Add(Tabs.t21 = Piso result. .1))) + ".t22 = Piso result.id = result.t7 = TechoInt result.t18 = Piso result.t14 = Piso result. 0) = Trim(Uma(tabs2 . .t13 = Piso result.Clear For Tabs = 1 To n_ofi TabStrip1.Add(tabs2.salto = vbCrLf result.Nombre = "Sensible-TechoInterno" result.t3 = TechoInt result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t23 = TechoInt result.Tabs. result Close #1 n_carg = lenfile4(App.Clear 'For tabs2 = 1 To numa ' TabStrip2.ColumnHeaders.t19 = TechoInt result.t6 = TechoInt result.id + 1 Open App.Clear 104 .t2 = TechoInt result.Tabs.t12 = TechoInt result.1))) + ".t17 = Piso result.t21 = TechoInt result.salto = vbCrLf result.t20 = Piso result.t19 = Piso result.t20 = TechoInt result.t12 = Piso result.t16 = Piso result.t24 = Piso result.t11 = Piso result.1)) TabStrip1.t16 = TechoInt result.1))) + ".t9 = TechoInt result.t11 = TechoInt result.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t24 = TechoInt result.t4 = TechoInt result.t5 = TechoInt result.1))) Next Tabs 'Next tabs2 ListView1.Tabs. n_carg. . .Tabs.id + 1 Open App.

2 ListView2.ColumnHeaders. 900. 900. 900. "05 00". "car". 0 ListView1.ColumnHeaders. "ID".ColumnHeaders.ColumnHeaders.ColumnHeaders.ColumnHeaders.Add . "cero". "di". "tiu". 2 ListView2. 2 ListView2. 900. "20 00". "08 00".ColumnHeaders.Add . 900. "q". 2 ListView1. "sie". 2 ListView1.ColumnHeaders.Add .Add . "tiu". 2 ListView1. "02 00". 2 ListView2. "oc".Add . "Carga".ColumnHeaders. "t". "09 00".Add .ColumnHeaders. "09 00". 2 ListView2.ColumnHeaders.ColumnHeaders. 2 ListView1. 2 ListView2. "t". "TOTAL 24h". 900. "ID". 2 ListView1.Add . "01 00". "03 00". 100 ListView2.ColumnHeaders.ListItems. "sie". "22 00". 900. 2 ListView1. 2 ListView2.ColumnHeaders. 2 ListView1. "si".Add . "TOTAL 24h".Add . 2 ListView2. "nue". 900. 900. "17 00".ColumnHeaders.Add . "ca".Add .ColumnHeaders. 900. 2 ListView3. "d". "n". "". "18 00". 2 ListView2. 900.Add . 2 ListView1.ColumnHeaders. "tit". 900.ColumnHeaders. 900. 900. 900.Add . "07 00". "car".ColumnHeaders. "02 00". 900. 900. 900. "02 00". "PK". "16 00". "17 00". 900.ColumnHeaders. "tr". "14 00". "tid".Add .ColumnHeaders.ColumnHeaders. "ID". 900.ColumnHeaders. "ci". "c". "PK". "". "nue". 2000. 2 ListView1. "tot". 2 ListView3. "15 00".ColumnHeaders. "12 00". 2 ListView1. "16 00".Add .ColumnHeaders. 900. 2 ListView1. "o". "15 00". 900. 2 ListView2.Add .Add .Add . "u".Add .ListView1. 900. "o".ColumnHeaders. 2 ListView1.ColumnHeaders.Add . "die". 900. "tot". 2 ListView1. 900.ColumnHeaders. 2 ListView2.ColumnHeaders. 900. "18 00".ColumnHeaders.ColumnHeaders.Add . "04 00".ColumnHeaders. 900. "v". 2 ListView1.Add . "on". 100 ListView3.ColumnHeaders. 1300.Clear ListView3.Add .Add . "t". "Carga".ColumnHeaders.Add . "ca".ColumnHeaders.ColumnHeaders.Add . "23 00". 2 ListView1. "PK".Add . "19 00". 900.Add . 900.ColumnHeaders. "si". 2 105 . "d". 2 ListView2. 2 ListView1.ColumnHeaders.ColumnHeaders. 2 ListView2. 900.Add .ListItems. 2 ListView1. 2 ListView1.Add . 2 ListView2.Add .ColumnHeaders. 2 ListView2. "s". 2 ListView2. "q".Add .ColumnHeaders. "01 00".ColumnHeaders. 900. 2 ListView1.Add . 900. "07 00".ColumnHeaders. 900.Add .ColumnHeaders. "v". 900. "p".Add .Add . 900.Add .Add . "Carga".Add .Clear ListView2. "20 00". "do". "21 00". "24 00". 2000. "c".Add .Add . "12 00". "04 00". "13 00". 2 ListView3. 900.ColumnHeaders. "ID". 0 ListView3. "do". 2 ListView1.ColumnHeaders.ColumnHeaders. 900.Add . "p". "23 00".ColumnHeaders.Add . "ID". 900. 0 ListView2. 2 ListView3.ColumnHeaders. "tr". 900. "11 00".Add .ColumnHeaders. 2 ListView1. "01 00". 2 ListView2.Add . 1300.ColumnHeaders.ColumnHeaders.ColumnHeaders. 2 ListView1. "08 00".Add . "s".ColumnHeaders.Add .Add .Add .ColumnHeaders. 2 ListView2.ColumnHeaders. "u".ColumnHeaders. "tit". 900. 2 ListView1. "u". "04 00". 2 ListView2.ColumnHeaders.Add . 2 ListView1. "03 00". "PK".ColumnHeaders.Add . 900. 0 ListView2. "cero". "06 00". 2 ListView1. 2 ListView2. "24 00". 900.Add . "11 00". 2 ListView2.Add . "21 00". "10 00". "13 00". "19 00". 2 ListView2. "on".Clear ListView2. "PK". "di".Add . 2 ListView1. "n".Add . "oc".Add .ColumnHeaders.ColumnHeaders. 900. "05 00". "ID". "10 00".Add . "c". "14 00". "PK". 2 ListView2.ColumnHeaders.Clear ListView3. 2000.Add . 900.Add .ColumnHeaders. 0 ListView1.ColumnHeaders. "car". 900. "22 00".Add . 2 ListView2.Add .Add . "06 00". 900. "die". "tid". "ci". "d". "03 00".ColumnHeaders. 2 ListView2. 900. 900. 900.Add .Add .Add . 0 ListView3. 2 ListView2. 900.ColumnHeaders. 900.ColumnHeaders. 900.

ColumnHeaders.SubItems(11) = Trim(result.ColumnHeaders. 2 ListView3.Add . 2 ListView3.SubItems(3) = Trim(result. 2 ListView3. "p". 2 ListView3. "07 00". 900.Add .ColumnHeaders. 2 ListView3.t11) itmX. "sie". "13 00".ColumnHeaders. "tiu". "die". result.t10) itmX.t14) itmX. "08 00". "10 00".SelectedItem Open App. "tid".SubItems(15) = Trim(result.SubItems(9) = Trim(result.ColumnHeaders.Add . "11 00".Nombre) itmX. 2 ListView3.SubItems(8) = Trim(result.SubItems(14) = Trim(result.Add .ColumnHeaders.Add .t15) 106 .ColumnHeaders. 2 ListView3.Add . 900. 2 ListView3.SubItems(2) = Trim(result. 900. "cero". "17 00".SubItems(1) = i . 900. "15 00".t13) itmX.rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.ColumnHeaders. 900. "23 00". 2 ListView3. "tot".Add .ColumnHeaders. "". . 900. 2 ListView3. result i=i+1 If UCase(Left(result. 2 ListView3. "on".SubItems(12) = Trim(result. 900. 900. 2 ListView3.Path & "/Resultados/" + Trim(Prueba) + ".SubItems(5) = Trim(result.t8) itmX.t1) itmX.ColumnHeaders.ColumnHeaders.ColumnHeaders.t3) itmX.Add .Add . "di".Add . "12 00".Add(1. "v".ColumnHeaders. 900. 900.Add .1 itmX.ColumnHeaders. 2 ListView3. "si". 2 ListView3.t2) itmX. "TOTAL 24h".ColumnHeaders.ColumnHeaders.Add .Add .t4) itmX. "24 00". "18 00". 2 ListView3.SubItems(7) = Trim(result. 900.SubItems(16) = Trim(result.ColumnHeaders. "oc".Add .ListItems.Add .Comp. 900. 100 Call TabStrip1_Click End Sub Private Sub Salida_Click() End End Sub Private Sub TabStrip1_Click() ListView1. 1)) = "S" Then Set itmX = ListView1. "14 00". 2 ListView3.Add .id) itmX.ColumnHeaders. "21 00". "n".ColumnHeaders.ColumnHeaders.SubItems(17) = Trim(result. 2 ListView3.SubItems(4) = Trim(result. 900. 900. "tr". 900.Add . "16 00". "22 00". "do".Add .t9) itmX. "20 00".Clear Dim result As Resulta2 Dim itmX As ListItem Dim itmx2 As ListItem Dim itmX3 As ListItem Dim Prueba As String i=0 Prueba = TabStrip1. "q". "o". "06 00". . 2 ListView3. "ci". 900.t7) itmX. 1300.t5) itmX. 2 ListView3.Clear ListView2. 900. 900. "nue". 2 ListView3.SubItems(6) = Trim(result.t6) itmX.Add . "09 00".Add .ColumnHeaders. 2 ListView3.SubItems(10) = Trim(result.Add .ListItems. "05 00". 900. "s".t12) itmX.ListItems. "ca".ListView3.Clear ListView3.SubItems(13) = Trim(result.ColumnHeaders. "19 00".Add .ListItems. 900. "tit".

1 itmX3.t23) itmX.SubItems(20) = Trim(result.SubItems(24) = Trim(result.t18) itmX.t3) itmx2.SubItems(1) = l .SubItems(25) = Trim(result.SubItems(5) = Trim(result.SubItems(2) = Trim(result.t2) itmx2.SubItems(7) = Trim(result.SubItems(15) = Trim(result.ListItems.SubItems(1) = k .t8) itmx2. .SubItems(21) = Trim(result.SubItems(25) = Trim(result.SubItems(9) = Trim(result.t24) itmx2.Nombre) itmx2.t17) itmX.SubItems(23) = Trim(result.SubItems(19) = Trim(result.SubItems(26) = Trim(result.Comp.t4) itmX3.t13) itmx2.t22) itmx2.t1) itmx2.t4) itmx2. result k=k+1 If UCase(Left(result.SubItems(19) = Trim(result. . .tTotal) Set itmx2 = Nothing End If Loop Close #1 l=0 Open App.t18) itmx2.SubItems(8) = Trim(result.SubItems(11) = Trim(result.ListItems.rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.t2) itmX3.t10) itmx2.t11) itmx2.id) itmX3.SubItems(27) = Trim(result.t16) itmX.t7) itmx2.tTotal) Set itmX = Nothing End If Loop Close #1 k=0 Open App.Add(1.SubItems(21) = Trim(result. 1)) = "T" Then Set itmX3 = ListView3.SubItems(22) = Trim(result.Path & "/Resultados/" + Trim(Prueba) + ".SubItems(4) = Trim(result.t16) itmx2.t17) itmx2.t15) itmx2.SubItems(18) = Trim(result.SubItems(13) = Trim(result.t6) itmx2.SubItems(3) = Trim(result.t9) 107 . result l=l+1 If UCase(Left(result. result.t21) itmx2.SubItems(6) = Trim(result.t20) itmx2.SubItems(17) = Trim(result.t21) itmX.t7) itmX3.t24) itmX.SubItems(8) = Trim(result.t14) itmx2.SubItems(10) = Trim(result.SubItems(26) = Trim(result.t19) itmx2.SubItems(10) = Trim(result.Comp.t6) itmX3.SubItems(18) = Trim(result.SubItems(2) = Trim(result.SubItems(20) = Trim(result.t8) itmX3.id) itmx2.SubItems(23) = Trim(result.t9) itmx2.SubItems(12) = Trim(result.itmX.t23) itmx2.t3) itmX3.SubItems(27) = Trim(result.t12) itmx2.t19) itmX.t20) itmX.t22) itmX.SubItems(3) = Trim(result. .SubItems(11) = Trim(result.SubItems(24) = Trim(result.SubItems(4) = Trim(result. 1)) = "L" Then Set itmx2 = ListView2.SubItems(9) = Trim(result.t5) itmX3.Path & "/Resultados/" + Trim(Prueba) + ".Nombre) itmX3. result.Add(1.rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.SubItems(22) = Trim(result.SubItems(14) = Trim(result.1 itmx2.t1) itmX3.SubItems(6) = Trim(result.SubItems(5) = Trim(result.SubItems(16) = Trim(result.t5) itmx2.SubItems(7) = Trim(result.

tTotal) Set itmX3 = Nothing End If Loop Close #1 End Sub Function ExisteArch(nombrearchivo As String) As Boolean On Error Resume Next ExisteArch = (Dir$(nombrearchivo) <> "") End Function 108 .SubItems(19) = Trim(result.SubItems(15) = Trim(result.SubItems(24) = Trim(result.SubItems(22) = Trim(result.SubItems(13) = Trim(result.t20) itmX3.SubItems(26) = Trim(result.t13) itmX3.SubItems(20) = Trim(result.t10) itmX3.SubItems(25) = Trim(result.SubItems(16) = Trim(result.SubItems(27) = Trim(result.t12) itmX3.t21) itmX3.SubItems(17) = Trim(result.SubItems(21) = Trim(result.SubItems(12) = Trim(result.t22) itmX3.t14) itmX3.SubItems(14) = Trim(result.t11) itmX3.t24) itmX3.itmX3.t18) itmX3.t23) itmX3.SubItems(23) = Trim(result.SubItems(18) = Trim(result.t19) itmX3.t17) itmX3.t15) itmX3.t16) itmX3.

Conceptos Básicos de Programación El trabajo de programar implica el uso de términos que pueden ser incomprensibles en la lectura de aquellos que no están familiarizados con la materia. Tiempo de diseño 109 . para comprender el porqué de su aplicación o desestimación al momento de realizar las rutinas de un programa de cálculo. Términos de programación A continuación se presentan diversos términos que se utilizan frecuentemente en el desarrollo del presente trabajo y que deben ser explicados. D.Apéndice D. Directorio Parentesco Es el directorio en el cual se localiza el programa en ejecución. Tiempo de ejecución Se denomina de este modo al momento en que un programa está en uso. será llamado en ese momento el usuario. La dirección en la cuál se ubica el ejecutable principal del programa.1. para tener una mejor comprensión del desarrollo del proyecto. También existen métodos que requieren del estudio teórico. es decir que se realizan las operaciones que fueron diseñadas por el programador y quien está operando en ese instante el software.

mas no dentro de la operación de éste.Se denomina a todo el período en que se accede al código del programa y se trabaja sobre el lenguaje del mismo. mas si por los programas. de trabajo o por conocimiento del mismo. Los archivos de datos por lo general no deben ser modificados por los usuarios. Usuario Es todo aquel que haga uso del programa con cualquier fin. tendrá un mayor o menor alcance dentro de los consumidores. por lo tanto no pueden ser buscados por coordenadas sino por diversos criterios de selección. Se llama lista por la capacidad de almacenar más de un dato dentro de si. El usuario es para quien se realiza el programa y. con la diferencia que sus elementos no poseen identificación de posición. Lista de datos Es un tipo de datos que posee una o más variables. ya sea de evaluación. Archivo de datos Es un espacio de memoria fija de la computadora que contiene una información de un tamaño específico y que debe ser identificable por un programa o un usuario. dependiendo de la complejidad del mismo. Se asemeja a un vector. Vectores 110 .

con hacer el llamado según la coordenada de posición de la misma. Se puede localizar una variable en un vector. que permite parametrizar por criterios la posición en que sean guardados los elementos que se ingresen. Base de datos Formato de almacenamiento de datos.Tipos de datos multivariables y multidimensionales. que permiten el almacenamiento de pequeños datos en posiciones específicas dentro de las dimensiones establecidas. archivos o programas. Son muy diversas y requieren de librerías y programas adicionales para su funcionamiento. Librerías Bases de datos de procedimientos que permiten la ejecución de instrucciones complejas de programas evitando que se dispersen las acciones de funcionamiento y se consuma más memoria de la necesaria. 111 .

Una vez que se finalice la sesión de uso. siempre serán los mismos que se establezcan en tiempo de diseño. Método por Lista de Datos El almacenamiento por lista de datos requiere de la definición de la cantidad y tipo de variables que se van a leer e insertar en el archivo de datos. No requiere de un manejo complejo de librerías. ya que los datos almacenados no son permanentes sino durante el uso del programa. ya que reserva el espacio físico de memoria que requiere por cada lista de datos que se necesite ingresar. el programa puede. Método por Vectores y Matrices Este método de almacenamiento de datos. Puede accederse a sus datos por criterios de identificación o por posición dentro del total de datos.2. no afecta los datos en ningún sentido.D. sin embargo. con lo cual se comprende el porqué de la elección de cada uno de ellos en las distintas etapas de ejecución de un programa. Se requiere que antes de ingresar un nuevo dato se establezca la ruta de ingreso del nuevo dato. pero no se pueden fijar datos que sean actualizables para cada sesión de trabajo. 112 . Una vez definidas estas características. para no sobrescribir alguno por error. en tiempo de ejecución leer y escribir sobre el archivo. las variables se renuevan. Se pueden tener datos fijos en este tipo de datos. En la lectura. Métodos de Almacenamiento de Datos Se explica en esta etapa varios de los métodos más comunes de almacenamiento de datos temporal y permanente. es de mucha utilidad para procesos de cálculo. pero en tiempo de ejecución.

que requiere de una licencia costosa y su manejo no resulta tan sencillo. Permite el manejo de muchas variables de distintos tipos. El método en que se almacenen los datos puede ser determinado en tiempo de ejecución si así lo desea el programador. requiere de la instalación de un servidor SQL Server. 113 . que permite el trabajo en varias etapas. Su desventaja es que requiere de librerías específicas para su funcionamiento. La velocidad de trabajo es rápida. almacenamiento o lectura. Método por Base de Datos Es un método de almacenamiento complejo y dinámico. que no requiere mucho uso de memoria de proceso y no requiere librerías o programas adicionales para su ejecución. En el caso específico de Visual Basic. y el consumo de memoria en procesos dependerá de la complejidad de los criterios en que almacene los datos.Es un método muy dinámico y veloz.

Ganancia de Calor a través de Áreas Ventanales La principal variable climática que influye en la carga de refrigeración de una edificación es la radiación solar. Conceptos de Cálculo de Ganancia de Calor E. E. E. da la misma tasa de intercambio de calor a las superficies como debería hacerlo la combinación de la radiación solar incidente.1.1. 114 .3.1. la energía de radiación del intercambio entre el cielo y los demás alrededores y el intercambio de calor por convección con el aire externo. E.1. en ausencia de todo cambio de radiación.1.Apéndice E. Difiere principalmente en que es una función de la masa y la naturaleza de la pared o techo de construcción. ya que estos elementos afectan la tasa de conducción de calor a través del ensamblaje compuesto hacia el interior de la superficie. El efecto de la radiación solar es más pronunciado y su impacto se hace inmediato en superficies no opacas expuestas.2. Temperatura Sol-Aire La Temperatura Sol-Aire es la temperatura externa que. Ganancia de Calor a través de Superficies Exteriores La ganancia de calor a través de superficies externas opacas deriva de los mismos elementos de la radiación solar y el gradiente térmico igual que en las áreas de ventanales.

W/(m2 K) To = temperatura externa del aire. El balance de calor en una superficie asoleada reporta un flujo de calor a la superficie q / A como: q / A = αI t + ho (To − Ts ) − ε∆R (19) dónde: α = absorbancia de la superficie a la radiación solar It = incidencia total de radiación solar a la superficie. la radiación emitida por los cuerpos negros a la temperatura del aire exterior. ºC ε = emitancia hemisférica de la superficie ∆R = diferencia entre la radiación incidente en la superficie desde el cielo y los alrededores y. ºC Ts = temperatura de superficie. W/m2 ho = coeficiente de transferencia de calor por radiación y por convección externa a la superficie. W/m2 Asumiendo que la tasa de transferencia de calor puede ser expresada en términos de la temperatura Sol-Aire Te q / A = ho (Te − Ts ) (20) y de las ecuaciones (19) y (20) se obtiene: Te = To + αI t / ho − ε∆R / ho (21) 115 .Flujo de calor a través de las superficies exteriores.

Para superficies horizontales que perciben el efecto de radiación desde el cielo únicamente. aún así. Sin embargo.9 ºC. es una práctica común asumir ∆R =0 para superficies verticales. Colores de Superficie. la radiación compensa las bajas emisiones extendidas del cielo. Las temperaturas sol-aire tabuladas (Tabla 4. se hace difícil determinar los valores de ∆R .Superficies Horizontales. Debido a que las superficies verticales perciben la reverberación del suelo y las demás edificaciones a su alrededor.052 representa el valor máximo usual para este parámetro (superficies muy oscuras o cualquier superficie cuyo brillo permanente no pueda ser determinado). Valores Tabulados de Temperatura.026 es apropiado para superficies de un color claro de superficie. el valor de 0. el valor de corrección del término por las ondas amplias es de -3. mientras que 0. pero no hace consideración de los reflejos de paredes adyacentes. Las Temperaturas Sol-Aire son dadas por dos valores de parámetros de α / ho . las superficies de los objetos en la tierra tienen una temperatura superior a la temperatura del aire externo.1) han sido calculados en base a ε∆R / ho siendo . Cuando la radiación solar es intensa. 116 . Superficies Verticales.9ºC para las superficies horizontales y 0ºC para las superficies verticales. Los valores de I t incluyen variaciones difusas de radiación del cielo despejado y el reflejo en el suelo.3. un valor apropiado de ∆R es 63 W/m2. así como también radiación solar directa. entonces si ε = 1 y ho = 17 W/(m2 K).

8 34.1 59.8 39.5 35.0 24.0 31.5 27.8 52.6 28.7 21 28.7 37.9 24.5 27.0 22.9 42.6 26. °C Superficies Claras.1 30.1 35.0 32.6 26.8 36.0 34.0 26.7 40.4 40.5 23.8 32.5 27.5 18 32.1 30.6 26. Temperaturas soleadas para Julio 21.5 54.1 24.4 24.0 32.0 24.7 36.9 36.5 34.6 31.Ciclo de la Temperatura del Aire.4 31.3 42.0 33.0 20.6 47.3 40.6 37.6 24.5 38.6 26.6 26.6 26.1 24.4 20.0 51.1 7 24.0 24.2 27.1 47.6 26.0 70.7 38.4 25.0 28.6 44.3 31.8 14 34.4 21.1 24.5 27.9 24.6 28.0 39.7 35.4 24.8 8 25.2 24.6 26.0 39.6 26.6 33.5 27.8 29.4 39.9 21.6 28.9 24.9 39. 29.6 28.0 32.8 29.0 34.3 24.1 61.5 35.4 24.5 31.5 27.6 26.9 24.7 16 34.1 12 32.7 36.5 58.3 31.8 11 30.8 41.8 29.5 27.6 39.1 50.6 28.1 20.3 54.0 37.7 38.7 39.8 28.9 16 34.0 25.5 27.2 33.8 29.5 2 24.9 21.7 31.0 36.6 33.0 54.026 N NE E SE S SO O NO HOR Temp.5 35.5 12 32.7 50.0 19 31.6 35.5 44.4 20.7 67.7 17 33.5 26.1 40.7 52.4 25.7 33.3 38.1 35.4 24.2 32.4 40.6 37.9 36.1 22.7 33.4 31.5 47.3 45.1 24.0 26.1 24.0 26.8 36.3 55.4 24. Aire Hora To.0 33.9 68.9 55.6 47.3 60.3 44.8 29.5 58.8 35.2 28.1 37.4 39.3 71.1 37. Las temperaturas sol-aire pueden ser ajustadas a cualquier otro ciclo de temperaturas simplemente añadiendo o sustrayendo la diferencia existente entre el valor deseado de temperatura del aire y el valor de temperatura dado en la columna 2 (Tabla E.9 24.0 26.8 50.0 34.7 47.4 24.1 24 26.6 13 33.4 24.1 41.8 37.8 30.0 43.5 34.7 33.2 29.4 21.9 10 28.0 20.5 4 24.9 6 24.9 40.7 24 26.1 44.7 71.6 28.7 51.3 47.6 62.9 24.5 34.0 26.4 24.1).1 24.1 25.0 26.2 30.9 66.0 50.3 38.7 37.9 43.3 31.1 24.7 39.7 34.7 35.6 28.6 22.8 36.4 24.8 25.0 31.4 25.6 14 34.1 24.7 39.5 27.8 29.6 22.6 37.6 28.9 24.5 43.0 28.2 40.0 26.1 39.6 28.7 37.7 30.3 49.8 36.1 24.9 24.8 29.8 29.0 26.1 24.0 24.7 47.4 41.3 31.2 24.0 24.9 24.4 24.7 41.8 29.5 1 25.0 26.7 33.9 20 29.8 29.6 35.0 52.5 62.2 9 27.3 62.3 31.8 37.0 22.3 50.1 24.7 22 27.1 20.6 37.5 38.9 55.4 25.0 43.7 39.1 24.0 37.2 34.1 24.8 29.4 40.4 46.0 37.9 21 28.6 44.5 27.5 38.8 31.6 28.2 44.2 31.6 33.4 8 25.0 35.8 29.3 49.8 29.1 24.7 15 35.6 28.0 26.5 20 29.1 24.0 35.1 25.8 31.6 26.0 37.0 30.6 37.6 28.5 29.5 3 24.2 52.0 40.0 39.6 22 27.9 28.1 30.5 27.8 54.3 32.6 38.2 45.2 28.0 26. 29.2 37.1 24.4 24.2 24.9 39.2 6 24.5 37.0 40.3 31.3 32.2 44.0 26.8 68.4 25.1 41.1 45.1 24.0 26.5 27.9 24.7 11 30.9 35.0 32.1 24.1 43.6 28.4 37.4 25.7 43.8 29. Aire Hora To.6 28.4 35.4 28.8 29.5 34.4 26.1 10 28.6 50.5 7 24.8 27.6 24.6 47.1 40.9 24.1).4 26.4 25. α/ho = 0.9 42.0 2 24.2 26.9 24.0 26.5 23.8 29.0 32.6 28.9 35. α/ho = 0.0 Prom.6 26.5 27.4 24.5 35.0 37.4 31.4 25.9 36.4 24.1 25.7 34.4 40.8 25.4 24.4 24.4 25.9 24.6 61.5 35.0 24.0 26.9 43.5 27.0 26. Tabla E.7 46.6 26.4 24.7 46.2 53.5 31.7 27.0 26.ε∆R/ho Temp.4 24.0 15 35.9 24.0 37.6 23 26.3 31.4 25.4 25. El ciclo de la temperatura del aire utilizado para el cálculo de las temperaturas solaire está dado en la columna 2 (Tabla E.7 43.0 26.4 26.4 25.3 31.5 35.6 28.5 29.0 3 24.8 37.6 26.5 27.8 29.052 N NE E SE S SO O NO HOR 1 25.2 17 33.2 5 24.0 Fuente: ASHRAE Fundamentals 1997 117 .0 32.4 45.1 38.2 34.8 25.9 38.2 4 24.9 24.1 40.0 28.8 58.7 34.1 5 24.8 29.5 50.4 19 31.0 33.8 39.9 39.5 27.8 9 27. 40° N de Latitud Te = To + αIt /ho .4 25.4 25.1 24.°C Superficies Oscuras.1 41.0 35.4 25.8 29.1 37.6 26.0 24.4 18 32.0 26.6 28.3 31.6 26.1.0 28.7 23 26.9 24.5 27.3 31.0 24.4 25.1 Prom.4 31.8 13 33.9 60.9 37.

118 . El calor que es liberado a la atmósfera es la suma del calor reflejado q R y el calor que sale por efectos de radiación y convección qRCo . respectivamente. tal y como se muestra en la figura (Figura 4. en W/m2. En cualquier instante el balance de calor entre una superficie de ventana exterior y su entorno térmico ambiental. qs es relativamente pequeño en magnitud. El promedio diario de temperatura sol-aire Tea puede ser calculado para cualquier situación como Tea = Toa + α ⎛ I DT ⎞ ε∆R ⎜ ⎟− ho ⎝ 24 ⎠ ho (22) donde I DT es la suma del total de coeficientes de ganancia de calor solar para el mes y orientación requeridos. Los términos qRCo y qRCi son las tasas de flujo de calor externo e interno respectivamente por fenómenos de radiación y convección.Temperatura Soleada Promedio.2) es Et + U (To − Ti ) = q R + q s + qT + q RCo + q RCi (23) donde q R . por lo cual se considera despreciable. En general. qs y qT representan al calor reflejado. almacenado en el vidrio y transmitido.

El total de ganancia de calor a través de material cristalino se puede expresar como: Calor total Radiación admitido a = través del vidrio transmitida a Flujo de calor que se + inserta desde la propia través del vidrio superficie del vidrio q A = EDτD + Edτd + qRCi (24) El subíndice D denota radiación directa. Balance de Calor en un instante para material cristalino expuesto al sol. Flujo de calor de afuera + hacia adentro por diferencia de temperatura 119 . La siguiente ecuación considera la energía solar como un valor total para simplificar. y τ indica radiación transmitida. Las propiedades de radiación difusa puede hacerse considerando un caso de radiación directa donde θ=60°.Figura E. d denota radiación difusa. Calor total admitido a través del vidrio Radiación = transmitida a través del vidrio Flujo absorbido + de radiación solar que incide.1.

W/m2 CGCS = coeficiente de ganancia de calor solar Para un cristal simple. mientras que el tercero ocurre en presencia o no del sol. la transmitancia a través de ambos vidrios puede ser calculada por τ = (τ oτ i ) (26) (1 − ρ 2 ρ3 ) Los primeros dos términos de la ecuación (25) están relacionados a la radiación solar incidente.Con lo cual la ecuación (24) puede ser escrita como: q A = Etτ + N i (αEt ) + U (to − ti ) (25) En los casos de doble cristal. Combinando las ecuaciones (25) y (26) se obtiene q A = Et τ + N jo (αEo ) + N i (αEo ) + U (to − ti ) Calor total admitido a través del vidrio Ganancia de = Calor Solar + (27) Ganancia de calor por conducción Estas pueden ser escritas como q A = CGCS ⋅ Et + U (t o − t i ) (28) donde qA = transmisión instantánea de calor admitida a través de los ventanales. la fracción de radiación absorbida Ni puede ser aproximada con la ecuación N i ≈ U / ho (29) 120 .

La tasa de transferencia de calor está dada por q = UA(Tb − Ti ) (30) donde q = calor transferido. E. hacen requerir de un cálculo separado de las partes sombreadas y las no sombreadas de las ventanas a cada hora. así como métodos en que se considera inicialmente la carga como si no existiese la sombra y luego ajusta el resultado tomando en cuenta el efecto del sombreado.1. Para estimar la conducción de calor a través de los ventanales en cualquier momento. sombreadas y no sombreadas. Las áreas. son aplicables los valores de temperaturas externas e internas de bulbo seco. Ganancia de Calor a Través de las Superficies Siempre que un espacio acondicionado se encuentra adyacente a otro con una temperatura distinta. Consideraciones de Temperatura. la transferencia de calor a través de la separación física entre ellos debe de considerarse.4. W/(m2 K) 121 . W U = coeficiente global de transferencia de calor entre el espacio adyacente y el espacio acondicionado. dependen de la localización de la línea de sombra en el plano del vidrio.donde U es el factor de resistencia térmica del cristal y ho es el coeficiente de película externo. Los sombreados no uniformes causados por los voladizos de los techos. aplicando un “factor de carga negativo” que corrige la imprecisión. Se han elaborado métodos aproximados para hacer las consideraciones del movimiento de la línea de sombra en función de la hora. extensiones laterales o proyecciones de los edificios. Sombreado Externo.

En algunos casos. puede estar como mucho entre 8 y 28K sobre la temperatura externa del aire. La temperatura tb puede alejarse mucho del rango de la temperatura del espacio acondicionado.5. la temperatura del aire en el espacio adyacente corresponde a la temperatura externa del aire o superior. E. puede ser significativo en la carga. En muchas ocasiones.8K menos que la temperatura de bulbo seco del espacio acondicionado.A = Área superficial de la separación. Donde no se conoce nada. La temperatura en una cocina o sala de calderas. m2 Tb = promedio de la temperatura en el espacio adyacente. no contiene fuentes de calor y no recibe directamente una ganancia significativa de calor del sol. 122 . estas medidas de calor sensible y latente constituyen una parte significativa de la carga total.Ti . puede ser considerada la diferencia entre la temperatura externa del aire y 2. por ejemplo. excepto que el espacio adyacente es de construcción convencional. ºC Ti = temperatura en el espacio acondicionado. Incluso en los casos de corta estancia. el aporte significativo de calor y humedad de las personas. ºC Los valores de U pueden ser obtenidos según los principios básicos de transferencia de calor por conducción. Fuentes de Calor en los Espacios Refrigerados Personas La Tabla de Tasas de Ganancia de Calor de los Ocupantes (Tabla 4. La temperatura actual de los espacios adyacentes debería ser medida siempre que sea posible.1. Tb . al realizar diferentes actividades.2) muestra algunas de las medidas de calor y humedad que aporta una persona al ambiente en que se encuentra.

123 . hoteles. Ganancias de Calor de los ocupantes de un espacio refrigerado Calor Total. La porción restante de calor emitido por las luces. W Adulto Hombre Tipo de actividad Ajustado. Esta absorción de energía influye en la carga de enfriamiento del espacio después de un lapso de tiempo. Ejercicios Gimnasio 585 525 210 Alta V 60 27 58 38 49 35 54 19 315 Fuente: ASHRAE Fundamentals 1997 La conversión de ganancia de calor sensible de las personas a carga de enfriamiento del espacio se ve afectada por las características del espacio. hoteles. una vez que ésta es absorbida y liberada por las paredes. estar de pie Farmacia. La ganancia de calor latente se considera instantánea.2. El cálculo de este componente de carga no se hace de modo directo. trabajo ligero Oficinas. se obtiene por efectos de radiación. caminando. matinée 115 95 65 30 Sentado en un teatro. apartamento 140 130 75 55 Trabajo ligero. noche 115 105 70 35 Sentado. en tal sentido se hace subjetiva la aplicación de una apropiada función de transferencia de la habitación. Sólo parte de la energía de las luces se obtiene a través del calor de convección. cargar Fabrica 470 470 185 285 Atletismo. W Calor Latente.Tabla E. Iluminación Debido a que la iluminación es en la mayoría de los casos el componente de carga más significativo. noche Teatro. suelos y mobiliario de la habitación. Banco 160 145 75 70 Trabajo sedentario Restaurante 145 160 80 80 Trabajo ligero en bancas Fábrica 235 220 80 140 Baile moderado Salón de danza 265 250 90 160 Fabrica 295 295 110 185 Caminar 4 8Km/h trabajo con Bowling % Calor Sensible que se Irradia Cancha de Bowling 440 425 170 255 Trabajo pesado Fabrica 440 425 170 255 Trabajo con maquinaria pesada. de pie Tienda por departamentos 160 130 75 55 Caminar. la tasa de calor en un momento dado puede ser un poco distinta del calor equivalente a la potencia suministrada instantáneamente a las luces en cuestión. apartamentos 130 115 70 45 Trabajo de oficina de actividad moderada Oficinas. se hace necesario imponer un estimado preciso para obtener la ganancia de calor de las mismas. W Bajo V Sentado en un teatro Teatro. el cual retira a cada instante el sistema de aire acondicionado del espacio. H/M Calor Sensible.

124 . que es aún más baja que la ganancia instantánea generada e incluso en el momento de pico de carga. Ganancia de calor Instantánea debido a la Iluminación. Siempre existe un retraso entre el tiempo en que se encienden las luces y el momento en que la energía irradiada por la luz equipara a la energía que se acumula instantáneamente. W W = potencia total de las luces Ful = factor de uso Fsa = factor de balasto La potencia total de las luces se obtiene de sumar la capacidad de todos los bombillos que se utilicen en el área acondicionada. La fuente principal de calor de las luces proviene de los elementos que emiten la luz o bombillo. para la cual se estiman las condiciones de carga de refrigeración. ya que desde el momento en que es percibida por el espacio. sin embargo. Este retraso debe ser considerado cuando se realizan los cálculos de carga de refrigeración. afecta significativamente la carga del espacio. una fuente significante de calor puede ser generada en diversos accesorios en los arreglos de luces o lámparas. El factor de uso de las luces es la fracción de la capacidad instalada de luces que está en uso.quedando aún presente una fracción de esta energía irradiándose incluso después de apagar las luces. Generalmente la ganancia de calor de la iluminación eléctrica se calcula de la forma: qel = WFul Fsa (31) donde qel = ganancia de calor.

con lámparas de sodio. la temperatura diferencial entre el espacio refrigerado y el espacio encerrado entre el cielo raso y el techo. Temperatura del Plénum. pero para la mayoría de las aplicaciones se recomienda el uso de un factor de 1. En los casos de las lámparas ventiladas.El factor de balasto se aplica en el caso que las luces sean fluorescentes y arreglos de luces.18 y 1. dependiendo del fabricante. o este espacio cerrado puede ser usado como espacio para el retorno del aire. 125 .20.5 °K por encima de la temperatura del espacio refrigerado. se debe determinar la fracción que se espera que sea percibida directamente por el área acondicionada directamente. La mayoría de las temperaturas en los plénum no sobrepasan más allá de 0.19 para lámparas sencillas de 32W. Para lámparas de encendido rápido de 40W el factor varia entre 1.30 de acuerdo a si son dos o una las lámparas que están en uso. se convierte en un componente que aporta calor en el área a refrigerar. Así como el calor de las luces es recibido por el aire de retorno. Para algunas instalaciones industriales. se pueden considerar valores que oscilan entre 1. generando así gradiente térmico que permite la transferencia de calor entre la superficie del plénum que a su vez reduce en un porcentaje significativo la carga de refrigeración en el espacio.04 y 1. En las instalaciones de luces fluorescentes.37. por lo cual deben ser evaluados individualmente.5 a 1. que estén ventilados o instalados de un modo en el cual no todo el calor que producen es percibido en el área acondicionada. causando que la distribución del calor de las luces pueda ser manejada de distintas maneras. el factor de las pérdidas en el balasto se considera como un factor máximo de 2. El aire de retorno puede ser conducido a través de ductos para capturar el calor de las luces sin que tenga que producirse a través del plénum como tal.

por lo tanto para efectos de cálculo se consideran todos los efectos de transferencia de calor como convectivos. Balance de Calor de un Retorno por Plénum 126 . En los edificios con placas intermedias. b) se transfiere parcialmente de vuelta al espacio refrigerado a través de las láminas del cielo raso y c) puede perderse parcialmente a través de las superficies superiores. utilizando signos de convención de acuerdo a los utilizados en la representación del Balance de Calor de un Retorno por Plénum (Figura E.Balance Energético. ocurre un intercambio de energía que requiere que el calor que sea recibido de las luces en el aire de retorno a) se convierta en parte de la carga de refrigeración del aire de retorno (representada por la temperatura a la que alcanza el aire de retorno mientras atraviesa el espacio encerrado). los espacios refrigerados frecuentemente tienen ganancia de calor a través del suelo.2) muestra un diagrama esquemático de cómo es un plénum de aire de retorno.2. considerando las perdidas mencionadas.2). que suelen ser suelos de niveles superiores. El componente de calor por radiación que se desprende de las superficies de este plénum es por lo general despreciable. La figura (Figura E. representan el balance de energía de diseño de un plénum de aire de retorno para el interior de un edificio de placas intermedias. de forma similar a si tuvieran un plénum inferior. Las ecuaciones de la (32) a la (36). Figura E. En los locales donde sea utilizado el espacio sobre el cielo raso como plénum para el aire de retorno.

W q2 = pérdida de calor desde el plénum hacia el piso superior. q f y/o qw . W q3 = ganancia de calor recogida por el aire de retorno. °C Ts = temperatura de suministro del aire °C 127 . W qw = ganancia de calor de las paredes externas. W qr = carga de refrigeración del espacio.q1 = U c Ac (T p − Tr ) (32) q 2 = U f A f (T p − T fa ) (33) q3 = 1. W qf = ganancia de calor desde el plénum inferior. °C T fa = temperatura del nivel superior. W Q = flujo del aire de retorno. L/s qlp = ganancia de calor de las luces hacia el plénum. que incluye el manejo adecuado de las variables qlr .23Q(T p − Tr ) (34) qlp − q 2 − q1 − q3 = 0 (35) Q= q r + q1 1.23(Tr − Ts ) (36) dónde q1 = ganancia de calor del espacio a través del plénum. W Tp = temperatura en el plénum. W qlr = ganancia de calor de las luces hacia el espacio. °C Tr = temperatura del área refrigerada.

como en los submarinos o en otras áreas restringidas. se puede consultar la tabla completa de los flujos recomendados en la mencionada norma para los distintos tipos de espacios acondicionados. por lo general se introduce al sistema de modo directo del ambiente. El aire de recirculación debe ser tratado para controlar los olores. se han desarrollado aplicaciones de recirculación y filtrado del aire interno. se recomienda según normas que sean entre 6 a 8 por hora. siempre y cuando se garantice que el aire de recirculación está descontaminado de un modo apropiado. Según la norma estándar 62 de ASHRAE se recomienda una frecuencia de ventilación mínima para distintas aplicaciones comunes. una cantidad de 0.6. Como uso general. se recomienda un flujo de 10 L/s por persona. (Ver Apéndice A2) El aire de ventilación. Ganancias de Calor por Infiltración y Ventilación Ventilación El aire externo debe ser introducido por ventilación a los espacios acondicionados. Esto introduce un factor de ganancia de calor adicional. De igual forma. necesitando preenfriar el aire por intercambiadores. que a pesar de ser pequeño es influyente.E. que viene siendo la cantidad de veces que en promedio se ha llenado la habitación con aire nuevo.5 L/s de aire del exterior por persona es suficiente. así como en oficinas. Para reducir las ganancias de calor externas del aire de ventilación.1. combinándolo con aire externo. 128 . Aquellos lugares donde se quiere lograr un máximo de economía en espacio y carga de refrigeración. (Ver Apéndice A1) Los cambios de aire.

ya que el viento no actuará sobre todos los costados de modo simultáneo. con la excepción que a) las temperaturas exteriores al espacio acondicionado son menores que las mantenidas en el espacio.Infiltración La infiltración de aire. Cuando la cantidad de aire que se introduce al sistema a través del sistema de aire acondicionado no es suficiente para mantener la presión que elimine las infiltraciones. Principios de las Cargas de Calefacción Las técnicas para estimar la carga de calor de diseño para usos comercial.7. la totalidad de la carga de infiltración debe ser considerada como ganancia de calor del espacio en los cálculos. y c) la acumulación térmica de las estructuras de los edificios no se considera. institucional e industrial es esencialmente la misma que aquellas para estimar las cargas de refrigeración para los mismos casos. E. a la consideración de las puertas y ventanas. para los efectos de cálculo.1. se limita. El conocimiento de la dirección y velocidad preferente del viento contribuye a una buena selección de cuáles paredes exteriores seleccionar. La presión que se mantenga debe superar la presión del viento a través de las ranuras de las ventanas y puertas. En cualquiera de los casos. con lo cual se eliminaría la porción de ganancia por infiltración. Para el cálculo de las infiltraciones por las ventanas en una estructura completa. b) no se incluyen las ganancias de calor por efecto de la incidencia solar ni por ganancias internas. la infiltración de la totalidad de las ventanas de dos costados adyacentes debe ser considerada. no se requiere evaluar la totalidad de las ventanas expuestas en los lados de la edificación. Cuando las condiciones económicas lo permitan. que es el aire que se introduce de modo no previsto al espacio acondicionado en los casos de refrigeración. debe introducirse suficiente aire exterior por ventilación hacia el sistema de aire acondicionado para mantener una salida de aire constante. la 129 . Las pérdidas de calor (ganancias negativas de calor) en este caso son consideradas instantáneas.

La intención principal es considerar la dimensión apropiada de un adecuado sistema de calefacción para las peores condiciones.transferencia de calor se evalúa conductiva y. Tradicionalmente ésta se considera como la carga con la que se puede enfrentar el sistema bajo las condiciones de diseño interiores y exteriores. el calor latente es considerado sólo como un factor para reemplazar la humedad que se pierde al ambiente. incluyendo las infiltraciones y/o ventilación. pero en la ausencia del efecto del sol (en la noche o en días nublados de invierno) y antes que comiencen las rutinas de la gente. La justificación de esta aproximación simplificada tiene como propósito estimar la carga de calor como identificación del peor caso de condiciones que puede ocurrir para un día de la temporada de calefacción. 130 . luces y aplicaciones que produzcan efectos retardados de transmisión.

El Método E. el área de superficie expuesta al ambiente y el coeficiente de transferencia de calor que involucra al ambiente y a las condiciones intrínsecas de los vidrios. La ganancia de calor por convección a través de los ventanales es proporcional al diferencial de temperaturas entre el exterior y el ambiente refrigerado. E.1. que por lo general se consideran de ventanas. están compuestas por dos factores principales. aunque también pueden ser consideradas algunas puertas de este material que formen parte del conjunto de elementos de un ambiente refrigerado. que son los efectos de Radiación Solar y los efectos de Convección por el calor que se encuentra libre en el ambiente. La función que representa esta relación es la siguiente: q = U ⋅ A ⋅ (Tb − Ti ) (37) Por otro lado la Radiación también tiene un efecto significativo sobre la ganancia de calor a través de las superficies cristalinas.2.2.E. por lo cual se requiere del uso de muchas tablas y procedimientos condensados que representan el sentido de una función de transferencia. 131 . que puede ser observado con el efecto térmico. pero que se simplifica su manejo para la fácil manipulación de aquel que calcule las cargas térmicas y de enfriamiento. Ganancia de Calor a través de Ventanas Exteriores Las ganancias por vidrios. que para el método de cálculo actual se realiza como una función de factores de sombreado y de ganancia de calor solar por orientación. Procedimiento de Cálculo de Diferencias de Temperaturas Totales Equivalentes en un Promedio de Tiempo (DTTE/PT) Para calcular una carga de enfriamiento en un área utilizando las convenciones de DTTE/PT aplican los procedimientos de ensamblaje de datos y análisis de precálculos similar a los usados en el método de la función de transferencia (MFT).2.2.

1). Tabla A3. Este modo de cálculo considera a) la temperatura sol-aire para representar las condiciones externas y. Para la obtención del factor se debe considerar la orientación de los sistemas cristalinos. queda simplificado el cálculo de la ganancia de calor por efecto de la radiación solar como: qi = A × FS × FGCS (38) donde. Estos factores han sido calculados y tabulados para varias latitudes y todos los meses. En tal forma. se asumen constantes los 132 . El coeficiente de sombreado. que permiten obtener la magnitud de la cantidad de energía que se inserta a través de este fenómeno de transferencia a los ambientes cerrados y refrigerados. es un factor que depende de la capacidad que tengan los materiales vidriosos de absorber o reflejar la luz y calor. Este factor permite determinar la ganancia de calor por radiación a través de los sistemas de ventanas. para predecir la porción de exposición que tendrán al astro solar. Además. (Ver Apéndice A3. como se observa en el ejemplo anexo. hora y mes. m2 FS = Factor de Sombra FGCS = Factor de Ganancia de Calor Solar. Ganancia de Calor Sensible Esta aproximación es particularmente semejante al método de la función de transferencia y está diseñado para ser usado de modo adecuado con computadores. es la fracción de irradiación que penetra los cristales y se convierte en ganancia de calor para el ambiente. A = Área de Vidrio. b) constante a la temperatura interna del aire. El factor de ganancia de calor solar.3. ya que esto permitirá que sea mayor o menor la incidencia del sol en las cargas del ambiente.2. W/m2 E.latitud.

Usualmente son calculados utilizando el coeficiente de transferencia externo 17. 133 . Por lo tanto.θ − nδ ) − ∑ n e . cn . el coeficiente interno 8.θ − nδ − Trc ∑ cn ⎥ A n =1 n =0 ⎣ n =0 ⎦ (39) donde qe .coeficientes de superficie internos y externos. Coeficientes de Función de Transferencia para Conducción.4. d n = coeficientes de función de transferencia por conducción E. El uso de ho = 17 limita la aplicación de estos coeficientes a casos de temperaturas soleadas similares. se puede describir como: ) d (q ⎡ ⎤ qe .θ −nδ = temperatura sol-aire para el instante θ − nδ Trc = temperatura interna (constante) bn .3 W/(m2·K) y el de la pared o construcción que resulte apropiado. El Coeficiente de Función de Transferencia específico de las diferentes construcciones puede ser calculado por procedimientos complejos que han sido computarizados por científicos en años anteriores.θ = A⎢∑ bn (Te .θ = ganancia de calor de paredes o techos para la hora de cálculo θ A = área superficial de la pared o techo por dentro θ = hora de cálculo δ = intervalo de tiempo n = índice de suma Te. la ganancia de calor a través de una pared o techo.0 W/(m2·K).2.

c. q p .θ = A⎢∑ bn (Tb .5. se producirá una transferencia de calor a través de la separación que puede ser calculada por: ⎡ ⎤ q p .d = coeficientes derivados del tipo de pared.E. suelo. Ganancia de calor desde espacios adyacentes.θ .6. Ganancia de Calor a través de Superficies Interiores. techo o partición E. Espacios Adyacentes y Pisos.θ −nδ ) − ∑ d n {(q p . En los casos que Tb es constante o sus variaciones son despreciables en comparación con la diferencia (Tb − Trc ) . m2 Tb = temperatura del aire del espacio adyacente. En los casos en que q p .2. que son los casos en que se considera que no hay variación.θ − nδ )/ A}− Trc ∑ c n ⎥ n =1 n =0 ⎣ n =0 ⎦ (40) donde A = área.θ = UA(Tb − Trc ) (41) donde U es el coeficiente global de transferencia de calor entre el espacio adyacente y el espacio acondicionado.2. Siempre que un espacio acondicionado se encuentre adyacente a otro que se encuentre a distinta temperatura.θ estará dado por la sencilla ecuación de estado estable q p . °C b . Las mismas expresiones reflejan el valor medio de q p . cuando se utiliza el valor medio de Tb .θ es relativamente pequeño en comparación con la ganancia de calor de los 134 .

El flujo de aire a través del ambiente lleva consigo un trasporte de energía que debe ser considerado para el cálculo de las cargas térmicas totales dentro de un ambiente refrigerado. Tratamiento de la Ganancia de Calor y la Carga de Refrigeración. tal y como se presentan a continuación: qtotal = 1. estas son. El método de la Diferencia de de Temperaturas Totales Equivalentes en un Promedio de Tiempo está orientado principalmente para ser un procedimiento manual. E.20 ⋅ Q ⋅ ( H o − H i ) (42) qsensible = 1.2. se hace necesario calcular la temperatura del área adyacente. Procedimientos de Conversión.7. Existen dos modos de calcular la carga total de calor que se produce con el transporte o penetración de aire en el ambiente. Ganancia de Calor a través de infiltraciones y ventilación. se puede considerar constante en su valor medio.8. considerando el cambio energético total del aire o considerando la suma de las ganancias de calor sensible y latente del aire. corrigiendo el valor del caudal correspondiente para cada uno. Si la componente de ganancia de calor es elevada.componentes del otro cuarto. E. ya que es a través del flujo del aire que se produce el intercambio térmico del espacio y se debe considerar el efecto que implica la transformación de energía cinética en energía térmica del aire para el caso.2.23 ⋅ Q ⋅ (to − ti ) (43) qlatente = 3010 ⋅ Q ⋅ (Wo − Wi ) (44) donde Q es el caudal de flujo de aire en [m3/s] y las constantes de las cargas sensible y latente están en las unidades correspondientes. Se puede calcular la ganancia de calor por ventilación e infiltraciones con la misma ecuación. Las 135 . haciendo el cálculo total.

como se realiza para calcular el flujo de calor a través de cada una de las paredes y techos seleccionadas para tal fin.9. de un modo similar al de la ganancia por espacios adyacentes. La ganancia de calor a través de las paredes y techos son el resultado de sucesivos cálculos que se generalizan dividiendo los valores deducidos de ganancia de calor para cada hora de cada pared y techo. W U = coeficiente total de transferencia de calor.tablas precalculadas de retrasos temporales. W/(m2·K) A = área de superficie. E. Este factor hace que la ecuación básica de transferencia de calor para las superficies exteriores quede descrita por: q = UA( DTTE ) (45) donde q = ganancia de calor. pero para este caso la temperatura exterior no permanece constante en el tiempo. por el contrario. tiende a variar cada hora. Ganancia de Calor a través de las Paredes y Techos Exteriores La carga de ganancia de calor de las paredes. se produce por el efecto de una diferencia de temperatura que transfiere calor a través del material que separa los ambientes. por el factor de transferencia de calor U correspondiente. de factores de decrementos y valores tabulados para una diversidad de tipos de paredes representativas que provienen de soluciones de series de Fourier para el caso de la ecuación de conducción unidimensional de estado estable de una placa de múltiples componentes.2. Las cantidades obtenidas por este procedimiento es lo que se llama la diferencia de temperatura total equivalente (DTTE). m2 DTTE = diferencia de temperatura total equivalente El flujo de calor a través de una pared o techo similar (similar en masa así como en factor de transferencia U) pueden obtenerse multiplicando las DTTE’s por el factor de 136 .

La aplicación del método. para cualquier ciclo de temperaturas soleadas. Cálculos Manuales versus Cálculos Automatizados. en especial para el cálculo del promedio en el tiempo en específico. en tal sentido las temperaturas equivalentes diferenciales se relacionan con las correspondientes temperaturas soleadas de la siguiente forma: DTTE = Tea − Ti − λ (Teδ − Tea ) (46) donde Tea = promedio diario de temperatura soleada. La Diferencia de Temperatura Total Equivalente como una función de los factores de decremento y retrasos temporales. considerando el color de superficie Ti = temperatura interna del aire λ = factor de decremento efectivo Teδ = temperatura soleada δ horas antes de la hora para la cual se promete el cálculo de DTTE Esta relación permite aproximar el cálculo de la ganancia de calor a través de cualquier pared o techo tabulada o. Este hecho sumado al interés desarrollado en los 137 .10. una equivalente. La ganancia de calor de las paredes y techos representativos puede ser generalizada de otro modo también.2. E. resulta tediosa en la práctica.transferencia correspondiente del elemento que corresponda. Los factores de decremento λ y los retrasos temporales δ son determinados para cada ensamblaje. Los errores que se manejan con esta aproximación dependen de la diferencia entre los materiales de construcción utilizados y los considerados para el cálculo de las DTTE’s.

El efecto de los coeficientes de transferencia a través de la habitación en la ganancia de calor por horas. es generar un perfil de cargas que siga la ganancia instantánea de calor en amplitud (grande o pequeña) y efectos de retrasos.3.métodos de funciones de transferencia produce el interés de desarrollar aplicaciones automatizadas que desarrollen los cálculos para realizar métodos más simples de programar con precisión similar a los métodos complejos. con la consecuente liberación del calor almacenado por los componentes en un tiempo posterior. E. Además reconoce que la carga de refrigeración de un espacio para un instante dado es la suma de todas las ganancias de calor convectivas y las porciones de ganancia de calor conductiva que no se dispersaran por radiación de esa área. Así como los resultados son más consistentes 138 . Este procedimiento reconoce la existencia del almacenamiento térmico de los componentes y considera las porciones de ganancia de calor que entran por radiación al espacio en cualquier instante. estos coeficientes sitúan su énfasis en la hora inmediatamente precedente al cálculo. Así como los perfiles de carga de refrigeración obtenidos por el método de la función de transferencia pueden aproximarse promediando los componentes de ganancia de calor por radiación en cada hora para un período previo al cálculo de entre siete a ocho horas con la de cálculo y añadiendo el resultado al total de ganancia de calor por convección para el instante correspondiente. Promedio Temporal de la Carga de Refrigeración La técnica de promediar en el tiempo las cargas. sumados a la cantidad del total de calor liberado por radiación del que se había almacenado hasta la hora de evaluación. disminuyendo de forma significativa el énfasis en cada lapso previo. para relacionar la ganancia de calor instantánea con la carga instantánea de refrigeración es una aproximación al concepto de la conversión de dos etapas que se realiza en el método de la función de transferencia. Siendo funciones de la masa y configuración del edificio y de los componentes que éste contenga.

con los obtenidos por la aplicación rigurosa del método de la función de transferencia, los
que se pueden obtener por el método de las diferencias de temperaturas totales equivalentes
en un promedio de tiempo (DTTE/PT) se obtienen con mucho menos esfuerzo de cómputo.
La habilidad adecuada de variar el período del promedio de modo independiente es una
consecuencia de aplicar un juicio profesional a los resultados, que mejora con la
experiencia.
El éxito de esta aproximación depende de la eficacia con que la ganancia de calor de
los componentes se maneja como porcentajes de convección y radiación, así como del
número de horas en que estos son utilizados dentro del lapso que es estudiado. La debilidad
de esta aproximación radica en que no existen datos en la literatura especializada para
verificar los factores, y se hace necesario el juicio profesional de experto en el usuario.
Los valores de ganancia de calor para ambos métodos MFT o DTTE/PT son
esencialmente idénticos para todos los componentes de carga. Los valores de carga de
refrigeración derivados de la aplicación adecuada de las técnicas de promediar, se asemejan
a los obtenidos por el método MFT para ganancia de calor por fuentes externas. La carga de
refrigeración causada por la ganancia de calor interna, sin embargo, al promediarse en el
mismo período de tiempo que los componentes externos, alcanza picos en un lapso menor y
con mayores amplitudes que las generadas por el método MFT. Esta diferencia radica
básicamente en que el nivel casi constante de radiación añadida en los períodos de
ocupación y también a la resultante del aplastamiento de las curvas de carga de
refrigeración que se realiza en el método MFT.

139

AgrResistencia - 1
Dim datos As Us
Option Explicit
Private Sub CancelButton_Click()
Me.Hide
CalculoU.Show
End Sub
Private Sub OKButton_Click()
Dim n_res As Long
n_res = lenfile8(App.Path & "/Datos/Resistencias.cfl")
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Get #1, n_res, datos
Close #1
datos.Descripcion = Text1.Text
datos.Resistencia = Text2.Text
datos.conf = "R"
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Put #1, n_res, datos
Close #1
CalculoU.Text1.Text = n_res
Me.Hide
End Sub

AgrResistividad - 1
Dim datos As Us
Option Explicit
Private Sub CancelButton_Click()
Me.Hide
CalculoU.Show
End Sub
Private Sub OKButton_Click()
If Text4.Text = 0 Or Text4.Text = "" Then
MsgBox "No se puede dar valor, la resistencia no puede ser CERO"
Else
Dim n_res As Long
n_res = lenfile8(App.Path & "/Datos/Resistencias.cfl")
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Get #1, n_res, datos
Close #1
datos.Descripcion = Text1.Text
datos.Resistencia = Text4.Text
datos.conf = "R"
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Put #1, n_res, datos
Close #1
CalculoU.Text1.Text = n_res
Me.Hide
End If
End Sub
Private Sub Text3_Change()
Text4.Text = Text3.Text * Text2.Text
End Sub

Indicar Espesor [m]

cfl" For Random As #1 Len = Len(datos) Put #1.Path & "/Datos/Resistencias.CalculoU . 1)) = "R" Then rpeq = Trim(datos. datos Close #1 datos.cfl") Open App. datos Close #1 datos.salto = vbCrLf Open App.Path & "/Datos/Resistencias.Path & "/Datos/Resistencias. n_res.id + 1 datos.Text Resistencia = resistividad.Text = Ucoef.conf = "R" datos.Resistencia) rpeq = rpeq * 1 resistenciasum = resistenciasum + rpeq End If Loop Close #1 If Not resistenciasum = 0 Then ucef = 1 / resistenciasum Ucoef.cfl") Open App.Path & "/Datos/Resistencias.Resistencia = Resistencia.borrado = 1 datos. datos Close #1 .cfl" For Random As #1 Len = Len(datos) Put #1. datos Close #1 End If Text1.id = datos.id = datos.conf = "R" datos.Text * Espesor.Hide Cargas.Descripcion = Nombre.Path & "/Datos/Resistencias.Descripcion = Nombre. n_res.conf.Text datos.Text If ExisteArch(App.cfl" For Random As #1 Len = Len(datos) Get #1.Path & "/Datos/Resistencias.Text = "" Or Espesor. .Resistencia = Resistencia datos.Path & "/Datos/Resistencias.Text datos.Text = ucef End If End Sub Private Sub cmdAñadirCarga_Click() Me. n_res.Path & "/Datos/Resistenci as.1 Dim datos As Us Private Sub Calcular_Click() Dim resistenciasum As Double Dim rpeq As Double Dim ucef As Double Open App.cfl" End Sub Private Sub Command1_Click() If Resistencia = "" Then MsgBox "Verifique que no desea añadir una resistencia nula" Else Dim n_res As Long n_res = lenfile8(App.cfl" For Random As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Text = "" Then MsgBox "Verifique que no desea añadir una resistencia nula" Else Dim n_res As Long Dim Resistencia As Double n_res = lenfile8(App.Text datos.salto = vbCrLf Open App.cfl" For Random As #1 Len = Len(datos) Get #1.Text = n_res End Sub Private Sub Command2_Click() If resistividad.Path & "/Datos/Resistencias. datos i = i + 1 If UCase(Left(datos. n_res.txtUcoefPartic.id + 1 datos.cfl") = True Then Kill App.

SubItems(1) = i .Clear Dim itmX As ListItem i = 0 Open App.ColumnHeaders. "ID".Add .2 End If Text1.ColumnHeaders.ColumnHeaders.Add(1.Add .ListItems. "Material".ColumnHeaders. .ColumnHeaders.SortKey = 2 ListView2.1 itmX.cfl" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "PK".ColumnHeaders.ColumnHeaders.SubItems(3) = Trim(datos.Text = "" resistividad. "PK". "Resistencia".ListItems.Add .ColumnHeaders. "d". "Material".ColumnHeaders. "ID". "Resistencia".ListItems. 3000.ColumnHeaders.Path & "/Datos/Resistencias.Clear Dim itmx2 As ListItem i = 0 Open App. 2 ListView1.Add . 2 ListView2. "PK".Add . "c".CalculoU .Add . 1000. "PK". 1000. .Resistencia) Set itmX = Nothing End If End If Loop ListView2. 2 ListView1. 1)) = "R" Then Set itmx1 = ListView1.Text = "" Ucoef.Clear ListView1.id) itmX.Add . "ID". 2 ListView2.ColumnHeaders. 0 ListView3.Path & "/Tablas/Tabla24_4.SubItems(2) = Trim(datos. 3000. datos i = i + 1 If UCase(Left(datos.Clear i = 0 Open App.ListItems. 0 ListView2.cfl" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "Densidad".SubItems(2) = Trim(datos. datos. 0 ListView1.Add .SubItems(1) = i . "ID".Resistencia) Set itmx1 = Nothing End If Loop Close #1 ListView2.conf.BackColor = &H80000011 Espesor. "Resistencia".ColumnHeaders. 2)) = " " Then If UCase(Left(datos.Add(1.Clear ListView3. "PK". "l". "PK".ColumnHeaders. 0 ListView1.Text = "" Resistencia.ColumnHeaders.Add .Add .cfl" For Random As #1 Len = Len(datos) Do While Not EOF(1) Get #1. . 2800.Densidad) itmX.ColumnHeaders. "ID". 0 ListView2.Add .Add . 1000.SubItems(3) = Trim(datos.SubItems(4) = Trim(datos.Text = "" Nombre. 2 ListView3.ColumnHeaders. "Material". 1000.id) itmx1. "Densidad".Path & "/Tablas/Tabla24_4.Enabled = False Espesor.1 itmx1.Descripcion. 0 ListView3.conf.Add . 1)) = "N" Then Set itmX = ListView2.Descripcion) itmx1.Sorted = True Close #1 ListView3.ListItems. datos. "ID". "d". datos . datos i = i + 1 If Not UCase(Left(datos.Add . 1000.ColumnHeaders. "d".Clear ListView2.Text = n_res End Sub Private Sub Form_Load() Espesor. . "c".Descripcion) itmX. "l". 2 ListView3. 0 ListView3. "c".Text = "" ListView1. 0 ListView2. .

Text1.Resistencia) AgrResistencia.SelectedItem.CalculoU .SelectedItem = "Resistividades" Then Frame1.conf.SubItems(1) * Len(datos)) + 1.Resistencia) Set itmx2 = Nothing End If End If Loop Close #1 End Sub Private Sub ListView2_Dblclick() Open App. .3 i = i + 1 If Not UCase(Left(datos.Path & "/Tablas/Tabla24_4. datos.SelectedItem = "Resistencias" Then Frame1. datos Close #1 largo = Len(Trim(datos. 1)) = "L" Then Set itmx2 = ListView3.Text2.Path & "/Tablas/Tabla24_4.Resistencia) AgrResistividad.BackColor = &H80000005 Espesor.Text = Trim(datos.Text = Trim(datos. 2)) = " " Then If UCase(Left(datos.Visible = True End If End Sub Private Sub Text1_Change() Call Form_Load End Sub Function ExisteArch(nombrearchivo As String) As Boolean On Error Resume Next ExisteArch = (Dir$(nombrearchivo) <> "") End Function .SelectedItem.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1.ListItems.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1. (ListView3.Visible = False Frame2.Text = Trim(datos.Visible = False End If If tabstrip1.Descripcion) AgrResistencia.Show End If End Sub Private Sub ListView3_dblclick() Open App.SubItems(1) * Len(datos)) + 1.Show End If End Sub Private Sub resistividad_Change() Espesor.Text2.SubItems(4) = Trim(datos. datos Close #1 largo = Len(Trim(datos.Descripcion) AgrResistividad.SubItems(3) = Trim(datos.1 itmx2.Enabled = True End Sub Private Sub TabStrip1_Click() If tabstrip1.Add(1.Resistencia)) If largo > 6 Then MsgBox "este elemento requiere que usted decida cuál valor poner del rango" Else AgrResistividad.Text = Trim(datos.Resistencia)) If largo > 6 Then MsgBox "este elemento requiere que usted decida cuál valor poner del rango" Else AgrResistencia.Densidad) itmx2. (ListView2.Descripcion.SubItems(2) = Trim(datos.Descripcion) itmx2.id) itmx2.SubItems(1) = i .Text1.Visible = True Frame2.

DE SER EL CASO Resistividad [K*m/W] Espesor [m] Coeficiente de Tansferencia de Calor [W/(m^2*K)] .Nombre del Material Resistencia [K*m^2/W] .

Path & "/Tablas/CPer. (ListView1.sensible) Cargas. 1200.Add .Hide Cargas.ColumnHeaders. "Calor Sensible". "ID".ColumnHeaders. 2 ListView1. "".ColumnHeaders.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1.txtlhgpersonas.ColumnHeaders.Latente) itmX.sensible) itmX.CalorPersona . "Calor Ajustado H/M". 3500. "PK". datos Close #1 Cargas. 1)) = "P" Then Set itmX = ListView1. 1900. "CL".Add ..Add . 0 ListView1. "CS".Alto) Set itmX = Nothing End If Loop Close #1 End Sub Private Sub ListView1_dblclick() Dim datos As CalorPersonas Open App.Add . "% Calor sensible Irr. "ta".SubItems(8) = Trim(datos. 2 ListView1. "IrrB". Bajo V". "% Calor sensible Irr.id) itmX.ColumnHeaders.nomb.Add . 2 ListView1. 2300. "Ch". "Chm". 0 ListView1.cfl" For Random Access Read As #1 Len = Len(datos) i = 0 Do While Not EOF(1) Get #1. 2 ListView1.Latente) Me. datos i = i + 1 If UCase(Left(datos. 2 ListView1.Text = Trim(datos. 2300.Add(1.Tipo) itmX. "Tipo de Actividad".SubItems(4) = Trim(datos.Add .SelectedItem.txtshgpersonas. datos.SubItems(7) = Trim(datos.hombre) itmX.ColumnHeaders.ColumnHeaders. "Calor Latente".Clear Dim itmX As ListItem Open App.SubItems(3) = Trim(datos.ListItems. "Calor Adulto Hombre". Bajo V". "Lugar Típico". 2400. 1200. "PK".ColumnHeaders.SubItems(1) = i .Bajo) itmX.Add .actividad) itmX.SubItems(5) = Trim(datos. .ListItems. .Add .Show End Sub ..Text = Trim(datos. 2 ListView1. 1900. 2 ListView1.ColumnHeaders.SubItems(2) = Trim(datos.1 Private Sub Form_Load() Dim datos As CalorPersonas ListView1.Path & "/Tablas/CPer. "ID".ColumnHeaders.SubItems(6) = Trim(datos. 2 ListView1.Add .Add . "IrrA".Clear ListView1.ColumnHeaders.ajustado) itmX.SubItems(9) = Trim(datos.SubItems(1) * Len(datos)) + 1.1 itmX.

Ganancias de Calor de los ocupantes de un Espacio Refrigerado (*)Tabla 3. "ASHRAE Fundamentals (199 . Capítulo 29.

Text datos.ColumnHeaders.Sup = "S" datos. 2500.ListItems.salto = vbCrLf Open App. "chm". 0 ListView1.CambiosAireHora . 0 ListView1.cfl") Open App. . 1)) = "S" Then Set itmX = ListView1.Path & "/Tablas/CambiosHora. "Local Destinado A:".Path & "/Tablas/CambiosHora. "ID".Text datos. datos Close #1 datos.Path & "/Tablas/CambiosHora.cfl" For Random As #1 Len = Len(datos) Get #1. datos.1 itmX.ColumnHeaders.Add .Add . "PK".Clear i = 0 Open App.ColumnHeaders.cfl" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. 0 ListView1. 0 ListView1.Add . datos i = i + 1 If UCase(Left(datos.cfl" For Random As #1 Len = Len(datos) Put #1. "Cambios Mínimos Aire/hora". "PK".SubItems(3) = Trim(datos. datos Close #1 Call Form_Load End Sub Private Sub Form_Load() ListView1.Aplicacion = Text1. 1500.Sup.SubItems(1) = i . .1 Dim datos As ventilac Dim itmX As ListItem Private Sub Command1_Click() n_camb = lenfile6(App.id + 1 datos.lps = Text2.ColumnHeaders. "ID". n_camb.Add .Path & "/Tablas/CambiosHora.lps) Set itmX = Nothing End If Loop Close #1 End Sub .ListItems.id = datos.Clear ListView1.Add(1.Aplicacion) itmX.id) itmX.ColumnHeaders. "Uso". n_camb.SubItems(2) = Trim(datos.

.

cantpared.Text = "D" Then colocacion = 0 End If Loop Close #1 txtTcolocacion.Clear i = 0 Open App. datos i = i + 1 If UCase(Left(datos. .Path & "/" & Trim(Directorio) & "/Datos/Oficinas.C) If cboColocacion. cantpiso. colocacion As Long Private Sub cboaparatoscorr_dropdown() cboAparatosCorr.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Text = "C" Then colocacion = Trim(datos2.Text = "A" Then colocacion = Trim(datos2.Path & "/Tablas/TablaMotores. cantvid.Text = colocacion End Sub Private Sub cbocorrtecho_dropdown() cbocorrtecho.1 Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim clmx As ColumnHeader itmx1 As ListItem itmx2 As ListItem i As Integer canttech. datos i = i + 1 If UCase(Left(datos.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.TVar.TVar. cantluces.AddItem (datos.nombamb) End If Loop Close #1 End Sub Private Sub cboColocacion_click() Dim datos2 As Motores colocacion = 0 Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. cantequipos. datos2 i = i + 1 If Trim(datos2. 1)) = "O" Then cboAparatosCorr.nombamb) End If Loop Close #1 End Sub Private Sub cboEquiposCorr_dropdown() cboEquiposCorr.cfl" For Random Access Read As #1 Len = Len(datos2) Do While Not EOF(1) Get #1.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. 1)) = "O" Then cbocorrtecho.eficiencia) = txtEficienciaEquipos.nombamb) End If .AddItem (datos.TVar. canttechint As Integer cantapara. cantpart.Clear i = 0 Open App. 1)) = "O" Then cboEquiposCorr.Clear i = 0 Open App.B) If cboColocacion.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text = "B" Then colocacion = Trim(datos2. . .Text Then If cboColocacion.AddItem (datos. cantpersonas As Integer ofper As String datos As techo Directorio As String n_tech.Cargas . . datos i = i + 1 If UCase(Left(datos.A) If cboColocacion.

AddItem (datos.Cargas . datos i = i + 1 If UCase(Left(datos.Clear i = 0 Open App.AddItem (datos. . 1)) = "O" Then cboLucesCorr.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.TVar.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Clear i = 0 Open App.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. . datos i = i + 1 If UCase(Left(datos.Clear i = 0 Open App.AddItem (datos.Text = 1 End If End Sub Private Sub cboLucesCorr_dropdown() cboLucesCorr.Text = "Fluorescente" Then txtCoefDiseñoluces.Text = "1.TVar. datos i = i + 1 If UCase(Left(datos. 1)) = "O" Then cboPersonCorr.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. datos i = i + 1 If UCase(Left(datos.nombamb) End If Loop Close #1 End Sub Private Sub cboParticionCorr_dropdown() cboParticionCorr.nombamb) End If Loop Close #1 End Sub Private Sub cboPersonCorr_dropdown() cboPersonCorr. . 1)) = "O" Then cboParticionCorr.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.TVar. .2 Loop Close #1 End Sub Private Sub cboLuces_Click() If cboLuces.2" Else txtCoefDiseñoluces.TVar.Clear i = 0 Open App.nombamb) End If Loop Close #1 End Sub .AddItem (datos.nombamb) End If Loop Close #1 End Sub Private Sub cboParedCorr_dropdown() cboParedCorr.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. 1)) = "O" Then cboParedCorr.

. n_apa.Text = datos.nombamb) End If Loop Close #1 End Sub Private Sub cboVidrioCorr_click() Open App.borrado = 1 datos. vbExclamation Else Oficina = cboAparatosCorr. .txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Text = "" Or txtshg.tcarga = "APARATOS" datos.3 Private Sub cboVidrioCorr_dropdown() cboVidrioCorr.TVar.ListItems.TVar.txt" For Random As #1 Len = Len(datos) Get #1.inicio = cboinicioaparatos.Text datos.Text datos. verifique que llenó todas las casillas".AddItem (datos.Text = "" Or txtIgAparatos.shg = txtshg.Path & "/" & Trim(Directorio) & "/Datos/Cargas. datos If UCase(Left(datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.nombamb.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.UmaAt = Uma datos.Textd End If Loop Close #1 End Sub Private Sub cmdAparato_Click() ListView3.Text = "" Or txtlhg.Text = "" Th en MsgBox "Faltan datos. n_apa .Text datos.Text. 7)) Then Text1. 1)) = "O" Then If datos.duracion = cboduracionaparatos. datos Close #1 If n_apa > 30 Then MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa" Else datos.UmaAt End If End If Loop Close #1 Dim n_apa As Long n_apa = lenfile(App.id = datos.Text = datos.Text Open App.Tso Text2.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. 1)) = "O" Then cboVidrioCorr.salto = vbCrLf Open App.Clear If cboAparatosCorr.1. 7)) = UCase(Left(cboVidrioCorr. datos i = i + 1 If UCase(Left(datos.txt" For Random As #1 Len = Len(datos) Put #1.Text datos.lhg = txtlhg.Path & "/" & Trim(Directorio) & "/Datos/Cargas.1 = 0 Then n_apa = n_apa + 1 Open App.TVar = "CARGA" datos.Campana = cbocampanaaparatos.Cargas .Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1. .Ofcorr = cboAparatosCorr.id + 1 datos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text datos.Clear i = 0 Open App.Text datos. datos i = i + 1 If UCase(Left(datos.Igaparatos = txtIgAparatos.txt") If n_apa . datos .nombamb = Oficina Then Uma = datos.

Cargas .inicio = cboInicioEquipos.Text datos. verifique que llenó todas las casillas".TVar = "CARGA" datos.txt") If n_eqp .Text = "" Or txtlhg.eficiencia = txtEficienciaEquipos. 1)) = "O" Then If datos.Text datos.Text = "" Th en .1 = 0 Then n_eqp = n_eqp + 1 Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.1.Text = "" Or txtIgAparatos.uso = txtusoEquipo.Text datos.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1.Text = "-Elegir Oficina-" txtPotenciaEquipos.colocacion = cboColocacion. vbExclamation Else Oficina = cboEquiposCorr.Text datos.Text = "" txtlhg.Text = "" End If End If Call Form_Load End Sub Private Sub cmdEquipos_Click() ListView3.Text datos.Text datos.salto = vbCrLf Open App. datos Close #1 cboEquiposCorr.Clear If cboEquiposCorr.UmaAt End If End If Loop Close #1 Dim n_eqp As Long n_eqp = lenfile(App. datos If UCase(Left(datos.Text = "" Or txtEfici enciaEquipos.Text = "" Or txtshg. datos Close #1 If n_eqp > 30 Then MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa" Else datos.Ofcorr = cboEquiposCorr.Text Open App.Text = "" cboColocacion. n_eqp.IgEquipos = txtIgEquipos.Text = "" Or txtIgEquipos.Text datos.Text = "" End If End If Call Form_Load Call cboColocacion_click End Sub Private Sub cmdGuardarAparatos_Click() If cboAparatosCorr.potencia = txtPotenciaEquipos.Text = "" txtEficienciaEquipos.tcarga = "EQUIPOTENCIA" datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.duracion = cboDuracionEquipos.ListItems.Text = "" Or txtusoEquipo.Text = "-Elegir Oficina-" txtIgAparatos.Text datos. .Text = "" txtusoEquipo.Text = "" Or txtPotenciaEquipos.4 Close #1 cboAparatosCorr.UmaAt = Uma datos.nombamb = Oficina Then Uma = datos.id = datos.borrado = 1 datos.Text datos.txt" For Random As #1 Len = Len(datos) Get #1.Path & "/" & Trim(Directorio) & "/Datos/Cargas.id + 1 datos.Text = "" txtIgEquipos.Text = "" txtshg.txt" For Random As #1 Len = Len(datos) Put #1.Text = "" txtTcolocacion.TVar. n_eqp .Text = "" Or cboColocacion.Text = "" Then MsgBox "Faltan datos.Tcolocacion = txtTcolocacion.Path & "/" & Trim(Directorio) & "/Datos/Cargas.

txt" For Random As #2 Len = Len(datos ) Do While Not EOF(1) Get #1.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Path & "/" & Trim(Directorio) & "/Datos/nCargas.Igaparatos = txtIgAparatos.borrado = 1 Then n_cont = n_cont + 1 datos.Cargas .Ofcorr = cboAparatosCorr.Text datos.Text = "" Or cboColocacion.Path & "/" & Trim(Directorio) & "/Datos/nCargas. vbExclamation Else Oficina = cboEquiposCorr.1.inicio = cboinicioaparatos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = "" Or txtusoEquipo.Path & "/" & Trim(Directorio) & "/Datos/Cargas. .txt" For Random Access Read As #1 Le n = Len(datos) .TVar.Text = "" Or txtEfici enciaEquipos.SubItems(1) + 1. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App.Text datos.tcarga = "APARATOS" datos.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1. ListView3.borrado = Check6.SelectedItem.nombamb = Oficina Then Uma = datos.txt" For Random Access Read As #1 Len = Len(datos) Open App.txt" cboAparatosCorr.Text Open App.txt" FileCopy App.Text datos.Path & "/" & Trim(Direc torio) & "/Datos/Cargas. datos Close #1 Dim n_cont As Integer Open App.TVar = "CARGA" datos.1 = 0 Then n_apa = n_apa + 1 Open App. 1)) = "O" Then If datos.Text = "" Or txtIgEquipos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. n_apa . verifique que llenó todas las casillas".txt". vbExclamation Else Oficina = cboAparatosCorr.Text datos.Text = "" Or txtPotenciaEquipos.Value datos. datos If UCase(Left(datos.lhg = txtlhg.shg = txtshg. verifique que llenó todas las casillas".Path & "/" & Trim(Directorio) & "/Datos/nCargas.Path & "/Datos/Cargas.Campana = cbocampanaaparatos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.UmaAt End If End If Loop Close #1 Dim n_apa As Long n_apa = lenfile(App.txt" For Random As #1 Len = Len(datos) Get #1.UmaAt = Uma datos.txt") If n_apa .id = n_cont Put #2.Text = "" txtlhg.duracion = cboduracionaparatos. n_cont.Text = "" Then MsgBox "Faltan datos.SubItems(1) Open App. App.txt" Kill App.Text datos. .Text = "-Elegir Oficina-" txtIgAparatos.Text = "" txtshg.5 MsgBox "Faltan datos.Text datos.id = ListView3.SelectedItem.Text Open App.Text = "" End If Call Form_Load End Sub Private Sub cmdGuardarEquipos_Click() If cboEquiposCorr.txt" For Random As #1 Len = Len(datos) Put #1. datos Close #1 datos. datos If datos.

Ofcorr = cboEquiposCorr.Path & "/" & Trim(Directorio) & "/Datos/Cargas.IgEquipos = txtIgEquipos.Text datos.Text = "" End If Call Form_Load Call cboColocacion_click End Sub Private Sub cmdGuardarLuces_Click() If txtPotLuces.Text = "" txtEficienciaEquipos.TVar.Cargas .borrado = 1 Then n_cont = n_cont + 1 datos. verifique que llenó todas las casillas".Value datos. n_cont. 1)) = "O" Then If datos.TVar = "CARGA" datos.Text datos.Tcolocacion = txtTcolocacion.SelectedItem.Path & "/" & Trim(Directorio) & "/Datos/nCargas.uso = txtusoEquipo.Text datos.txt" For Random As #2 Len = Len(datos ) Do While Not EOF(1) Get #1.txt" For Random As #1 Len = Len(datos) Put #1.Path & "/" & Trim(Direc torio) & "/Datos/Cargas.txt".Text = "" Then MsgBox "Faltan datos.colocacion = cboColocacion.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas. datos If UCase(Left(datos.borrado = Check7.salto = vbCrLf Open App. datos Close #1 Dim n_cont As Integer Open App.6 Do While Not EOF(1) Get #1.Text datos.SubItems(1) + 1. .duracion = cboDuracionEquipos.UmaAt = Uma datos. .tcarga = "EQUIPOTENCIA" datos.Text = "" Or txtCoefDiseñoluces.Text = "" txtusoEquipo.txt" FileCopy App.Text = "" txtTcolocacion.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Len(datos) Open App. ListView3.1 = 0 Then n_eqp = n_eqp + 1 Open App.txt") If n_eqp .1. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App.Text = "" txtIgEquipos.Text = "-Elegir Oficina-" txtPotenciaEquipos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/nCargas.Text datos.Path & "/" & Trim(Directorio) & "/Datos/nCargas.SelectedItem.txt" cboEquiposCorr.txt" For Random As #1 Len = Len(datos) Get #1. datos Close #1 datos.Text = "" cboColocacion.Text datos.eficiencia = txtEficienciaEquipos.nombamb = Oficina Then Uma = datos. App. vbExclamation Else Oficina = cboLucesCorr.Text = "" Or txtporcionluces. datos If datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.potencia = txtPotenciaEquipos.id = n_cont Put #2.SubItems(1) datos. n_eqp .txt" Kill App.Text datos.UmaAt End If End If Loop Close #1 Dim n_eqp As Long n_eqp = lenfile(App.Text .Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = "" Or cboLucesC orr.id = ListView3.inicio = cboInicioEquipos.

Cargas - 7

Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If
Loop
Close #1
Dim n_luc As Long
n_luc = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_luc - 1 = 0 Then n_luc = n_luc + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_luc - 1, datos
Close #1
datos.TVar = "CARGA"
datos.tcarga = "LUCES"
datos.UmaAt = Uma
datos.Ofcorr = cboLucesCorr.Text
datos.Potluces = txtPotLuces.Text
datos.uso = txtporcionluces.Text
datos.tipoluces = cboLuces.Text
datos.inicio = cboinicioluces.Text
datos.duracion = cboDuracionluces.Text
datos.coefdis = txtCoefDiseñoluces.Text
datos.borrado = Check5.Value
datos.id = ListView3.SelectedItem.SubItems(1)
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, ListView3.SelectedItem.SubItems(1) + 1, datos
Close #1
Dim n_cont As Integer
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt" For Random As #2 Len = Len(datos
)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_cont = n_cont + 1
datos.id = n_cont
Put #2, n_cont, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt", App.Path & "/" & Trim(Direc
torio) & "/Datos/Cargas.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt"
cboLucesCorr.Text = "-Elegir Oficina-"
txtPotLuces.Text = ""
txtporcionluces.Text = ""
txtCoefDiseñoluces.Text = ""
End If
Call Form_Load
End Sub

Private Sub cmdGuardarPared_Click()
If txtIgPared.Text = "" Or txtUcoefPar.Text = "" Or txtareapared.Text = "" Or txtcoefcolor.Text =
"" Or cboParedCorr.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboParedCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos

Cargas - 8
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
Text1.Text = datos.Tso
Text2.Text = datos.Textd
End If
End If

Loop
Close #1
Dim n_pare As Long
n_pare = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_pare - 1 = 0 Then n_pare = n_pare + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_pare - 1, datos
Close #1
datos.TVar = "CARGA"
datos.tcarga = "PARED"
datos.UmaAt = Uma
datos.Ofcorr = cboParedCorr.Text
datos.IgPar = txtIgPared.Text
datos.Ucoef = txtUcoefPar.Text
datos.area = txtareapared.Text
datos.color = txtcoefcolor.Text
datos.Grupo = txtgrupo.Text
datos.fte = txtTimeLag.Text
datos.orientacion = cboOrientacion.Text
datos.inercia = txtdecfact.Text
datos.Tso = Text1.Text
datos.Textd = Text2.Text
datos.borrado = Check2.Value
datos.id = ListView3.SelectedItem.SubItems(1)
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, ListView3.SelectedItem.SubItems(1) + 1, datos
Close #1
Dim n_cont As Integer
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt" For Random As #2 Len = Len(datos
)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_cont = n_cont + 1
datos.id = n_cont
Put #2, n_cont, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt", App.Path & "/" & Trim(Direc
torio) & "/Datos/Cargas.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt"
cboParedCorr.Text = "-Elegir Oficina-"
txtIgPared.Text = ""
txtUcoefPar.Text = ""
txtareapared.Text = ""
txtcoefcolor.Text = ""
txtdecfact.Text = ""
txtTimeLag.Text = ""
End If
Call Form_Load
End Sub

Private Sub cmdGuardarParticion_Click()
If txtIgPartic.Text = "" Or txtUcoefPartic.Text = "" Or txtAreaPartic.Text = "" Or txtTAdyacente.T
ext = "" Or cboParticionCorr.Text = "" Or txtTofic.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else

Cargas - 9

Oficina = cboParticionCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If
Loop
Close #1
Dim n_part As Long
n_part = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_part - 1 = 0 Then n_part = n_part + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_part - 1, datos
Close #1
datos.TVar = "CARGA"
If TabStrip3.SelectedItem = "Partición" Then
datos.tcarga = "PARTICION"
End If
If TabStrip3.SelectedItem = "Piso" Then
datos.tcarga = "PISO"
End If

If TabStrip3.SelectedItem = "Techo Interno" Then
datos.tcarga = "TECHO INTERNO"
End If
datos.UmaAt = Uma
datos.Ofcorr = cboParticionCorr.Text
datos.IgPart = txtIgPartic.Text
datos.Ucoef = txtUcoefPartic.Text
datos.area = txtAreaPartic.Text
datos.TAdyacente = txtTAdyacente.Text
datos.Tso = txtTofic.Text
datos.borrado = Check4.Value
datos.id = ListView3.SelectedItem.SubItems(1)
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, ListView3.SelectedItem.SubItems(1) + 1, datos
Close #1
Dim n_cont As Integer
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt" For Random As #2 Len = Len(datos
)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_cont = n_cont + 1
datos.id = n_cont
Put #2, n_cont, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt", App.Path & "/" & Trim(Direc
torio) & "/Datos/Cargas.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt"
cboParticionCorr.Text = "-Elegir Oficina-"
txtIgPartic.Text = ""
txtUcoefPartic.Text = ""
txtAreaPartic.Text = ""
txtTAdyacente.Text = ""
txtTofic.Text = ""
End If
Call Form_Load

Cargas - 10
End Sub

Private Sub cmdGuardarPersonas_Click()
If txtnropersonas.Text = "" Or txtlhgpersonas.Text = "" Or txtshgpersonas.Text = "" Or cboPersonCo
rr.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboPersonCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If
Loop
Close #1
Dim n_per As Long
n_per = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_per - 1 = 0 Then n_per = n_per + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_per - 1, datos
Close #1
datos.TVar = "CARGA"
datos.tcarga = "PERSONAS"
datos.UmaAt = Uma
datos.Ofcorr = cboPersonCorr.Text
datos.shg = txtshgpersonas.Text
datos.lhg = txtlhgpersonas.Text
datos.inicio = cboentrada.Text
datos.duracion = cbopermanencia.Text
datos.cantpersonas = txtnropersonas.Text
datos.borrado = Check8.Value
datos.id = ListView3.SelectedItem.SubItems(1)
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, ListView3.SelectedItem.SubItems(1) + 1, datos
Close #1
Dim n_cont As Integer
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt" For Random As #2 Len = Len(datos
)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_cont = n_cont + 1
datos.id = n_cont
Put #2, n_cont, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt", App.Path & "/" & Trim(Direc
torio) & "/Datos/Cargas.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt"
cboPersonCorr.Text = "-Elegir Oficina-"
txtshgpersonas = ""
txtlhgpersonas.Text = ""
txtnropersonas.Text = ""
End If
Call Form_Load
End Sub

Private Sub cmdGuardartecho_Click()
If cbocorrtecho.Text = "" Or txtTitech.Text = "" Or txtucoef.Text = "" Or txtarea.Text = "" Or txt
techcoef.Text = "" Or txtfte.Text = "" Then

Cargas - 11
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else

Oficina = cbocorrtecho.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
Text1.Text = datos.Tso
Text2.Text = datos.Textd
End If
End If
Loop
Close #1
n_tech = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_tech - 1 = 0 Then n_tech = n_tech + 1
Open App.Path & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_tech - 1, datos
Close #1
datos.TVar = "CARGA"
datos.tcarga = "TECHO"
datos.UmaAt = Uma
datos.Ofcorr = cbocorrtecho.Text
datos.Ucoef = txtucoef.Text
datos.area = txtarea.Text
datos.color = txttechcoef.Text
datos.fte = txtfte.Text
datos.inercia = txtdf.Text
datos.cielo = cbocielo.Text
datos.titech = txtTitech.Text
datos.Tso = Text1.Text
datos.Textd = Text2.Text
datos.borrado = Check1.Value
datos.id = ListView3.SelectedItem.SubItems(1)
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, (ListView3.SelectedItem.SubItems(1) + 1), datos
Close #1
Dim n_cont As Integer
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt" For Random As #2 Len = Len(datos
)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_cont = n_cont + 1
datos.id = n_cont
Put #2, n_cont, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt", App.Path & "/" & Trim(Direc
torio) & "/Datos/Cargas.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nCargas.txt"
txtcanttech.Text = n_tech - 1
txtucoef.Text = ""
txtarea.Text = ""
txttechcoef.Text = ""
txtfte.Text = ""
txtdf.Text = ""
End If
Call Form_Load
End Sub
Private Sub cmdGuardarTodo_Click()

txt") Open App.txt") n_ofi = lenfile(App.Cargas .Textd End If End If Loop Close #1 Dim n_vid As Long n_vid = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas. n_cont. . .txt" For Random As #1 Len = Len(datos) Get #1.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. verifique que llenó todas las casillas". datos Close #1 .Text = "" Or txtareavidrio.Path & "/" & Trim(Directorio) & "/Datos/UMAs. .1.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1. 1)) = "O" Then If datos. datos End If Loop Close #1 Close #2 Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Path & "/" & Trim(Directorio) & "/Datos/General.Tso Text2.UmaAt Text1.borrado = 1 Then n_cont = n_cont + 1 datos.TVar. datos If datos.Path & "/" & Trim(Directorio) & "/Datos/General.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.borrado = 1 Then n_cont = n_cont + 1 datos.id = n_cont Put #2.Text = "" Or txtcoefaten. . datos If datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.borrado = 1 Then n_cont = n_cont + 1 datos.Text = "" Then MsgBox "Faltan datos.Path & "/" & Trim(Directorio) & "/Datos/General.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Len = Len(datos) Open App.id = n_cont Put #2. vbExclamation Else Oficina = cboVidrioCorr. n_vid .Text = "" Or cboVidrioCorr. n_cont.txt" For Random Access Read As #1 Len = Len( datos) Open App. datos End If Loop Close #1 Close #2 Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Le n(datos) Open App. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdGuardarVidrio_Click() If txtIgvid.txt") If n_vid . n_cont.1 = 0 Then n_vid = n_vid + 1 Open App.12 Dim n_cont As Integer n_uma = lenfile(App.txt") n_carg = lenfile(App.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.nombamb = Oficina Then Uma = datos.id = n_cont Put #2.Text Open App.Text = datos. datos If UCase(Left(datos. datos If datos.Text = "" Or txtucoefvid.

UmaAt = Uma datos.borrado = 1 Then n_cont = n_cont + 1 datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.id = n_cont Put #2.Text = "" txtucoefvid.txt") If n_luc .Text = "" txtcoefaten.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text datos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text datos. verifique que llenó todas las casillas".txt" For Random As #1 Len = Len(datos) Put #1.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1.Text = "" Text2.Clear If txtPotLuces. datos If datos. n_cont.Text datos.igvid = txtIgvid.Text = "" Text1.Path & "/" & Trim(Direc torio) & "/Datos/Cargas.Text = "" Or txtporcionluces.Text = "-Elegir Oficina-" txtIgvid.txt" For Random As #2 Len = Len(datos ) Do While Not EOF(1) Get #1.Ucoef = txtucoefvid.Text datos.orientacion = cboorientacionvidrio.tcarga = "VIDRIO" datos. .id = ListView3.ListItems.13 datos.txt" For Random Access Read As #1 Len = Len(datos) Open App.Text = "" End If Call Form_Load End Sub Private Sub cmdLuces_Click() ListView3. 1)) = "O" Then If datos. datos If UCase(Left(datos.Text datos.txt" Kill App.SelectedItem.Textd = Text2.Path & "/" & Trim(Directorio) & "/Datos/nCargas.Text = "" Then MsgBox "Faltan datos.Text Open App.1 = 0 Then n_luc = n_luc + 1 .nombamb = Oficina Then Uma = datos.Value datos.txt" 'Limpia las casillas de Texto cboVidrioCorr.SubItems(1) + 1.Text datos.TVar.area = txtareavidrio.Path & "/" & Trim(Directorio) & "/Datos/nCargas.borrado = Check3.Path & "/" & Trim(Directorio) & "/Datos/nCargas.Text datos.txt". App.salto = vbCrLf Open App.TVar = "CARGA" datos. . ListView3.Path & "/" & Trim(Directorio) & "/Datos/Cargas.UmaAt End If End If Loop Close #1 Dim n_luc As Long n_luc = lenfile(App. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App.Tso = Text1.SubItems(1) datos. datos Close #1 Dim n_cont As Integer Open App.Cargas .Atenuacion = txtcoefaten.Text = "" Or cboLucesC orr.txt" FileCopy App. vbExclamation Else Oficina = cboLucesCorr.Text = "" Or txtCoefDiseñoluces.Text = "" txtconstamb.SelectedItem.Ofcorr = cboVidrioCorr.Text = "" txtareavidrio.

Cargas - 14

Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_luc - 1, datos
Close #1
If n_luc > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
datos.tcarga = "LUCES"
datos.UmaAt = Uma
datos.Ofcorr = cboLucesCorr.Text
datos.Potluces = txtPotLuces.Text
datos.uso = txtporcionluces.Text
datos.tipoluces = cboLuces.Text
datos.inicio = cboinicioluces.Text
datos.duracion = cboDuracionluces.Text
datos.coefdis = txtCoefDiseñoluces.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, n_luc, datos
Close #1
cboLucesCorr.Text = "-Elegir Oficina-"
txtPotLuces.Text = ""
txtporcionluces.Text = ""
txtCoefDiseñoluces.Text = ""
End If
End If
Call Form_Load
End Sub

Private Sub cmdPared_Click()
ListView3.ListItems.Clear
If txtIgPared.Text = "" Or txtUcoefPar.Text = "" Or txtareapared.Text = "" Or txtcoefcolor.Text =
"" Or cboParedCorr.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboParedCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
Text1.Text = datos.Tso
Text2.Text = datos.Textd
End If
End If
Loop
Close #1
Dim n_pare As Long
n_pare = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_pare - 1 = 0 Then n_pare = n_pare + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_pare - 1, datos
Close #1
If n_pare > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
datos.tcarga = "PARED"
datos.UmaAt = Uma
datos.Ofcorr = cboParedCorr.Text
datos.IgPar = txtIgPared.Text
datos.Ucoef = txtUcoefPar.Text
datos.area = txtareapared.Text
datos.color = txtcoefcolor.Text
datos.Grupo = txtgrupo.Text
datos.orientacion = cboOrientacion.Text
datos.fte = txtTimeLag.Text

Cargas - 15

datos.inercia = txtdecfact.Text
datos.Tso = Text1.Text
datos.Textd = Text2.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, n_pare, datos
Close #1
cboParedCorr.Text = "-Elegir Oficina-"
txtIgPared.Text = ""
txtUcoefPar.Text = ""
txtareapared.Text = ""
txtcoefcolor.Text = ""
txtdecfact.Text = ""
txtTimeLag.Text = ""
End If
End If
Call Form_Load
End Sub

Private Sub cmdParticion_Click()
ListView3.ListItems.Clear
If txtIgPartic.Text = "" Or txtUcoefPartic.Text = "" Or txtAreaPartic.Text = "" Or txtTAdyacente.T
ext = "" Or cboParticionCorr.Text = "" Or txtTofic.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboParticionCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If
Loop
Close #1
Dim n_part As Long
n_part = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_part - 1 = 0 Then n_part = n_part + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_part - 1, datos
Close #1
If n_part > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
If TabStrip3.SelectedItem = "Partición" Then
datos.tcarga = "PARTICION"
End If
If TabStrip3.SelectedItem = "Piso" Then
datos.tcarga = "PISO"
End If

If TabStrip3.SelectedItem = "Techo Interno" Then
datos.tcarga = "TECHO INTERNO"
End If
datos.UmaAt = Uma
datos.Ofcorr = cboParticionCorr.Text
datos.IgPart = txtIgPartic.Text
datos.Ucoef = txtUcoefPartic.Text
datos.area = txtAreaPartic.Text
datos.TAdyacente = txtTAdyacente.Text
datos.Tso = txtTofic.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)

Cargas - 16
Put #1, n_part, datos
Close #1
cboParticionCorr.Text = "-Elegir Oficina-"
txtIgPartic.Text = ""
txtUcoefPartic.Text = ""
txtAreaPartic.Text = ""
txtTAdyacente.Text = ""
txtTofic.Text = ""
End If
End If
Call Form_Load
End Sub

Private Sub cmdPersonas_Click()
ListView3.ListItems.Clear
If txtnropersonas.Text = "" Or txtlhgpersonas.Text = "" Or txtshgpersonas.Text = "" Or cboPersonCo
rr.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboPersonCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If
Loop
Close #1
Dim n_per As Long
n_per = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_per - 1 = 0 Then n_per = n_per + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_per - 1, datos
Close #1
If n_per > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
datos.tcarga = "PERSONAS"
datos.UmaAt = Uma
datos.Ofcorr = cboPersonCorr.Text
datos.shg = txtshgpersonas.Text
datos.lhg = txtlhgpersonas.Text
datos.inicio = cboentrada.Text
datos.duracion = cbopermanencia.Text
datos.cantpersonas = txtnropersonas.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, n_per, datos
Close #1
cboPersonCorr.Text = "-Elegir Oficina-"
txtshgpersonas = ""
txtlhgpersonas.Text = ""
txtnropersonas.Text = ""
End If
End If
Call Form_Load
End Sub
Private Sub cmdSalir_Click()
End
End Sub

Private Sub cmdTecho_Click()
ListView3.ListItems.Clear
If cbocorrtecho.Text = "" Or txtTitech.Text = "" Or txtucoef.Text = "" Or txtarea.Text = "" Or txt

Cargas - 17

techcoef.Text = "" Or txtfte.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cbocorrtecho.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
Text1.Text = datos.Tso
Text2.Text = datos.Textd
End If
End If
Loop
Close #1
n_tech = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_tech - 1 = 0 Then n_tech = n_tech + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_tech - 1, datos
Close #1
If n_tech > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
datos.tcarga = "TECHO"
datos.UmaAt = Uma
datos.Ofcorr = cbocorrtecho.Text
datos.Ucoef = txtucoef.Text
datos.area = txtarea.Text
datos.color = txttechcoef.Text
datos.fte = txtfte.Text
datos.inercia = txtdf.Text
datos.cielo = cbocielo.Text
datos.titech = txtTitech.Text
datos.Tso = Text1.Text
datos.Textd = Text2.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, n_tech, datos
Close #1
cbocorrtecho.Text = "-Elegir Oficina-"
txtucoef.Text = ""
txtarea.Text = ""
txttechcoef.Text = ""
txtfte.Text = ""
txtdf.Text = ""
End If
End If
Call Form_Load
End Sub
Private Sub cmdTipos_Click()
frmTipos.Visible = True
End Sub

Private Sub cmdVidrio_Click()
ListView3.ListItems.Clear
If txtIgvid.Text = "" Or txtucoefvid.Text = "" Or txtareavidrio.Text = "" Or txtcoefaten.Text = ""
Or cboVidrioCorr.Text = "" Then
MsgBox "Faltan datos, verifique que llenó todas las casillas", vbExclamation
Else
Oficina = cboVidrioCorr.Text
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Le
n = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" Then

Cargas - 18
If datos.nombamb = Oficina Then
Uma = datos.UmaAt
End If
End If

Loop
Close #1
Dim n_vid As Long
n_vid = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_vid - 1 = 0 Then n_vid = n_vid + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_vid - 1, datos
Close #1
If n_vid > 30 Then
MsgBox "No se pueden agregar más de cinco (30) Cargas para esta versión del programa"
Else
datos.TVar = "CARGA"
datos.tcarga = "VIDRIO"
datos.UmaAt = Uma
datos.Ofcorr = cboVidrioCorr.Text
datos.igvid = txtIgvid.Text
datos.Ucoef = txtucoefvid.Text
datos.area = txtareavidrio.Text
datos.Atenuacion = txtcoefaten.Text
datos.orientacion = cboorientacionvidrio.Text
datos.Tso = Text1.Text
datos.Textd = Text2.Text
datos.borrado = 1
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Put #1, n_vid, datos
Close #1
cboVidrioCorr.Text = "-Elegir Oficina-"
txtIgvid.Text = ""
txtucoefvid.Text = ""
txtareavidrio.Text = ""
txtcoefaten.Text = ""
Text1.Text = ""
Text2.Text = ""
End If
End If
Call Form_Load
End Sub
Private Sub equipoten_Click()
frmTipos.Visible = False
End Sub
Private Sub Form_Load()
tabstrip1.Tabs.Item(6).Selected = True
Directorio = DatosGenerales.txtTituloProyecto.Text
Call TabStrip3_click
End Sub
Private Sub frmTipos_click()
frmTipos.Visible = False
End Sub
Private Sub ListView3_dblclick()
frmTipos.Visible = False
If TabStrip3.SelectedItem = "Techo" Then
cmdGuardartecho.Visible = True
Check1.Visible = True
cmdTecho.Visible = False
Check1.Value = 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Binary Access Read As #1 Len
= Len(datos)
Get #1, (ListView3.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
cbocorrtecho.Text = Trim(datos.Ofcorr)
txtucoef.Text = Trim(datos.Ucoef)

Text = Trim(datos.Visible = True cmdParticion.Text = Trim(datos.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.Text = Trim(datos.Tso) Text2.SelectedItem = "Vidrio" Then cmdGuardarVidrio.Text = Trim(datos.area) txtTAdyacente.Visible = True Check2.Text = Trim(datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = Trim(datos.Text = Trim(datos.SelectedItem.Value = 1 Open App.Text = Trim(datos.Visible = False Check4.Text = Trim(datos.Text = Trim(datos.SubItems(1) * Len(datos)) + 1.Text = Trim(datos.Text = Trim(datos.SelectedItem = "Piso" Or TabStrip3.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.Text = Trim(datos.Textd) End If If TabStrip3. datos Close #1 cboVidrioCorr.Text = Trim(datos. datos Close #1 cboParticionCorr.orientacion) Text1.Text = Trim(datos. (ListView3.Text = Trim(datos.Visible = True cmdPared.TAdyacente) txtTofic.color) txtfte. (ListView3.Visible = False Check3.Visible = True Check4.color) txtgrupo.Ofcorr) txtIgPared. datos Close #1 cboParedCorr.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.SubItems(1) * Len(datos)) + 1.SelectedItem.Atenuacion) cboorientacionvidrio.inercia) cbocielo.SelectedItem = "Pared" Then cmdGuardarPared.SelectedIt em = "Techo Interno" Then cmdGuardarParticion.Text = Trim(datos.area) txtcoefaten.19 txtarea.Value = 1 Open App.area) txtcoefcolor.SelectedItem = "Partición" Or TabStrip3.Visible = False Check2.Text = Trim(datos.Ucoef) txtAreaPartic.area) txttechcoef.fte) txtdf.Ofcorr) txtIgvid.Textd) End If If TabStrip3.Tso) Text2.Text = Trim(datos.Text = Trim(datos.SelectedItem.Text = Trim(datos.Text = Trim(datos.Value = 1 Open App.Cargas .titech) Text1.orientacion) Text1.Text = Trim(datos. (ListView3.Ofcorr) txtIgPartic.SubItems(1) * Len(datos)) + 1.Ucoef) txtareapared.igvid) txtucoefvid.Textd) txtdecfact.Path & "/" & Trim(Directorio) & "/Datos/Cargas.SelectedItem = "Luces" Then cmdGuardarLuces.Ucoef) txtareavidrio.Text = Trim(datos.Text = Trim(datos.Text = Trim(datos.Grupo) cboOrientacion.Text = Trim(datos.Text = Trim(datos.inercia) txtTimeLag.fte) End If If TabStrip3.Visible = True cmdVidrio.Text = Trim(datos.Text = Trim(datos.Visible = True Check3.Tso) Text2.Visible = True .Text = Trim(datos.IgPar) txtUcoefPar.Text = Trim(datos.IgPart) txtUcoefPartic.cielo) txtTitech.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = Trim(datos.Tso) End If If TabStrip3.

Visible = True Check8.Path & "/" & Trim(Directorio) & "/Datos/Cargas.SelectedItem.SubItems(1) * Len(datos)) + 1.uso) cboColocacion.Campana) End If If TabStrip3.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = Trim(datos.SubItems(1) * Len(datos)) + 1.Visible = False Check8.Text = Trim(datos.eficiencia) txtusoEquipo.shg) txtlhgpersonas.Text = Trim(datos.Visible = True cmdAparato.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Tcolocacion) cboInicioEquipos. (ListView3.SelectedItem.colocacion) txtTcolocacion.SubItems(1) * Len(datos)) + 1.SelectedItem = "Equipos de Potencia" Then cmdGuardarEquipos.SelectedItem.Text = Trim(datos.Text = Trim(datos.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.Value = 1 Open App.Text = Trim(datos.Visible = True Check7.Text = Trim(datos.Visible = True Check6.Text = Trim(datos.Visible = True cmdLuces.Value = 1 Open App.Text = Trim(datos.Visible = False Open App.20 Check5.Text = Trim(datos.Ofcorr) txtPotLuces.Visible = False Check5.Text = Trim(datos. datos Close #1 cboAparatosCorr.duracion) cbocampanaaparatos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.IgEquipos) End If If TabStrip3.Visible = True cmdPersonas.Text = Trim(datos.Text = Trim(datos.Ofcorr) txtIgAparatos.Ofcorr) End If End Sub . (ListView3.SelectedItem. (ListView3.Text = Trim(datos.Value = 1 cmdEquipos.Visible = False Check6.uso) cboLuces.duracion) txtIgEquipos.shg) txtlhg.Cargas .inicio) cbopermanencia.inicio) cboDuracionEquipos.Visible = True Check7.Text = Trim(datos.lhg) cboentrada.Text = Trim(datos. datos Close #1 txtnropersonas.Ofcorr) txtPotenciaEquipos.SubItems(1) * Len(datos)) + 1.Text = Trim(datos.Text = Trim(datos.duracion) txtCoefDiseñoluces.coefdis) End If If TabStrip3.Text = Trim(datos.SelectedItem = "Aparatos" Then cmdGuardarAparatos.inicio) cboDuracionluces.Potluces) txtporcionluces.Text = Trim(datos. datos Close #1 cboEquiposCorr.Text = Trim(datos.SelectedItem = "Personas" Then cmdGuardarPersonas.Text = Trim(datos.Igaparatos) txtshg.Text = Trim(datos.Text = Trim(datos. (ListView3.Text = Trim(datos.lhg) cboinicioaparatos.tipoluces) cboinicioluces.Text = Trim(datos.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.cantpersonas) txtshgpersonas. datos Close #1 cboLucesCorr.Text = Trim(datos.inicio) cboduracionaparatos.Text = Trim(datos.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.duracion) cboPersonCorr.Text = Trim(datos.potencia) txtEficienciaEquipos.Value = 1 Open App.txt" For Binary Access Read As #1 Len = Len(datos) Get #1.

Visible = False particion.21 Private Sub TabStrip1_Click() If tabstrip1.Hide tabstrip1.Visible = False Check1. "PK". 700.Visible = False personas.Selected = False End If If tabstrip1. 0 ListView3. "Oficina".Visible = True pared. "fte".Selected = False End If If tabstrip1.Tabs.Add .Visible = False equipoten. "ID".Clear frmTipos.Hide tabstrip1. "PK".Selected = False End If If tabstrip1. 1200. 2 ListView3.ColumnHeaders.Add .Visible = False luces.Show Me.Visible = False txtCoefDiseñoluces.BackColor = &H80000011 If TabStrip3. 2 .Clear ListView3.Add . "Coef. "ID".Item(6). "TL [h]".Cargas . 2 ListView3.Locked = True txtCoefDiseñoluces.ColumnHeaders.SelectedItem = "Condiciones de la(s) UMA(s)" Then CondicionesUma. "Tipo de Carga".Item(6). "Perte". 2 ListView3.Add . 2 ListView3.Tabs.Visible = False vidrio.Show Me.ColumnHeaders. 1200.Tabs.ColumnHeaders.Hide tabstrip1.Item(6).Item(6). Transf.ColumnHeaders. "Área".Visible = False cmdTecho. "tipo". "Coef. "Cielo Raso".Add .Visible = False aparatos. "Area".Visible = True ListView3.SelectedItem = "Inicio" Then inicio. "Tcar".ColumnHeaders.Hide tabstrip1. 1300. 1200. Techo".ColumnHeaders.Tabs.ColumnHeaders.SelectedItem = "Datos Generales" Then DatosGenerales. "cielo".ColumnHeaders.ListItems.ColumnHeaders.Tabs. "U".SelectedItem = "Condiciones Exteriores" Then CondicionesExteriores.Item(6).SelectedItem = "Techo" Then techo.Show Me.Hide tabstrip1. "Tipo Techo". 2 ListView3.".ColumnHeaders.Show Me.Visible = False cmdGuardartecho. 700.SelectedItem = "Condiciones de Ambiente(s)" Then CondicionesOficina.Selected = False End If If tabstrip1.Add . 2 ListView3.Add . "Ctech". 2 ListView3. 1700. 2300.Show Me.Add .Add .Add .Selected = False End If End Sub Private Sub TabStrip3_click() canttech = 0 cantpared = 0 cantvid = 0 cantpart = 0 cantpiso = 0 canttechint = 0 cantluces = 0 cantapara = 0 cantequipos = 0 cantpersonas = 0 ListView3. 0 ListView3.

SubItems(8) = Trim(datos.SubItems(3) = Trim(datos.Visible = True vidrio.Grupo) itmX.borrado = 1 Then Set itmX = ListView3. "grupo". 2 ListView3.Ucoef) itmX. "Orientacion".Clear ListView3. 2 ListView3.Add . 13)) = "TECHO " And datos. "Oficina". "area".tcarga. 2 i = 0 Open App. . 13)) = "PARED " And datos.Cargas .tcarga) itmX. "orien".Add(1. "ID". "Coef.ListItems.ColumnHeaders.SubItems(7) = Trim(datos.Visible = False luces. "Grupo".Visible = True ListView3. "Coef". .fte) itmX. 2 ListView3.ColumnHeaders.ColumnHeaders. 2 ListView3.borrado = 1 Then Set itmX = ListView3.SubItems(9) = Trim(datos.". 1200.SubItems(6) = Trim(datos.SubItems(1) = i .ColumnHeaders.SubItems(2) = Trim(datos. 800.color) itmX.id) itmX.Visible = False particion.Add .SubItems(4) = Trim(datos.titech) itmX.Add .ColumnHeaders. Color".id) itmX. "Área Pared". "Tipo de Carga".Visible = False pared.ColumnHeaders.color) itmX.Path & "/" & Trim(Directorio) & "/Datos/Cargas.cielo) itmX.Add .1 itmX. datos.Add . 2 ListView3. . "corr". Transf. 800.Text = canttech End If If TabStrip3.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "Coef.area) itmX.ColumnHeaders.22 Dim itmX As ListItem i = 0 Open App. datos i = i + 1 If UCase(Left(datos. "PK".SubItems(8) = Trim(datos.Ucoef) itmX. "coefcol".ColumnHeaders. .Visible = False cmdGuardarPared. 1100.Visible = False personas.Visible = False Check2.SubItems(3) = Trim(datos. "tcar".tcarga. "ID". 2 ListView3.SubItems(6) = Trim(datos.Visible = False cmdPared.Visible = False aparatos.SelectedItem = "Pared" Then techo.SubItems(9) = Trim(datos.IgPar) Set itmX = Nothing cantpared = cantpared + 1 End If Loop Close #1 .txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.SubItems(5) = Trim(datos.SubItems(4) = Trim(datos.Add .SubItems(1) = i .Path & "/" & Trim(Directorio) & "/Datos/Cargas.ListItems.ColumnHeaders.Ofcorr) itmX. 2 ListView3. 0 ListView3.area) itmX. "ig".SubItems(5) = Trim(datos.Add .Visible = False equipoten.Add .ColumnHeaders.Add . "Iguales".SubItems(7) = Trim(datos.orientacion) itmX.1 itmX. datos.Ofcorr) Set itmX = Nothing canttech = canttech + 1 End If Loop Close #1 txtcanttech. 0 ListView3. 2300.SubItems(2) = Trim(datos.Add . datos i = i + 1 If UCase(Left(datos. 1700.tcarga) itmX.ColumnHeaders.Add(1. 1100. "PK". 1300.

ColumnHeaders.Visible = False personas.id) itmX. datos i = i + 1 If UCase(Left(datos. 0 ListView3.ColumnHeaders.ColumnHeaders. 2 ListView3. 1300.Add .Visible = False pared.SelectedItem = "Partición" Then techo.Visible = True luces.Ucoef) itmX.SubItems(4) = Trim(datos.Ofcorr) itmX. 13)) = "VIDRIO " And datos.Visible = False vidrio. "ucoef".borrado = 1 Then Set itmX = ListView3. "ID".igvid) Set itmX = Nothing cantvid = cantvid + 1 End If Loop Close #1 txtcantvidrio. 2 ListView3. Transf.Visible = False luces.Add . 1100. "ID". 0 ListView3.ColumnHeaders.Visible = False pared. "Iguales".Visible = False vidrio. "PK".txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Visible = False personas. 800.1 itmX.Visible = False aparatos.SubItems(6) = Trim(datos.ColumnHeaders.Add .ColumnHeaders. "Carga". 2 i = 0 Open App. "Coef.Add(1. 1200.Add .Add . 1000. "area". "Orien".Visible = True ListView3.Visible = False Check3.Add .ColumnHeaders. 700. "Oficina". "Oficina". 2 ListView3.orientacion) itmX. 2 ListView3. "Temp.Clear ListView3. "PK". "Carga".Text = cantvid End If If TabStrip3. "Área".Add .Visible = False Check4. 1100. 1500. 0 ListView3.Add .ListItems.ColumnHeaders.area) itmX. "ID". 2300.ColumnHeaders.ColumnHeaders. 1700. 2300. 0 ListView3. "coefat". "PK".ColumnHeaders.Atenuacion) itmX. . 1700.Visible = False cmdGuardarParticion.Add . 2 ListView3.Visible = False equipoten.Add .Add .SubItems(1) = i .23 txtcantpared. "Temp. "Atenuación".Add . "Orientación".Visible = False equipoten. "corr". "ig".ColumnHeaders. "Coef. 2 . "Área Vidrio". "ID".SelectedItem = "Vidrio" Then techo.ColumnHeaders.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Add .SubItems(8) = Trim(datos. Transf. "coefat".Add .ColumnHeaders.ColumnHeaders.Visible = False particion.Add .Text = cantpared End If If TabStrip3.Visible = False cmdVidrio. 2 ListView3. 2 ListView3. 2 ListView3.Add . "Iguales". "PK". 2 ListView3.Visible = True particion.tcarga) itmX. 900. 2 ListView3.ColumnHeaders.SubItems(3) = Trim(datos.Visible = False cmdGuardarVidrio. "to".Visible = False cmdParticion. datos.".Add .Visible = False aparatos. Ofic". "Tipo de Carga".ColumnHeaders.SubItems(2) = Trim(datos.Clear ListView3. Adyacente". "area". "ig". . 2 ListView3.".Add .ColumnHeaders. "corr". 1100.tcarga. 2 ListView3.Visible = True ListView3. "Tipo de Carga".ColumnHeaders.Cargas .SubItems(5) = Trim(datos. "ucoef".SubItems(7) = Trim(datos.ColumnHeaders.

id) itmX.Visible = False Check4. "Área".SubItems(6) = Trim(datos.Text = cantpart End If If TabStrip3. 700.Clear ListView3. 2 ListView3.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.ColumnHeaders.Cargas .Ofcorr) itmX.Visible = False cmdParticion.TAdyacente) itmX.ColumnHeaders.SubItems(8) = Trim(datos.Add(1.ColumnHeaders.SubItems(7) = Trim(datos.SelectedItem = "Piso" Then techo.Add .Text = cantpiso End If If TabStrip3. 13)) = "PISO " Then Set itmX = ListView3.Tso) itmX.Visible = False personas. "coefat". .id) itmX.Visible = True ListView3.Add(1. 2 i = 0 Open App.SubItems(1) = i .Tso) itmX. "ID". 0 ListView3. 900.ColumnHeaders.Path & "/" & Trim(Directorio) & "/Datos/Cargas. "PK".Add .ListItems. "Coef. Transf. . 2 ListView3. Adyacente". 1500.SubItems(1) = i . datos i = i + 1 If UCase(Left(datos.SubItems(6) = Trim(datos.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.SubItems(5) = Trim(datos.tcarga) itmX.Visible = False particion.SubItems(7) = Trim(datos. "area". 1200.ColumnHeaders. "to".Add . "Oficina". 1000.Visible = False vidrio. "PK". . "Temp. "Iguales".ColumnHeaders. "Temp. 2300. datos.1 itmX. datos.Add .SubItems(4) = Trim(datos.Ucoef) itmX.SubItems(2) = Trim(datos.ColumnHeaders.SubItems(4) = Trim(datos. .TAdyacente) itmX. 1700.Add .SubItems(3) = Trim(datos.area) itmX.tcarga) itmX.IgPart) Set itmX = Nothing cantpiso = cantpiso + 1 End If Loop Close #1 txtcantparticion.Visible = False cmdGuardarParticion.Visible = False pared. "Carga". "ucoef".ColumnHeaders.ColumnHeaders.Ofcorr) itmX.Visible = False aparatos. 2 ListView3.SubItems(3) = Trim(datos.SelectedItem = "Luces" Then . "ID".ListItems.Add .Ucoef) itmX. 2 ListView3.1 itmX.SubItems(5) = Trim(datos.tcarga.SubItems(8) = Trim(datos. datos i = i + 1 If UCase(Left(datos.tcarga. 2 ListView3.IgPart) Set itmX = Nothing cantpart = cantpart + 1 End If Loop Close #1 txtcantparticion. Ofic".Add . "corr". "ig". "Tipo de Carga".Visible = True luces.Visible = False equipoten. 13)) = "PARTICION " Then Set itmX = ListView3. 2 ListView3. 0 ListView3.Path & "/" & Trim(Directorio) & "/Datos/Cargas.24 i = 0 Open App.ColumnHeaders.SubItems(2) = Trim(datos.Add .Add .area) itmX.".

SubItems(2) = Trim(datos.Visible = False luces.Potluces) itmX.Add . "dur". 2300. "Duración". "Potencia".Add(1.Visible = True equipoten.Visible = False equipoten.Add .Add . 0 ListView3. . "Corr". 700.ListItems.ColumnHeaders. "Camp".25 techo.Path & "/" & Trim(Directorio) & "/Datos/Cargas. 2 ListView3.Add . "ini".ColumnHeaders.Add . 1300.1 itmX. 800. 2300. 2 ListView3. "Tipo de Carga". 900. 2 ListView3.ColumnHeaders. "tipo".ColumnHeaders. 1300. "PK".ColumnHeaders. "Corr".Visible = False vidrio. 2 ListView3.Visible = False vidrio.Visible = False luces. "ID".Visible = False Check6.Clear ListView3. "Factor de Balasto".Add . "Inicio". 2 i = 0 Open App. 1500. "Tipo de Luces". 1700.SubItems(9) = Trim(datos. 900.ColumnHeaders.Add . 1700.ColumnHeaders. "Tipo de Carga".Add . 1600. 2 ListView3.ColumnHeaders.Add .Add .ColumnHeaders.ColumnHeaders. "Carga".SubItems(7) = Trim(datos.ColumnHeaders. "Calor Latente".Visible = True ListView3.Cargas . "Campana".SubItems(4) = Trim(datos. 0 ListView3. .Visible = True ListView3. 2 ListView3.Add .uso) itmX. "uso". "SGH".tcarga.ColumnHeaders. 0 ListView3.Text = cantluces End If If TabStrip3.SelectedItem = "Aparatos" Then techo.tcarga) itmX.Visible = False pared. "Coef". 2 ListView3. 2 ListView3. datos. 900. "ini".tipoluces) itmX. 2 ListView3. "Calor Sensible".Visible = False aparatos.Visible = False Check5. "% de uso". 900.Add .Clear ListView3. 13)) = "LUCES " Then Set itmX = ListView3.Visible = True aparatos.SubItems(8) = Trim(datos.duracion) itmX. 2 ListView3.Visible = False personas.coefdis) itmX.ColumnHeaders.ColumnHeaders.SubItems(5) = Trim(datos. "Cantidad".Add .Visible = False cmdAparato. "PK". "Oficina".Add . "LGH".ColumnHeaders. "ID". "PK". "potencia". "Inicio".Visible = False personas.id) itmX.ColumnHeaders. datos i = i + 1 If UCase(Left(datos.Visible = False cmdGuardarAparatos.Visible = False particion. "Cant".txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Visible = False cmdGuardarLuces.ColumnHeaders.Add .SubItems(1) = i .ColumnHeaders. 2 ListView3.Add . "ID".Add .inicio) itmX.Visible = False cmdLuces. "Oficina".SubItems(3) = Trim(datos.Add .ColumnHeaders. "Carga". "dur". 2 ListView3. "ID". 2 ListView3.Add . "PK".SubItems(6) = Trim(datos. 0 ListView3.ColumnHeaders.Ofcorr) Set itmX = Nothing cantluces = cantluces + 1 End If Loop Close #1 txtcantLuces.Add . 2 i = 0 . 1000.Visible = False particion. "Duración".ColumnHeaders.ColumnHeaders.Visible = False pared. 1000. 2 ListView3.

Igaparatos) Set itmX = Nothing cantapara = cantapara + 1 End If Loop Close #1 txtcantapara. "dur".ColumnHeaders.ColumnHeaders.SubItems(10) = Trim(datos. .tcarga.Visible = False pared.ColumnHeaders. "PK". "Cantidad".ColumnHeaders. 1200. "Carga".Visible = False luces.Path & "/" & Trim(Directorio) & "/Datos/Cargas.ColumnHeaders. 2 i = 0 Open App. "Colocación".SubItems(2) = Trim(datos. 2 ListView3. 2 ListView3.Add . "ID". 2 ListView3.colocacion) itmX.Visible = False cmdEquipos.Cargas .1 itmX. "Inicio". "uso". "potencia".Add(1.id) itmX. "ini". "ID".SubItems(3) = Trim(datos.tcarga.Add(1.SubItems(5) = Trim(datos.Visible = False Check7.SubItems(4) = Trim(datos. 1400.Add .1 itmX.Add . datos. "Porcion en Uso".SubItems(8) = Trim(datos. 2 ListView3.IgEquipos) Set itmX = Nothing cantequipos = cantequipos + 1 End If Loop Close #1 .Add .SubItems(5) = Trim(datos. "Eficiencia".Visible = False vidrio. "Potencia". 1100.tcarga) itmX.Ofcorr) itmX.ColumnHeaders.id) itmX.ColumnHeaders.SubItems(3) = Trim(datos. 13)) = "EQUIPOTENCIA " Then Set itmX = ListView3.SubItems(7) = Trim(datos. 900.Visible = False particion. .SubItems(1) = i .SubItems(8) = Trim(datos. 900.Ofcorr) itmX. 1100.26 Open App. 2 ListView3.Visible = True personas.SubItems(2) = Trim(datos.Add . 2300.Clear ListView3.lhg) itmX.ColumnHeaders.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.potencia) itmX. datos.duracion) itmX. 2 ListView3.SubItems(7) = Trim(datos.ColumnHeaders. "Duración". "Efi".Add . 0 ListView3. "Tipo de Carga".SelectedItem = "Equipos de Potencia" Then techo.Visible = False cmdGuardarEquipos. "PK".Add .Add . datos i = i + 1 If UCase(Left(datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.uso) itmX.duracion) itmX.ListItems.ColumnHeaders.ColumnHeaders. "Corr". "col". 700.SubItems(1) = i .tcarga) itmX.inicio) itmX.Add .shg) itmX.Text = cantapara End If If TabStrip3.SubItems(6) = Trim(datos.Visible = False aparatos. 0 ListView3. 13)) = "APARATOS " Then Set itmX = ListView3.Add .Add .eficiencia) itmX.inicio) itmX.SubItems(9) = Trim(datos. datos i = i + 1 If UCase(Left(datos. 2 ListView3.SubItems(9) = Trim(datos.Visible = False equipoten. 2 ListView3.ListItems.SubItems(4) = Trim(datos. "cant". "Oficina".Visible = True ListView3. . . 1700.Campana) itmX.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.ColumnHeaders.SubItems(6) = Trim(datos.

".ColumnHeaders. 2 ListView3.SubItems(8) = Trim(datos.Visible = False pared. 13)) = "PERSONAS " Then Set itmX = ListView3. Ofic".SubItems(1) = i .cantpersonas) Set itmX = Nothing cantpersonas = cantpersonas + 1 End If Loop Close #1 txtcantpersonas. "ID".txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "Calor Sensible".Visible = False personas. 2 ListView3.ColumnHeaders. 700. "to".Visible = False equipoten. "PK".Add . 2300. "Permanencia".ColumnHeaders.1 itmX. "ini". "dur".Add .Path & "/" & Trim(Directorio) & "/Datos/Cargas. 2 ListView3.Add .Add .tcarga) itmX.ColumnHeaders. 2 ListView3.ColumnHeaders.SubItems(6) = Trim(datos.Visible = False vidrio. "Oficina". 2 ListView3.ColumnHeaders. 2 ListView3. 2 ListView3.Visible = False vidrio.SubItems(4) = Trim(datos. 1700.Visible = False Check4.ColumnHeaders.Visible = False cmdGuardarParticion. 2 .tcarga.Cargas .Visible = False cmdParticion. "ID". "area".Visible = False cmdPersonas. "PK". "Carga".Add .shg) itmX. Transf.ColumnHeaders. 2 i = 0 Open App.Add .SubItems(7) = Trim(datos.Add .Add(1. 0 ListView3.ColumnHeaders. "Temp.Add .ColumnHeaders.ColumnHeaders.Visible = False pared.Add .Text = cantequipos Call cboColocacion_click End If If TabStrip3. "PK". "Entrada".ColumnHeaders.ColumnHeaders. "Cantidad". "LGH". "Tipo de Carga".duracion) itmX.ColumnHeaders.Add .ColumnHeaders.Add . 2 ListView3. "ID".lhg) itmX. 900.ColumnHeaders. "cant". "Temp. datos i = i + 1 If UCase(Left(datos.SubItems(5) = Trim(datos.Visible = True luces. 0 ListView3. "Tipo de Carga". 1500. datos.Visible = False particion.Ofcorr) itmX. "Oficina". .Clear ListView3. "ucoef". 0 ListView3.Visible = False personas. Adyacente".Add . 2300.Visible = False Check8. 2 ListView3.ColumnHeaders. "ID". . 1200. 900.SelectedItem = "Techo Interno" Then techo.Visible = True ListView3.Add .Add . 2 ListView3.Visible = True ListView3.ColumnHeaders. 1000. "Coef. "SGH".Visible = False aparatos.inicio) itmX.Text = cantpersonas End If If TabStrip3. "Área". "corr". "PK". "Calor Latente".Add . "Corr".Visible = True cmdGuardarPersonas.Add . 0 ListView3.SubItems(3) = Trim(datos. 1300.ColumnHeaders.Visible = False particion.Visible = False luces. "Carga".Add .ListItems. 1300.Clear ListView3. 1300.SubItems(2) = Trim(datos. 2 ListView3.Visible = False aparatos.id) itmX.27 txtCantEquipos.Visible = False equipoten. 1700. "coefat".SelectedItem = "Personas" Then techo.

Show cboColocacion. 13)) = "TECHO INTERNO" Then Set itmX = ListView3.TVar. datos i = i + 1 If UCase(Left(datos.TAdyacente) itmX.Text = canttechint End If End Sub Private Sub txtCoefDiseñoluces_Dblclick() txtCoefDiseñoluces. .IgPart) Set itmX = Nothing canttechint = canttechint + 1 End If Loop Close #1 txtcantparticion. 1)) = "O" And datos.Locked = False txtCoefDiseñoluces.SubItems(6) = Trim(datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. 2 i = 0 Open App.Ofcorr) itmX.Add(1.Show End Sub Private Sub txtUcoefPar_click() .tcarga.txt" For Random Access Read As #1 Le n = Len(datos) Do While Not EOF(1) Get #1.Tso End If Loop Close #1 End If End Sub Private Sub txtucoef_Click() CoefsTecho. .area) itmX.SubItems(5) = Trim(datos.Text = datos.SubItems(2) = Trim(datos. 900.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.tcarga) itmX.Show End Sub Private Sub txtshgpersonas_dblClick() CalorPersona. datos i = i + 1 If UCase(Left(datos.SubItems(4) = Trim(datos. "Iguales".28 ListView3.Text = "-Elegir Oficina-" Then MsgBox "Se debe elegir una oficina para poder saber la temperatura de la misma" Else Open App.SubItems(1) = i .nombamb = cboParticionCorr.id) itmX.Cargas . "ig".Show End Sub Private Sub txtTofic_click() If cboParticionCorr.BackColor = &H80000005 End Sub Private Sub txtlhg_Click() Call txtshg_click End Sub Private Sub txtPotenciaEquipos_click() MotoresElectricos.Text = "" End Sub Private Sub txtshg_click() GananciaAparatos. .1 itmX.Ucoef) itmX.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Tso) itmX.SubItems(8) = Trim(datos.SubItems(3) = Trim(datos.ListItems.SubItems(7) = Trim(datos. datos.ColumnHeaders.Add .Text Then txtTofic.

Text = 0 txtUcoefPartic.Text1.BackColor = &H80000005 End Sub .Show End Sub Private Sub txtUcoefPartic_click() CalculoU.Show CalculoU.Cargas .29 CoefsPared.

de Aparatos elementos Paredes Iguales Iguales iguales de Calor [W/(kg °K)] Coeficiente Ganancia Porción Potencia en Nominal de uso deCalor Transferencia Sensible [%] [W] Coeficiente de Transferencia de Calor [W/(m^2 °K)] [W] Área Ganancia del Techo de calor [m^2] sensible Transferencia de Calor [W/(m^2 Calor °K)] Tipo Eficiencia de Luces de [%] [W] Área de Superficie Cristalina [W/(m^2 °K)] Coeficiente Área Ganancia de Pared depor Calor Exterior Color Latente del [m^2] Área dede Ganancia Factor Porcion de Pared reducción de la calor potencia de Partición Latente en Techo [W] Coeficiente por [m^2] (de uso balasto)(típico de [m^2] 0 a[W] 1) Coeficiente de Atenuación Color de la Pared Tipo de Techo TIPO A: Motor y Máquina dentro del ambiente Temperatura Temperatura Retraso Hora Tipo de de Colocación Temporal Inicio Interna del [h] Hora a la que entra del Ambiente [°C]TIPO Ambiente Contiguo [°C] B: Motor afuera y Máquina Hora de Inicio Factor de Decremento dentro del ambiente Temperatura Temperatura Duración Hora de Inicio Externa del Decremento Grupo de Pared a la alDuración Ambiente [°C] TIPO Ambiente [°C] C: Motor dentro y Máquina fuera Horas que(Tiempo permanece que pertenece ¿Cielo Raso? en el ambiente encendido) delSólo) ambiente Campana Duración de (Hacer Click Orientación t ió TIPO D: Motor y Máquina fuera del ambiente Oficina a la que Corresponde .Cantidad Coeficiente Nro. Potencia de equipos Vidrios Personas Instalada de transferencia Iguales similares [W] Nro.

SubItems(1) = i .Add . 1)) = "A" Or UCase(Left(datos.ColumnHeaders. 2 ListView1.Descripcion.Decrem) Set itmx2 = Nothing End If Loop Close #1 End Sub Private Sub ListView2_Dblclick() Open App.Path & "/Tablas/Tabla28_11. "PK".Ufact) Cargas. "Decremento".Add .ColumnHeaders. .Text = Trim(datos2.ListItems. "c". 1000. 800.Add .cfl" For Binary Access Read As #1 Len = Len(datos2) Get #1. .CoefsPared .ColumnHeaders. "L [mm]".ColumnHeaders.SubItems(2) = Trim(datos. 1200. "Descripción".Codigo.Add . "Descripción".Add .cfl" For Random As #1 Len = Len(datos2) Do While Not EOF(1) Get #1.TimeL) Cargas.SubItems(5) = Trim(datos2. 1300.Long) itmX. . datos2 i = i + 1 If UCase(Left(datos2.Descripcion) itmx2.id) itmX.Text = Trim(datos2. 0 ListView2. "l".Clear Dim itmx2 As ListItem i = 0 Open App.ListItems.ColumnHeaders. 1)) = "C" Or UCase(Left(datos.ColumnHeaders.Descripcion) itmX. "PK".Text = Trim(datos2.txtdecfact.SubItems(3) = Trim(datos.SubItems(1) = i .Add .Codigo) itmX. "r". "R [(m^2*K)/W]". "PK".Clear Dim itmX As ListItem i = 0 Open App. "d". 3000. 2 ListView1.SubItems(2) = Trim(datos2. datos2. 3000. "Codigo". 2 ListView2.Add . "c".txtUcoefPar.Hide End Sub Private Sub TabStrip1_Click() .ColumnHeaders. (ListView2.Add . "ID". 0 ListView1. 1)) = "B" Or UCase(Left(dato s.ColumnHeaders.SubItems(4) = Trim(datos. 2 ListView2.Path & "/Tablas/Tabla28_19. 1)) = "E" Then Set itmX = ListView1. 2 ListView2. "PK".1 itmX. "ID".Add(1. datos.Add .ColumnHeaders. 1300.ColumnHeaders.ColumnHeaders. 1)) = "C" Then Set itmx2 = ListView2. "ID". 2 ListView1.SubItems(3) = Trim(datos2. 1)) = "D" Or UCase(Left(datos. 0 ListView2. .Ufact) itmx2.Add .txtTimeLag. 2 ListView2.Add .Clear ListView1.ListItems.ListItems.Codigo.Clear ListView2.Add .Codigo.Codigo. 1000. "t".ColumnHeaders.SubItems(6) = Trim(datos2.TimeL) itmx2.Tipo) Cargas. 0 ListView1. datos2 Close #1 Cargas.Add(1.Res) Set itmX = Nothing End If Loop Close #1 ListView2.SubItems(5) = Trim(datos.id) itmx2.Text = Trim(datos2.1 Dim datos As Tabla11 Dim datos2 As Tabla14 Private Sub Form_Load() ListView1.cfl" For Random As #1 Len = Len(datos) Do While Not EOF(1) Get #1. 800.txtgrupo.SelectedItem.ColumnHeaders.Tipo) itmx2. 0 ListView2. "l".1 itmx2.SubItems(4) = Trim(datos2. "DF". "r".Add .SubItems(1) * Len(datos2) + 1). 2 ListView1.ColumnHeaders.ColumnHeaders.Codigo.Path & "/Tablas/Tabla28_19. datos i = i + 1 If UCase(Left(datos. "U [W/(m^2*K)]". "d". "Tipo".Decrem) Me. "ID".

2 If tabstrip1.CoefsPared .SelectedItem = "Selección de una Pared Similar" Then frmTabla11.Visible = True frmTabla11.Visible = True frmTabla19.Visible = False End If End Sub .Visible = False End If If tabstrip1.SelectedItem = "Elección de una Pared Establecida" Then frmTabla19.

Si el tipo de pared por capas suyo esta dentro de los de la lista. seleccionelo haciendo doble clic .

cfl" For Random As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "PK". "l".Text = Trim(datos2. 3000.SubItems(1) * Len(datos2) + 1). "PK". 1000. "l". "PK".Add .txtfte.SubItems(6) = Trim(datos2. datos2.ColumnHeaders.1 itmx2. "d".1 Dim datos As Tabla11 Dim datos2 As Tabla14 Private Sub Form_Load() ListView1.Clear Dim itmx2 As ListItem i = 0 Open App. "c".ColumnHeaders. 1)) = "C" Or UCase(Left(datos.ListItems. . datos2 Close #1 Cargas. "c". "t".SubItems(1) = i .Tipo) itmx2.txtdf.Path & "/Tablas/Tabla28_14.ColumnHeaders.Tipo) Cargas.Codigo.ColumnHeaders.Add .Hide End Sub .SelectedItem.CoefsTecho .Decrem) Me.id) itmx2.Descripcion) itmX. 2 ListView2.Codigo.Res) Set itmX = Nothing End If Loop Close #1 ListView2.Add .ListItems.Clear ListView1. "ID". 2 ListView1. 2 ListView2. 1)) = "B" Or UCase(Left(dato s.cfl" For Random As #1 Len = Len(datos2) Do While Not EOF(1) Get #1.TimeL) itmx2.ColumnHeaders. 1000.SubItems(5) = Trim(datos2.Add . . 2 ListView2.ListItems. 0 ListView2.Add .Codigo) itmX.Text = Trim(datos2.ColumnHeaders. (ListView2. 0 ListView1.Long) itmX.Descripcion. 1)) = "D" Or UCase(Left(datos. 1)) = "A" Or UCase(Left(datos.SubItems(3) = Trim(datos2.Add . 2 ListView2.Add(1. "R [(m^2*K)/W]".ColumnHeaders.Add . "ID".ListItems. "L [mm]". "r".Add .ColumnHeaders. "Decremento".ColumnHeaders.ColumnHeaders.Codigo. "Descripción". "Descripción".Add . datos i = i + 1 If UCase(Left(datos.Clear Dim itmX As ListItem i = 0 Open App.SubItems(5) = Trim(datos.Path & "/Tablas/Tabla28_14. "Codigo".SubItems(2) = Trim(datos2.1 itmX. "Tipo".id) itmX. "ID".Add . 3000. "DF".SubItems(1) = i . 1000.ColumnHeaders. "d".cfl" For Binary Access Read As #1 Len = Len(datos2) Get #1.Codigo.ColumnHeaders. "U [W/(m^2*K)]". "PK".Ufact) itmx2.Codigo.TimeL) Cargas. 0 ListView1.SubItems(2) = Trim(datos. 1300. .Add .Ufact) Cargas.Text = Trim(datos2.ColumnHeaders. 800. 2 ListView1.Text = Trim(datos2.SubItems(3) = Trim(datos. "ID".Path & "/Tablas/Tabla28_11. "r".Add .Descripcion) itmx2. 0 ListView2. 800.SubItems(4) = Trim(datos.Decrem) Set itmx2 = Nothing End If Loop Close #1 End Sub Private Sub ListView2_Dblclick() Open App. datos2 i = i + 1 If UCase(Left(datos2.Add . 2 ListView2.Clear ListView2. 2 ListView1.SubItems(4) = Trim(datos2.txtucoef.ColumnHeaders.ColumnHeaders. 1300. 1)) = "C" Then Set itmx2 = ListView2. 2 ListView1.Add(1. datos. . 1)) = "E" Then Set itmX = ListView1.txtTitech.

SelectedItem = "Selección de un Techo Similar" Then frmTabla11.SelectedItem = "Elección de un Techo Establecido" Then frmTabla14.Visible = True frmTabla11.2 Private Sub TabStrip1_Click() If tabstrip1.CoefsTecho .Visible = False End If End Sub .Visible = True frmTabla14.Visible = False End If If tabstrip1.

Si el tipo de techo por capas suyo esta dentro de los de la lista. seleccionelo haciendo doble clic .

Temp3) txtTextpromg.Text = Trim(datos2.Text = Trim(datos2.Text) Then If Trim(datos2.Text = Trim(datos2.Text = Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then txtHrextg.ListIndex = 4 Then Open App.Path & "/Tablas/Climaticas.Text) Then If Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis. datos2 If Trim(datos2.Hr2) = "" Then txtHrextg.ListIndex = 2 Then Open App.HrAnual) Else txtHrextg.Text = Trim(datos2.TempAnual) .ListIndex = 1 Then Open App.Text = Trim(datos2.Path & "/Tablas/Climaticas.ListIndex = 0 Then Open App.4 End If Loop Close #1 End If If cboAnalisis.Ciudad) = Trim(txtUbicacion.Text = Trim(datos2.Text = Trim(datos2.Text = Trim(datos2.CondicionesExteriores .Path & "/Tablas/Climaticas. datos2 If Trim(datos2.HrAnual) Else txtHrextg.ListIndex = 3 Then Open App.cfl" For Random As #1 Do While Not EOF(1) Get #1. .TempAnual) txtTextpromg.Text) Then If Trim(datos2. .Text = "" If cboAnalisis.Text = Trim(datos2.Temp2) txtTextpromg.Text = Trim(datos2.Text = Trim(datos2. . datos2 If Trim(datos2.Temp2) .cfl" For Random As #1 Do While Not EOF(1) Get #1.Ciudad) = Trim(txtUbicacion.Temp1) txtTextpromg.Text = "" txtHrextg.1 Dim datos As techo Dim Directorio As String Private Sub cboAnalisis_click() Dim datos2 As climas txtTexts.Temp3) .HrAnual) Else txtHrextg.Hr2) End If txtTexts.Hr1) End If txtTexts.Text = Trim(datos2. datos2 If Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis.HrAnual) txtTexts.Hr3) End If txtTexts.Text = Trim(datos2.cfl" For Random As #1 Do While Not EOF(1) Get #1.Path & "/Tablas/Climaticas. . datos2 Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) .Path & "/Tablas/Climaticas.cfl" For Random As #1 Do While Not EOF(1) Get #1.Hr3) = "" Then txtHrextg.Ciudad) = Trim(txtUbicacion.cfl" For Random As #1 Do While Not EOF(1) Get #1.Hr1) = "" Then txtHrextg.Text = Trim(datos2. .4 End If Loop Close #1 End If If cboAnalisis.Temp1) .Text = "" txtTextpromg.

HrAnual) Else txtHrextg.Path & "/Tablas/Climaticas.Path & "/Tablas/Climaticas.4 End If Loop Close #1 End If If cboAnalisis.cfl" For Random As #1 Do While Not EOF(1) Get #1.Text = Trim(datos2.cfl" For Random As #1 Do While Not EOF(1) Get #1.Text = Trim(datos2.Hr5) End If txtTexts.Hr8) End If txtTexts.HrAnual) Else txtHrextg.Text = Trim(datos2.Text = Trim(datos2.Temp4) txtTextpromg.Text = Trim(datos2. .Text = Trim(datos2.Text) Then If Trim(datos2.Text = Trim(datos2.Text = Trim(datos2.Hr5) End If txtTexts.Temp6) txtTextpromg.Temp5) .Text = Trim(datos2. datos2 If Trim(datos2.Temp8) Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) .Hr4) End If txtTexts.HrAnual) Else txtHrextg.ListIndex = 7 Then Open App.Text = Trim(datos2.cfl" For Random As #1 Do While Not EOF(1) Get #1.Hr4) = "" Then txtHrextg.Ciudad) = Trim(txtUbicacion.Hr6) = "" Then txtHrextg.Text) Then If Trim(datos2. .Ciudad) = Trim(txtUbicacion. datos2 If Trim(datos2. datos2 If Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis.CondicionesExteriores .Text = Trim(datos2.Hr6) End If txtTexts. .ListIndex = 5 Then Open App.Text = Trim(datos2.2 If Trim(datos2.Text = Trim(datos2.Path & "/Tablas/Climaticas.cfl" For Random As #1 Do While Not EOF(1) Get #1.Hr8) = "" Then txtHrextg.HrAnual) Else txtHrextg.Text = Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis.Temp5) txtTextpromg.Text = Trim(datos2.Temp7) txtTextpromg.Hr7) = "" Then txtHrextg.HrAnual) Else txtHrextg.Ciudad) = Trim(txtUbicacion.Text = Trim(datos2.Ciudad) = Trim(txtUbicacion.Temp7) .Temp6) .4 End If Loop Close #1 End If If cboAnalisis.ListIndex = 8 Then Open App. datos2 If Trim(datos2.Text = Trim(datos2.Path & "/Tablas/Climaticas.Temp4) .Text) Then If Trim(datos2.Text = Trim(datos2.Ciudad) = Trim(txtUbicacion.Text = Trim(datos2. .Text) Then If Trim(datos2.Hr5) = "" Then txtHrextg.ListIndex = 6 Then Open App.Text) Then If Trim(datos2.

Text = Trim(datos2.Text = Trim(datos2.Text = Trim(datos2. datos2 If Trim(datos2. .Text) Then If Trim(datos2. .Text = Trim(datos2.Hr12) End If txtTexts.Temp12) . datos2 If Trim(datos2.HrAnual) Else txtHrextg. .ListIndex = 9 Then Open App.Text = txtTexts.txtTextd.Temp10) .Hr11) = "" Then txtHrextg.Text CondicionesUma.Hr9) = "" Then txtHrextg.cfl" For Random As #1 Do While Not EOF(1) Get #1.ListIndex = 12 Then Open App.cfl" For Random As #1 Do While Not EOF(1) Get #1.Hr9) End If txtTexts.Temp10) txtTextpromg.Temp9) txtTextpromg.Text = Trim(datos2.Path & "/Tablas/Climaticas.Text Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) Len = Len(datos2) .Ciudad) = Trim(txtUbicacion.HrAnual) Else txtHrextg.Path & "/Tablas/Climaticas.HrAnual) Else txtHrextg.HrAnual) Else txtHrextg.4 End If Loop Close #1 End If If cboAnalisis.Text = Trim(datos2.4 End If Loop Close #1 End If CondicionesUma.Path & "/Tablas/Climaticas.4 End If Loop Close #1 End If If cboAnalisis.Text) Then If Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis.Text = Trim(datos2.Text = txtHrextg.Path & "/Tablas/Climaticas.ListIndex = 10 Then Open App.Hr10) = "" Then txtHrextg.Text = Trim(datos2.Temp11) txtTextpromg. datos2 If Trim(datos2. .cfl" For Random As #1 Do While Not EOF(1) Get #1.Text = Trim(datos2.Temp11) .Hr12) = "" Then txtHrextg.Ciudad) = Trim(txtUbicacion.Text) Then If Trim(datos2.CondicionesExteriores .Temp9) .Text) Then If Trim(datos2.Text = Trim(datos2.Text = Trim(datos2.4 End If Loop Close #1 End If If cboAnalisis.Ciudad) = Trim(txtUbicacion. datos2 If Trim(datos2.Text = Trim(datos2.Ciudad) = Trim(txtUbicacion.Hr10) End If txtTexts.Text = Trim(datos2.Text = Trim(datos2.cfl" For Random As #1 Do While Not EOF(1) Get #1.Temp12) txtTextpromg.3 txtTextpromg.txtHrext.Hr11) End If txtTexts.ListIndex = 11 Then Open App.Text = Trim(datos2.Text = Trim(datos2.Temp8) .Text = Trim(datos2.

Path & "/Datos/General. datos End If Loop Close #1 Close #2 .Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Len(datos) Open App.id = n_cont Put #2.Path & "/Datos/General.borrado = 1 Then n_cont = n_cont + 1 datos.Path & "/Datos/UMAs.Path & "/Datos/Cargas.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.CondicionesExteriores . n_cont. datos If datos.id = n_contg Put #2.txt") Open App.id = n_cont Put #2.Path & "/Datos/Cargas.Show End Sub Private Sub cmdGuardarTodo_Click() Dim n_cont As Integer n_uma = lenfile(App.borrado = 1 Then n_contg = n_contg + 1 datos.Text End Sub Private Sub cmdCiudDB_Click() DatosClimáticos. datos End If Loop Close #1 Close #2 Open App. n_cont. .Path & "/" & Trim(Directorio) & "/Datos/Global. datos If datos.borrado = 1 Then n_cont = n_cont + 1 datos.Path & "/Datos/General. n_contg.4 CondicionesUma.id = n_cont Put #2. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdSalir_Click() End End Sub Private Sub cmdVistaPrevia_Click() Dim n_contg As Integer Open App.txt" For Random Access Read As #1 Len = Len(datos) Open App.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1. datos End If Loop Close #1 Close #2 Open App.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/Datos/Oficinas.txt") n_carg = lenfile(App. datos If datos. .txt" For Random Access Read As #1 Len = Len( datos) Open App. .txt" For Random Access Read As #1 Len = Len(datos) Open App.borrado = 1 Then n_cont = n_cont + 1 datos.txtTme. n_cont.Text = txtTextpromg. .txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1. datos If datos.Path & "/Datos/Oficinas.txt") n_ofi = lenfile(App.Path & "/Datos/UMAs.

Show Me.Item(3).borrado = 1 Then n_contg = n_contg + 1 datos.Tabs. .Selected = False End If End Sub Private Sub txtTexts_Change() cboAnalisis.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.id = n_contg Put #2.Path & "/" & Trim(Directorio) & "/Datos/Global. datos End If Loop Close #1 Close #2 Open App.CondicionesExteriores .Item(3). datos If datos.Tabs.Tabs.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text End Sub Private Sub TabStrip1_Click() If tabstrip1.Selected = False End If If tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then CondicionesUma.Show Me.txt" For Random Access Read As #1 Len = Le n(datos) Open App.5 Open App.SelectedItem = "Cargas" Then Cargas. datos If datos.borrado = 1 Then n_contg = n_contg + 1 datos.Item(3).Show Me.txtTituloProyecto.Item(3).SelectedItem = "Inicio" Then inicio.Show Me.Selected = False End If If tabstrip1.Show End Sub Private Sub Form_Load() tabstrip1.Item(3).Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Tabs.Hide tabstrip1.txt" For Random Access Read As #1 Len = Len(datos) Open App.id = n_contg Put #2.Selected = False End If If tabstrip1. datos End If Loop Close #1 Close #2 VistaPreviaDatos. n_contg.Selected = False End If If tabstrip1.Hide tabstrip1.Item(3).Tabs.Tabs.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.SelectedItem = "Condiciones de Ambiente(s)" Then CondicionesOficina.Enabled = True End Sub .SelectedItem = "Datos Generales" Then DatosGenerales. n_contg.Show Me. .Hide tabstrip1.Selected = True Directorio = DatosGenerales.Hide tabstrip1.Hide tabstrip1.

Ciudad de Ubicación Altitud sobre el nivel del mar [m] Latitud [ °] Turbiedad de la Atmósfera Temperatura Seca Exterior [°C] Humedad Relativa Exterior [%] Promedio de Temperaturas en el Exterior [°C] Tipo de Análisis Variación Diaria Promedio de Temperaturas [°C] .

Text datos. datos Close #1 If n_ofi > 5 Then MsgBox "No se pueden agregar más de cinco (5) Oficinas para esta versión del programa" Else datos.nombuma.Hrext) End If Loop Close #1 End Sub Private Sub cmdCargOfi_Click() ListView2.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt") If n_ofi .InfIl = txtInfil.Text = "" Or txtMaxPers.Text datos.CondicionesOficina .1 = 0 Then n_ofi = n_ofi + 1 Open App.Text = "" Or cboUmaAt.Ventof = txtVentof.Text datos.Text = "" O r txtVentof.Text datos.Text datos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Hrext = Text2.Text = Trim(datos.Text datos. verifique que llenó todas las casillas". .Text = "" Or txtmetpers. . datos i = i + 1 If UCase(Left(datos.Tintd) txtHro.Hro = txtHro.Text = "" Or txtHpared.maxperso = txtMaxPers. 10)) = UCase(Left(cboUmaAt.Hpared = txtHpared.borrado = 1 .1 Dim Dim Dim Dim Dim Dim clmx As ColumnHeader itmx1 As ListItem itmx2 As ListItem i As Integer datos As techo Directorio As String Private Sub cboUmaAt_dropdown() cboUmaAt.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text = "" Or txtInfil.ListItems.Text datos.Text datos. vbExclamation Else Dim n_ofi As Long n_ofi = lenfile(App.Clear If txtnombamb.Text datos.txt" For Random Access Read As #1 Len = Len( datos) Do While Not EOF(1) Get #1.AddItem (datos.nombuma) End If Loop Close #1 End Sub Private Sub cboUmaAt_click() i = 0 Open App.Text datos.Text = "" Or txtHro.Text datos.Text. datos i = i + 1 If UCase(Left(datos.Textd) Text2. n_ofi.Text = Trim(datos.Text = "" Then MsgBox "Faltan datos.Uma.Text = Trim(datos.Metperso = txtmetpers.Text = "" Or txtTso.areaof = txtAreaof.txt" For Random Access Read As #1 Len = Len( datos) Do While Not EOF(1) Get #1.Text datos.Tso = txtTso. 1)) = "U" Then cboUmaAt.UmaAt = cboUmaAt.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Textd = Text1.Text = "" Or txtIgOf.T ext = "" Or txtAreaof.Clear i = 0 Open App.IgOfi = txtIgOf.Text = Trim(datos.nombamb = txtnombamb. 10)) Then txtTso.TVar = "OFICINA" datos.Hrint) Text1.txt" For Random As #1 Len = Len(dato s) Get #1.

Text = "" Then .Text = "" txtVentof. datos If datos.Text = "" txtIgOf.Path & "/" & Trim(Directorio) & "/Datos/General. n_ofi.Text = "" txtInfil.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt") Open App.Text = "" Text1.Text = "" txtHro.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.borrado = 1 Then n_cont = n_cont + 1 datos.CondicionesOficina .Text = "" txtHpared. datos End If Loop Close #1 Close #2 Open App. n_cont. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdNormas_Click() If txtMaxPers.Text = "" Or txtAreaof.Text = "" txtTso.txt") n_carg = lenfile(App. n_cont. datos End If Loop Close #1 Close #2 Open App.id = n_cont Put #2.id = n_cont Put #2.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1. datos If datos.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/Datos/Cargas.Text = "" txtmetpers.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/Datos/UMAs.borrado = 1 Then n_cont = n_cont + 1 datos.id = datos.txt") n_ofi = lenfile(App. .Text = "" txtMaxPers. n_cont.txt" For Random As #1 Len = Len(dato s) Put #1.Text = "" Text2. datos If datos.Path & "/Datos/Oficinas.2 datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Text = "" End If End If Call Form_Load End Sub Private Sub cmdGuardarTodo_Click() Dim n_cont As Integer n_uma = lenfile(App.txt" For Random Access Read As #1 Len = Le n(datos) Open App.txt" For Random Access Read As #1 Len = Len( datos) Open App. . .borrado = 1 Then n_cont = n_cont + 1 datos.Text = "" txtAreaof.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Len = Len(datos) Open App.Path & "/" & Trim(Directorio) & "/Datos/General. datos Close #1 txtnombamb.id + 1 Open App.Path & "/" & Trim(Directorio) & "/Datos/General.id = n_cont Put #2.

Ventof = txtVentof.Text datos.Text = "" Or txtIgOf.Text datos.Text = "" txtIgOf.Text = "" Or txtInfil.Path & "/" & Trim(Directorio) & "/Datos/nOficinas.Text datos.Text datos. datos If datos.SelectedItem.Text datos.Text = "" txtTso.Value datos.Hpared = txtHpared.maxperso = txtMaxPers.Text = "" Or txtmetpers.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text = "" txtMaxPers.Text = "" Text2.CondicionesOficina . vbExclamation Else datos.UmaAt = cboUmaAt.Text = "" txtHpared.Visible = False Check1.IgOfi = txtIgOf.txt" Kill App.Text datos.Text datos.Text datos.Text = "" Or txtHpared. ListView2.Path & "/" & Trim(Dir ectorio) & "/Datos/Oficinas.Hrext = Text2.Text2.3 MsgBox "Para poder hacer automático el proceso de cálculo de las normas de ventilación se requiere tener el valor del área del ambiente y el máximo de personas en el mismo" Else NormasVent. . verifique que llenó todas las casillas".InfIl = txtInfil.Text datos.nombamb = txtnombamb.Text = "" txtnombamb.borrado = 1 Then n_num = n_num + 1 datos.Text = "" Then MsgBox "Faltan datos. datos Close #1 Dim n_num As Integer Open App.areaof = txtAreaof.Text datos.Path & "/" & Trim(Directorio) & "/Datos/nOficinas.Text NormasVent.Text = "" txtAreaof. n_num.Textd = Text1.O = "Ofi" datos.Text = "" Or txtMaxPers.Tso = txtTso.Text = "" txtHro.TVar = "OFICINA" datos.Text End If End Sub Private Sub cmdOfiCorregida_Click() If txtnombamb.Text = txtAreaof.id = ListView2.id = n_num Put #2.Text = "" Text1.Visible = False cmdCargOfi.txt" FileCopy App.Text = "" txtInfil.Text = "" cmdOfiCorregida.Text = "" Or cboUmaAt.Path & "/" & Trim(Directorio) & "/Datos/nOficinas.SubItems(1) Open App.Text = txtMaxPers.SubItems(1) + 1.Text datos.Metperso = txtmetpers.Text datos.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Show NormasVent.Text = "" O r txtVentof.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Text = "" txtVentof.Hro = txtHro.Text = "" Or txtHro.txt" For Random As #2 Len = Len(dat os) Do While Not EOF(1) Get #1.SelectedItem.txt" For Random As #1 Len = Len(dato s) Put #1.T ext = "" Or txtAreaof.Text = "" Or txtTso.Visible = True . App.borrado = Check1.txt" txtmetpers.txt".Text1. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App.txt" For Random Access Read As #1 Le n = Len(datos) Open App.

SubItems(4) = Trim(datos. 0 ListView2.".CondicionesOficina .Text = Trim(datos.ColumnHeaders.ColumnHeaders. datos.Item(5).Hpared) itmX. 2300. 1000.Metperso) Text2.SubItems(6) = Trim(datos.Add .SubItems(1) = i .SubItems(3) = Trim(datos.ColumnHeaders. seca".SubItems(9) = Trim(datos. "Max. "ID".Tso) txtHro. 1)) = "O" And datos.ListItems.UmaAt) txtIgOf.Clear ListView2.Visible = True Check1.Text = Trim(datos. 800.UmaAt) itmX. "ID".Text = Trim(datos. "Hr".SubItems(7) = Trim(datos.SubItems(1) * Len(datos)) + 1. 1200.Selected = True ListView2.Text = Trim(datos.Hpared) txtMaxPers. "PK".ColumnHeaders. 2 ListView2.ColumnHeaders.Add .SubItems(8) = Trim(datos.Hrext) Text1.Tabs.4 End If Call Form_Load End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() Directorio = DatosGenerales.ColumnHeaders.IgOfi) txtTso.Text = Trim(datos.Text = Trim(datos.ColumnHeaders. "nombre".ColumnHeaders.areaof) txtHpared. "Locales Iguales". (ListView2. 0 ListView2.Hro) itmX. "Humedad".ColumnHeaders.id) itmX. 1300. "Área".Path & "/" & Trim(Directorio) & "/Datos/Oficinas.1 itmX.Add .ColumnHeaders. datos i = i + 1 If UCase(Left(datos.Add(1.Visible = True cmdCargOfi.Ventof) txtmetpers. "uma". "Altura Pared".Add .Add .Ventof) itmX. . 2 ListView2.SubItems(11) = Trim(datos. 2 ListView2.maxperso) txtInfil. 1100. "altura". "ven".InfIl) txtVentof.Text = Trim(datos. 1200.". 800.Add .txt" For Binary Access Read As #1 Len = Len(datos) Get #1. 1100. datos Close #1 txtnombamb.Add .Text = Trim(datos. 2 ListView2.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. "UMA".SelectedItem. "Infil.SubItems(2) = Trim(datos.Add .IgOfi) itmX. "Temp.InfIl) Set itmX = Nothing End If Loop Close #1 End Sub Private Sub ListView2_Dblclick() cmdOfiCorregida. 2 ListView2.Visible = False Open App.Text = Trim(datos.Text = Trim(datos.TVar. "max". "PK".nombamb) itmX.areaof) itmX. 2 ListView2.Add .Path & "/" & Trim(Directorio) & "/Datos/Oficinas. "Ventilación".Textd) .nombamb) cboUmaAt. 2 ListView2. "Temp".Text = Trim(datos.Tso) itmX.ColumnHeaders.Text tabstrip1. "infil".SubItems(5) = Trim(datos. . "Ambiente". 2300.borrado = 1 Then Set itmX = ListView2.ColumnHeaders.Text = Trim(datos. "area". 2 ListView2.Add .Clear i = 0 Open App.maxperso) itmX.Text = Trim(datos.Add .Hro) txtAreaof.Add .txtTituloProyecto. 2 ListView2.ListItems.ColumnHeaders. 2 ListView2. "cant". Pers.SubItems(10) = Trim(datos.

Selected = False End If If tabstrip1.Show Me.Item(5).Show Me.Hide tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then CondicionesUma.Hide tabstrip1.Text = "" End Sub .5 End Sub Private Sub TabStrip1_Click() If tabstrip1.Item(5).Text = "" Then Call txtmaxpers_Change End If txtVentof.Show Me.CondicionesOficina .Tabs.Item(5).Hide tabstrip1.Tabs.SelectedItem = "Datos Generales" Then DatosGenerales.SelectedItem = "Cargas" Then Cargas.Tabs.Show Me.Tabs.Text = "" txtInfil.SelectedItem = "Condiciones Exteriores" Then CondicionesExteriores.Item(5).Item(5).Text txtmetpers.Tabs.Text = "" Then maxperso2 = txtMaxPers.Text = "" End Sub Private Sub txtmaxpers_Change() Dim maxperso2.Hide tabstrip1. areaof2 As Long If Not txtMaxPers.Selected = False End If If tabstrip1.Text = "" txtInfil.SelectedItem = "Inicio" Then inicio.Selected = False End If If tabstrip1.Text = "" Then If Not txtAreaof.Selected = False End If End Sub Private Sub txtAreaof_Change() If Not txtAreaof.Text areaof2 = txtAreaof.Selected = False End If If tabstrip1.Text = areaof2 / maxperso2 End If Else txtmetpers.Hide tabstrip1.Text = "" End If txtVentof.Show Me.

Nombre del Ambiente UMA que atiende al Ambiente Número Máximo de Personas Ambientes Iguales m^2/personas Temperatura Seca del Ambiente [°C] Ventilación [L/s] Humedad Relativa del Ambiente [%] Infiltraciones [L/s] Superficie del Ambiente [m^2] Altura de Pared [m] Listado de Ambientes .

Text = "" End If End If Call Form_Load End Sub Private Sub cmdGuardarTodo_Click() Dim n_cont As Integer n_uma = lenfile(App.Text = "" Or txtHrext.Text = "" txtBpf.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text datos.Textd = txtTextd.id + 1 Open App. n_uma. datos If datos.Hrint = txtHintd.txt") Open App.Text = "" Or txtTme.borrado = 1 Then n_cont = n_cont + 1 datos. verifique que llenó todas las casillas".id = datos.Tintd = txtTintd.Text = "" Or txtTextd.txt" For Random Access Read As #1 Len = Len( datos) Open App.Text = "" Or txtBpf. datos Close #1 txtnombuma.Text datos.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text datos.Text datos. datos End If Loop Close #1 Close #2 Open App.Text = "" Or txtcantumaigual.Text datos.1 = 0 Then n_uma = n_uma + 1 Open App.Text datos.Agua = cboAgua.Uma = "UMA" datos. n_uma.txt" For Random As #1 Len = Len(datos) Put #1.CondicionesUma .Text = "" txtcantumaigual.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.id = n_cont Put #2.Text datos.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Flujo = cboFlujo. vbExclamation Else Dim n_uma As Long n_uma = lenfile(App.bpf = txtBpf.Text datos.Text datos.Text = "" txtHintd.nombuma = txtnombuma.chmin = txtChmin.Text = "" Then MsgBox "Faltan datos.cantumaig = txtcantumaigual.txt") n_carg = lenfile(App.1 Dim clmx As ColumnHeader Dim itmx1 As ListItem Dim itmx2 As ListItem Dim i As Integer Dim datos As techo Dim Directorio As String Private Sub CargUMA_Click() If txtnombuma.Text datos.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Tmext = txtTme.Text = "" txtTintd. .Text = "" Or txtChmin.Text datos.TVar = "UMA" datos.txt" For Random As #1 Len = Len(datos) Get #1.Text = "" Or txtHintd.txt") n_ofi = lenfile(App.Hrext = txtHrext.txt") If n_uma .borrado = 1 datos.Text = "" O r txtTintd.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.retorno = cboRetorno. n_cont.Text = "" txtChmin.Path & "/" & Trim(Directorio) & "/Datos/General.txt" For Random Access Read As #1 Len = .Path & "/" & Trim(Directorio) & "/Datos/UMAs. datos Close #1 If n_uma > 2 Then MsgBox " No se pueden agregar más de dos (2) Unidades de Manejo de Aire para esta versión del programa" Else datos.Text datos.

Text = "" Or txtHintd.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Text datos.Text = "" Or txtTextd.Text = "" Then MsgBox "Faltan datos.2 Len(datos) Open App.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/" & Trim(Directorio) & "/Datos/UMAs.borrado = 1 Then n_cont = n_cont + 1 datos. (ListView1.Path & "/" & Trim(Directorio) & "/Datos/General.Textd = txtTextd.Text = "" Or txtChmin.SelectedItem.chmin = txtChmin.Hrext = txtHrext.Text datos.Tmext = txtTme.Flujo = cboFlujo.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Le n(datos) Open App.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1. datos End If Loop Close #1 Close #2 On Error Resume Next Kill App. datos End If Loop Close #1 Close #2 Open App.SelectedItem. vbExclamation Else datos.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Text datos.Text datos.id = n_cont Put #2.id = n_uma Put #2.Text datos.Text datos.Text datos.Text datos.id = ListView1. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdGuardUma_Click() If txtnombuma.Text = "" Or txtHrext.nombuma = txtnombuma.bpf = txtBpf.Text datos.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.Value datos.Text datos.SubItems(1) Open App.SubItems(1) + 1).retorno = cboRetorno. datos If datos.borrado = 1 Then n_uma = n_uma + 1 datos.CondicionesUma . n_cont.Text datos.txt" .Agua = cboAgua. .Tintd = txtTintd. datos If datos.txt" For Random Access Read As #1 Len = Len(datos) Open App.Text = "" Or txtcantumaigual. .Uma = "UMA" datos. .Text = "" Or txtBpf.cantumaig = txtcantumaigual.Path & "/" & Trim(Directorio) & "/Datos/Cargas. n_cont.Text = "" O r txtTintd.id = n_cont Put #2.Hrint = txtHintd.Text = "" Or txtTme.borrado = Check2. n_uma.txt" For Random As #1 Len = Len(datos) Put #1. verifique que llenó todas las casillas".Text datos. datos If datos.TVar = "UMA" datos. datos Close #1 Open App.borrado = 1 Then n_cont = n_cont + 1 datos.Path & "/" & Trim(Directorio) & "/Datos/General.

700.". 1)) = "U" And datos.Path & "/" & Trim(Directorio) & "/Datos/nUMAs. Ext.3 FileCopy App.SubItems(7) = Trim(datos. "Nombre UMA". "Hrext". 2 ListView1.SubItems(6) = Trim(datos.txt" Kill App.Text = "" txtcantumaigual. "Hr Int. .Add . "PK".Text txtTme.ListItems. 2 ListView1.SubItems(5) = Trim(datos.txtTextpromg.Add .Text = CondicionesExteriores. "reto". "Agua". 800.Add .txt" txtnombuma. "flujo".Text End Sub .retorno) Set itmX = Nothing End If Loop Close #1 txtTextd. "ID".". 1500.borrado = 1 Then Set itmX = ListView1.txt" For Random Access Read As #1 Len = Len( datos) Do While Not EOF(1) Get #1.SubItems(1) = i .ColumnHeaders.ColumnHeaders. Med.Show End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() Directorio = DatosGenerales.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Add .SubItems(8) = Trim(datos.Tmext) itmX.SubItems(11) = Trim(datos.Text tabstrip1.Clear Dim itmX As ListItem i = 0 Open App. 2 ListView1. 2 ListView1.ColumnHeaders.txtTituloProyecto. 2300. 2 ListView1.ColumnHeaders.ColumnHeaders.txtHrextg.SubItems(3) = Trim(datos. "PK". "Retorno". datos i = i + 1 If UCase(Left(datos.Text = "" Check2. "agua".Text txtHrext.Text = "" txtTintd.Tabs.ColumnHeaders. "ID".Tintd) itmX.ColumnHeaders.Add .Uma.ColumnHeaders.Text = "" txtBpf.Add . "Temp.id) itmX.Add . "tint". 2 ListView1. Int.ListItems.Add .Add . "Temp.ColumnHeaders.Add .Path & "/" & Trim(Directorio) & "/Datos/nUMAs. 2 ListView1. 2 ListView1. 1000. 2 ListView1.Hrext) itmX. "tempm".Text = "" txtHintd. 800.SubItems(4) = Trim(datos. 0 ListView1. "bpf".Add .Text = CondicionesExteriores.1 itmX.CondicionesUma .bpf) itmX.txt". 700. 700.Selected = True ListView1.Clear ListView1.Flujo) itmX.txtTexts.Textd) itmX.Path & "/" & Trim(Directo rio) & "/Datos/UMAs. "Flujo".Text = "" txtChmin. "By Pass". "temp".".SubItems(2) = Trim(datos. "Temp.nombuma) itmX. "Nomb".Visible = True End If Call Form_Load End Sub Private Sub cmdNormas_Click() CambiosAireHora. . "hrint".Visible = False CargUMA.". App.Add(1.ColumnHeaders. "Hr Ext.Visible = False cmdGuardUma. 2 ListView1.Item(4). 700. Ext. 1000.Text = CondicionesExteriores.ColumnHeaders.Add .SubItems(10) = Trim(datos. 0 ListView1.ColumnHeaders.ColumnHeaders.Agua) itmX.Hrint) itmX.SubItems(9) = Trim(datos. datos.".

nombuma) txtcantumaigual.Show Me.Text = Trim(datos.Visible = True cmdGuardUma.Selected = False End If If tabstrip1. datos Close #1 txtnombuma.cantumaig) txtTme.Text = Trim(datos.Selected = False End If If tabstrip1.Text = Trim(datos.Hrext) txtTintd.SubItems(1) * Len(datos)) + 1.Item(4).Textd) txtHrext.Show Me.chmin) cboRetorno.Text = Trim(datos.Text = Trim(datos.SelectedItem = "Condiciones Exteriores" Then CondicionesExteriores.Show Me.Text = Trim(datos.bpf) txtChmin.Item(4).Tabs.Tabs.Selected = False End If If tabstrip1.Text = Trim(datos.Hide tabstrip1.Tabs.Text = Trim(datos.Text = Trim(datos.Visible = True CargUMA.Hrint) txtBpf.SelectedItem = "Datos Generales" Then DatosGenerales.4 Private Sub ListView1_dblclick() Check2.SelectedItem. (ListView1.SelectedItem = "Condiciones de Ambiente(s)" Then CondicionesOficina.Flujo) cboAgua.Hide tabstrip1.Hide tabstrip1.Hide tabstrip1.txt" For Binary Access Read As #1 Len = Len( datos) Get #1.SelectedItem = "Inicio" Then inicio.Show Me.Item(4).Tabs.Text = Trim(datos.Tintd) txtHintd.Selected = False End If End Sub .Item(4).Item(4).Visible = False Open App.retorno) cboFlujo.Path & "/" & Trim(Directorio) & "/Datos/UMAs.CondicionesUma .Tmext) txtTextd.Text = Trim(datos.Text = Trim(datos.SelectedItem = "Cargas" Then Cargas.Selected = False End If If tabstrip1.Agua) End Sub Private Sub TabStrip1_Click() If tabstrip1.Tabs.Hide tabstrip1.Show Me.

Nombre de la UMA Cantidad de UMAs iguales Temperatura Exterior de Diseño Temperatura Interior de Diseño Temperatura Media Exterior [°C] [°C] [°C] Humedad Relativa Exterior Humedad Interior de diseño [% Factor de Bypass del Serpentin (0 a 1) Cambios de Aire/h mín Retorno Flujo Agua Datos de la(s) UMA(s) [%] .

n_ciud.Text = "" Text17.code = "O" datos.Temp2 = Text3.Hr4 = Text18.Text = "" Text7.Hr9 = Text23.HrAnual = Text27.Text datos.Text = "" Text16.Text datos.Temp3 = Text4.TempAnual = Text14.Text datos.Temp9 = Text10.id + 1 datos.Path & "/Tablas/Climaticas.Temp11 = Text12.Text datos.Text datos.Hr11 = Text25.Path & "/Tablas/Climaticas.Text = "" Text24.Temp1 = Text2.Temp5 = Text6. n_ciud.Text datos.Text datos.Text datos.Hr3 = Text17.Text = "" Call Form_Load End Sub .Text datos.Temp10 = Text11.Text = "" Text27.DatosClimáticos .Temp6 = Text7.Text datos. datos Close #1 Text1.Text datos.1 Dim datos As climas Private Sub CiudadAgregar_Click() Dim n_ciud As Long n_ciud = lenfile2(App.Text datos.Text = "" Text14.Text datos.Hr7 = Text21.Text datos.Text datos.Text datos.Temp12 = Text13.Text datos.Altitud = Text29.Text = "" Text18.Text datos.Hr2 = Text16.Text datos.Hr5 = Text19.Text = "" Text13.Text datos.Text = "" Text21.Text datos.cfl" For Random As #1 Len = Len(datos) Put #1.Text = "" Text9.Text = "" Text15.cfl" For Random As #1 Len = Len(datos) Get #1.Text = "" Text20.Hr6 = Text20.salto = vbCrLf Open App.Text = "" Text6.Latitud = Text28.Hr1 = Text15.Text datos.Text = "" Text25.Hr8 = Text22.Text datos.Ciudad = Text1.Temp4 = Text5.Text datos.Temp8 = Text9.Text = "" Text2.Hr12 = Text26.Hr10 = Text24.Text = "" Text11.Text = "" Text23.Path & "/Tablas/Climaticas.Text = "" Text10.Text = "" Text19.Text = "" Text22.cfl") Open App.Text = "" Text5.Text = "" Text12.Text = "" Text4.Text datos. datos Close #1 datos.id = datos.Text = "" Text8.Text datos.Text datos.Text datos.Temp7 = Text8.Text = "" Text3.Text datos.Text = "" Text26.

"ag".Add .SubItems(17) = Trim(datos.Hr7) itmX. "Temp. 2 ListView1.Temp9) itmX. "Temp. .Add . SEP". 2 ListView1. 900. 2 ListView1. 900. 2 ListView1. 2 ListView1.ColumnHeaders.ListItems. 1100. "Temp. 2 ListView1.SubItems(16) = Trim(datos.Add . AÑO".ColumnHeaders. "oct". 900. "Hr. "no". 2 ListView1. 2 ListView1.Add .Add . OCT". "Hr. "Temp.Add .ColumnHeaders. "Hr. "Temp. datos i = i + 1 If UCase(Left(datos.SubItems(6) = Trim(datos. 1100.Add .SubItems(18) = Trim(datos. "Hr. "Hr.SubItems(9) = Trim(datos.Ciudad) itmX. ABR".ColumnHeaders.SubItems(5) = Trim(datos. "Hr. "lat". 1)) = "O" Then Set itmX = ListView1. "Hr. 1100.ColumnHeaders.ColumnHeaders.Temp7) itmX.SubItems(27) = Trim(datos.ColumnHeaders.Hr2) itmX. 1100. AGO". 1100. OCT". 1100.DatosClimáticos .ColumnHeaders. "nov". 900.Add .SubItems(7) = Trim(datos.ColumnHeaders. "mayo". JUN". "Hr.ColumnHeaders. 1100.ColumnHeaders. 900. "Temp. "juli". 2 ListView1.Add .Clear Dim itmX As ListItem i = 0 Open App. "Hr. JUL". datos.Hr1) itmX.Temp6) itmX. 1100.ColumnHeaders.code.SubItems(21) = Trim(datos.ColumnHeaders.Add . 2 ListView1. 1100. AÑO".ColumnHeaders. 900.ColumnHeaders. 2 ListView1. "Temp.ColumnHeaders. SEP". 2 ListView1. "ciu".SubItems(28) = Trim(datos.Add .ColumnHeaders. "Temp.SubItems(12) = Trim(datos.Add . DIC".ColumnHeaders.Hr6) itmX. 2 ListView1. 2 ListView1. "ju". "mar". 0 ListView1.1 itmX. 900.Hr9) itmX. "may".SubItems(4) = Trim(datos. "ID".Path & "/Tablas/Climaticas. NOV". MAR". "año".Add .Temp3) itmX.Add . "Ciudad". 1100.Add .ColumnHeaders.SubItems(11) = Trim(datos. 2 ListView1. FEB".Hr11) .SubItems(3) = Trim(datos.Temp4) itmX.Hr4) itmX.SubItems(23) = Trim(datos.SubItems(15) = Trim(datos. "jun". MAR". NOV". "oc".ColumnHeaders.2 Private Sub Form_Load() ListView1. MAY". 2 ListView1.Hr8) itmX.id) itmX.SubItems(22) = Trim(datos.ColumnHeaders. "ID".ColumnHeaders. 2 ListView1. 1100. 900.SubItems(25) = Trim(datos.Temp10) itmX. 900.SubItems(20) = Trim(datos. 0 ListView1. JUN".Hr10) itmX. "Altitud [m]". 1100.ColumnHeaders. "abr". 2 ListView1.ColumnHeaders. 2 ListView1.ColumnHeaders. "Hr. "Latitud [°]".Temp12) itmX. "Temp.Temp2) itmX.Altitud) itmX. FEB".ColumnHeaders.SubItems(19) = Trim(datos.Add .ColumnHeaders.SubItems(24) = Trim(datos. 2 ListView1. "Hr.ColumnHeaders.SubItems(1) = i . "jul". 0 ListView1. "PK". "añ".Clear ListView1. "alt". "Temp.Temp8) itmX.SubItems(8) = Trim(datos.cfl" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.SubItems(14) = Trim(datos.Add .ColumnHeaders. "sep".Add . "ma".Add .ColumnHeaders. "Hr. 2 ListView1.Latitud) itmX.Temp5) itmX.Add .Add . ABR".Temp1) itmX.Add . 2 ListView1. "ab". ENE". 2 ListView1. 1100.Add . "Hr. "se".Add . "ene". 2 ListView1. 2 ListView1. DIC". 1100. 2 ListView1. 900. . "fe". ENE". "Temp. 900.ColumnHeaders.Temp11) itmX. "dic".Add . 900.ColumnHeaders.Add .Hr3) itmX.SubItems(2) = Trim(datos. "en". "ago". "di". 2000.SubItems(13) = Trim(datos.Add .ListItems.TempAnual) itmX.Add .SubItems(10) = Trim(datos.Add . "Temp. "feb". "PK". 1100. AGO".Add .Add(1. 900.Hr5) itmX. JUL". 2 ListView1. 2 ListView1. "Temp.Add .SubItems(26) = Trim(datos. MAY".

Enabled = False: Text15.Enabled = True: Text11.Enabled = False: Text11.Enabled = False: Text7.Enabled = True: Text27.Enabled = False Text9.Enabled = False Text13.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1.Enabled = True: Text10.Enabled = False: Text4.Enabled = True: Text18.Enabled = True: Text3.Enabled = False: Text8.Enabled = True: Text7.cboAnalisis.Enabled = False Text5.Enabled = True End Sub Private Sub Option4_Click() CiudadAgregar.Enabled = False: Text14.Value = False Option4.Enabled = False: Text14.Enabled = True CiudadAgregar.Enabled = True Label31.Enabled = True: Text14.Enabled = True Text5.Enabled = False: Text3.Enabled = True Option1.Enabled = True Text28. (ListView1.Enabled = True: Text26.Enabled = True: Text22.Enabled = True: Text16.Enabled = True: Text8.Enabled = False: Text10.Enabled = True Option2.Enabled = True Text9.Enabled = True Text21.Enabled = False Text5.Enabled = True Text25.Enabled = False: Text8.Altitud) CondicionesExteriores.Enabled = False: Text26.Enabled = False: Text6.Enabled = False: Text15.Enabled = False: Text24.Enabled = True CondicionesExteriores.Enabled = False: Text4.txtUbicacion.Enabled = True Text29.Enabled = True: Text19.SubItems(1) * Len(datos)) + 1.Enabled = False Text13.Hr12) itmX.Value = False Text1. datos Close #1 CondicionesExteriores.SubItems(30) = Trim(datos.Enabled = False: Text6.Text = Trim(datos.Enabled = False: Text18.Path & "/Tablas/Climaticas.Enabled = True Label34.Text = Trim(datos.3 itmX.SubItems(29) = Trim(datos.Enabled = False: Text20.Enabled = True Text30.Enabled = True Text17.Value = True Option1.Enabled = False Text9.Enabled = True: Text23.Enabled = True End Sub Private Sub Option2_Click() Option2.Enabled = False Text17.Value = False Text2.DatosClimáticos .Enabled = True: Text12.Enabled = False: Text22.Enabled = False: Text16.Enabled = True: Text4.Enabled = False: Text7.Enabled = True: Text20.Enabled = True: Text15.Enabled = False: Text19.HrAnual) Set itmX = Nothing End If Loop ListView1.Enabled = False Text17.Enabled = False: Text12.Hide Open App.Sorted = True Close #1 End Sub Private Sub ListView1_dblclick() Me.Enabled = False Text25.Value = True Text1.Text = Trim(datos.Enabled = True Label30.Enabled = False: Text2.SortKey = 2 ListView1.Enabled = False: Text10.Enabled = False Option3.Enabled = False: Text27.Value = False Text2.Enabled = False Text21.Enabled = False: Text19.Enabled = False .Enabled = False: Text3.Enabled = True: Text6.Enabled = True: Text24.Enabled = True Text13.Enabled = True Label1.Enabled = False: Text18.Value = True Option4.Enabled = False End Sub Private Sub Option3_Click() Option3.Enabled = False: Text12.Latitud) MsgBox "Considere colocar un tipo de análisis para que puedan proporcionársele los demás valores" End Sub Private Sub Option1_Click() Option1.Enabled = False: Text11.Enabled = False: Text16.Enabled = False: Text23.SelectedItem.txtAltitud.Ciudad) CondicionesExteriores.Value = True Option2.Enabled = False: Text20.txtlatitud.

Enabled = False: Text27.Enabled Label1.Enabled = False: Text28.Enabled End Sub = = = = = False: Text22.Enabled Label2.Enabled Text25.Enabled Text29.Enabled = False: Text24.Enabled = False False False .Enabled = False False: Text30.Enabled = False False: Text26.DatosClimáticos .4 Text21.Enabled = False: Text23.

Datos Climáticos de algunas de las ciudades más importantes de Venezuela ¿Desea Agregar otra Ciudad? Ciudad Latitud Altitud Variación Estándar en un día Temperatura Máximas Promedio ENE FEB MAR ABR MAY JUN JUL AGO SEP OCT NOV DIC Anual Humedad Relativa ENE FEB MAY JUN JUL AGO SEP OCT NOV DIC Anual MAR ABR .

Path & "/" & Trim(Directorio) & "/Datos/Oficinas.id = n_cont Put #2.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Le n(datos) Open App.txt" For Random Access Read As #1 Len = Len( datos) Open App. .txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.borrado = 1 Then n_cont = n_cont + 1 datos.id = n_cont Put #2.Path & "/" & Trim(Directorio) & "/Datos/General. n_cont.borrado = 1 Then n_cont = n_cont + 1 datos. n_contg. datos If datos. datos End If Loop Close #1 Close #2 Open App. n_cont. datos If datos.borrado = 1 Then n_contg = n_contg + 1 datos.1 Dim datos As techo Private Sub cmdGuardarTodo_Click() Dim n_cont As Integer Open App. datos If datos. datos If datos.Path & "/" & Trim(Directorio) & "/Datos/UMAs. datos End If Loop Close #1 Close #2 Open App.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random Access Read As #1 Len = Len( datos) Open App. .txt" For Random Access Read As #1 Len = Len(datos) Open App.id = n_contg Put #2. .txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.txt" For Random Access Read As #1 Len = Len(datos) Open App.Path & "/" & Trim(Directorio) & "/Datos/Global. n_cont. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdSalir_Click() End End Sub Private Sub cmdVistaPrevia_Click() Dim n_contg As Integer Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.DatosGenerales .Path & "/" & Trim(Directorio) & "/Datos/General.Path & "/" & Trim(Directorio) & "/Datos/General.txt" For Random As #2 Len = Len(datos) . .borrado = 1 Then n_cont = n_cont + 1 datos.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1. datos End If Loop Close #1 Close #2 Open App.id = n_cont Put #2.

Path & "/" & Trim(Directorio) & "/Datos/Cargas.Fecha = txtFecha. datos If datos.Text If ExisteDir(App.Path & "/Tablas/InfoGeneral.Path & "/" & Trim(Directorio) & "/Datos/Global.Enabled = False End If If tabstrip1.id = n_contg Put #2.Path & "/" & Trim(Directorio) & "/Datos") MkDir (App.Path & "/Tablas/InfoGeneral.SelectedItem = "Inicio" Then inicio.Path & "/Tablas/InfoGeneral.Selected = True End Sub Private Sub TabStrip1_Click() If txtTituloProyecto. datos If datos.Text = "" Then MsgBox "Debe seleccionar el nombre del archivo a examinar o crear uno.Path & "/" & Trim(Directorio) & "/Resultados") n_proc = lenfile(App.Text datos.txt" For Random Access Read As #1 Len = Le n(datos) Open App.Titulo = txtTituloProyecto.Nombre = txtNombreEmpresa.Text datos.id = n_contg Put #2.Show Me.borrado = 1 Then n_contg = n_contg + 1 datos.Path & "/" & Trim(Directorio)) MkDir (App.salto = vbCrLf Open App.DatosGenerales .Text datos. datos End If Loop Close #1 Close #2 Open App.O = "N" datos.dat") Open App.Hide .Text datos.Tabs. n_proc. n_contg.dat" For Random As #1 Len = Len(datos) Get #1.id = datos.id + 1 datos.borrado = 1 Then n_contg = n_contg + 1 datos.Show End Sub Private Sub Command1_Click() On Error Resume Next Dim datos As techo Dim Directorio As String Directorio = txtTituloProyecto.Enabled = True End If End Sub Private Sub Form_Load() tabstrip1. datos End If Loop Close #1 Close #2 VistaPreviaDatos.txt" For Random As #2 Len = Len(datos) Do While Not EOF(1) Get #1.Encargado = txtEncargadoProyecto. datos Close #1 datos.Path & "/" & Trim(Directorio)) = True Then DlgReemplazar.Item(2). n_contg. n_proc.2 Do While Not EOF(1) Get #1.Show Else MkDir (App. . datos Close #1 tabstrip1. para poder seguir con e l programa" tabstrip1. .dat" For Random As #1 Len = Len(datos) Put #1.

Clear i = 0 Open App.SelectedItem = "Cargas" Then Cargas.Selected = False End If If tabstrip1.Hide tabstrip1.DatosGenerales .Hide tabstrip1.Selected = False End If If tabstrip1.Item(2).Selected = False End If txtFecha.SelectedItem = "Condiciones Exteriores" Then CondicionesExteriores.Tabs.Text End Sub Function ExisteDir(ruta As String) As Boolean On Error Resume Next ExisteDir = (Dir$(ruta & "\nul") <> "") End Function Private Sub txtTituloProyecto_dropdown() tabstrip1.Show Me.Text = datos.Show Me.Item(2).Tabs.Encargado txtFecha.Show Me.Selected = False End If If tabstrip1.dat" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Nombre txtEncargadoProyecto.Text = datos.Text = datos.Show Me.Item(2).Fecha End If Loop Close #1 End Sub .Text = Date proyecto = txtTituloProyecto.3 tabstrip1.Enabled = True txtTituloProyecto.AddItem (datos. 1)) = "N" Then txtTituloProyecto.Hide tabstrip1.Path & "/Tablas/InfoGeneral.Hide tabstrip1.Tabs. .Item(2).SelectedItem = "Condiciones de la(s) UMA(s)" Then CondicionesUma.SelectedItem = "Condiciones de Ambiente(s)" Then CondicionesOficina.Titulo) txtNombreEmpresa. datos i = i + 1 If UCase(Left(datos.Selected = False End If If tabstrip1.Tabs.Tabs.O.Item(2).

Nombre de la Empresa Título del Proyecto Encargado del Proyecto Fecha de Realización .

Hide End Sub Private Sub OKButton_Click() Dim Directorio As String MkDir (App.txtTituloProyecto. n_proc.Path & "/Tablas/Info General.O = "N" datos. datos Close #1 datos.Path & "/Tablas/InfoGeneral.Nombre = txtNombreEmpresa.dat" For Random As #1 Len = Len(datos) Put #1.Encargado = txtEncargadoProyecto.*" Kill App.id + 1 datos.*" End Sub .Text Kill App.DlgReemplazar .Path & "/" & Directorio) MkDir (App.Text datos.Path & "/" & Directorio & "/Datos") MkDir (App.Fecha = txtFecha.salto = vbCrLf Open App.Path & "/" & Directorio & "/*. datos Close #1 tabstrip1.Text datos.Titulo = txtTituloProyecto.Enabled = True Directorio = DatosGenerales.Path & "/" & Directorio & "/Datos/*.dat" For Random As #1 Len = Len(datos) Get #1.id = datos. n_proc.dat") Open App.1 Dim n_proc As Long Dim datos As techo Option Explicit Private Sub CancelButton_Click() Me.Text datos.*" Kill App.Path & "/" & Directorio & "/Resultados/*.Path & "/" & Directorio & "/Resultados") n_proc = lenfile(App.Text datos.Path & "/Tablas/Info General.

¿desea reemplazar los datos? .Ya Existe Un Proyecto con ese nombre.

factorsi = "NO" Else datos.cfl") Open App.Text = "SIN" Then Me.ColumnHeaders.cfl" For Random As #1 Len = Len(datos) Get #1.Text = "" Text8.Add .Text datos. ListView1.O = "O" datos. 0 "Aparatos". 500.Total = Text7.ColumnHeaders.Text Else MsgBox "Debe seleccionar una de las opciones de campana VALIDAS!" End If End If End Sub Private Sub Form_Load() ListView1. 2 "Fl".txtlhg. datos Close #1 Text1.GananciaAparatos .factorsi = "SI" End If datos. datos Close #1 datos. ListView1.salto = vbCrLf Open App. "fr".Text = "CON" Or cbocampanaaparatos. 2 "Fr". ListView1. 500.sensibleC = Text8.Factor = Text2.ColumnHeaders. n_list.ColumnHeaders.cfl" For Random As #1 Len = Len(datos) Put #1.Clear "ID".1 Private Dim Dim Dim Sub Command1_Click() datos As aparatos2 i As Integer n_list As Long n_list = lenfile2(App.Text = "" Call Form_Load End Sub Private Sub cmdAceptar_Click() If Text12. 0 "PK".Text datos.Text datos. "PK".Latente = Text6. n_list.Text datos.Campana = "CON" If Text2 = "" Then datos.Text = "" Or cbocampanaaparatos.Text datos.Clear ListView2.txtshg. 500.Text = "" Text7.Clear ListView1.ColumnHeaders.Text If Text5 = "" Then datos. 2500.Text = "" Text5.cbocampanaaparatos.Text = "" Text2.Text = "" Text4.Tamaño = Text3.Text = "" Text6.ColumnHeaders.Text = "" Or Text13.Aparato = Text1. ListView1.ColumnHeaders.Text Cargas. "fu".sensAp = Text5.Hide Cargas.Path & "/Tablas/Tabla2Aparatos.Text datos.Add . 2 . 2 "Fu".Add .Path & "/Tablas/Tabla2Aparatos.Text Cargas. ListView1.ListItems.Text = "" Then MsgBox "Necesita dar valores a las ganancias de calor para aceptar" Else If cbocampanaaparatos.Path & "/Tablas/Tabla2Aparatos. "ID".ColumnHeaders.id + 1 datos.Text datos. ListView1.Add .Text = cbocampanaaparatos.id = datos.Add .Tasa = Text4.Text = Text13.Text = "" Text3. "fl".Text = Text12. "ta".Add .

500.Add .ListItems. ListView3.SubItems(3) = Trim(datos2. 2 "ID".ListItems.Fl) Set itmX = Nothing End If Loop Close #1 End If If tabstrip1. ListView3. 2 "Tamaño".SubItems(1) = i . "fu". datos2 i = i + 1 If UCase(Left(datos2. ListView3. 2 "Potencia". "ta". 700. ListView2. 800. 2 "Fu". 2500.Clear ListView3. ListView2.SelectedItem = "Condiciones" Then Frame1.Fr) itmX. 1)) = "G" Then Set itmX = ListView2.Add . 1)) = "E" Then Set itmX = ListView1.SubItems(4) = Trim(datos2. 0 " Aparatos".Visible = False Frame2. 2 "Total". 500.SubItems(5) = Trim(datos2.ColumnHeaders. 0 "Aparatos". ListView3.1 itmX.Add .Fl) Set itmX = Nothing End If Loop Close #1 Open App. 700.SelectedItem = "Aparatos de Cocina 2" Then .ListItems.2 ListView2.ColumnHeaders.Aparato) itmX. ListView2. 0 "Factor".cfl" For Random Access Read As #1 Len = Len(datos2) i = 0 Do While Not EOF(1) Get #1.ColumnHeaders.ColumnHeaders.Add .Add .Add . .SelectedItem = "Aparatos de Cocina 1" Then Dim datos2 As aparatos1 Frame1. ListView3.cfl" For Random Access Read As #1 Len = Len(datos2) i = 0 Do While Not EOF(1) Get #1. 2 "Fl".Add .Add(1.ColumnHeaders. "fl".ColumnHeaders.id) itmX. "fq".SubItems(2) = Trim(datos2. 0 "PK". "PK".Visible = False Open App. 2 End Sub Private Sub TabStrip1_Click() Dim itmX As ListItem Frame1.Comb. "fu". 700. 0 "PK". "fo". "ID".Clear ListView3.SubItems(1) = i . "fp". "ta".1 itmX.Clear "ID".Add .Add .ColumnHeaders.SubItems(5) = Trim(datos2.ColumnHeaders. 2 "Latente".SubItems(4) = Trim(datos2.Add .Add .SubItems(3) = Trim(datos2.ListItems. "ID".SubItems(2) = Trim(datos2.Add . "fl". ListView2. datos2.ColumnHeaders. ListView2. . . 900. 1700.ColumnHeaders. 2 "Sensible".Add .Aparato) itmX.Add .Add . "fr".ColumnHeaders. 2 "Fr". ListView2.ColumnHeaders.id) itmX. ListView3. "fm".Fu) itmX. ListView3.Path & "/Tablas/Tabla1Aparatos. 2 "Sensible".Add(1.ColumnHeaders. 700.ColumnHeaders.Path & "/Tablas/Tabla1Aparatos. ListView3. . 500. "PK". 2500.Comb. "fr".ColumnHeaders.Visible = True Frame2. datos2 i = i + 1 If UCase(Left(datos2.Fr) itmX.Add .ColumnHeaders.GananciaAparatos .Fu) itmX.Visible = False End If If tabstrip1. ListView3. datos2.ColumnHeaders.Visible = True If tabstrip1. ListView3.

Add(1.Text = "" Then Text12.3 Dim datos As aparatos2 Frame2.Text Text13.Path & "/Tablas/Tabla2Aparatos.Text * Text11.Text12.Latente) itmX.GananciaAparatos .Factor) itmX.Text = "" Else Text12. 1)) = "O" Then Set itmX = ListView3.Tasa) itmX.cfl" For Random Access Read As #1 Len = Len(datos) i = 0 Do While Not EOF(1) Get #1.SubItems(3) = Trim(datos.Tamaño) itmX.Total) itmX.SubItems(6) = Trim(datos.Text * Text10.SubItems(4) = Trim(datos.ListItems.Text End If End Sub .Text = Text9.SubItems(7) = Trim(datos.Visible = False Open App. .Text .sensAp) itmX.id) itmX. datos.SubItems(8) = Trim(datos.Text = Text9. .SubItems(2) = Trim(datos.SubItems(1) = i . datos i = i + 1 If UCase(Left(datos.SubItems(5) = Trim(datos.Text = "" Or Text10.SubItems(9) = Trim(datos.1 itmX.Visible = True Frame1.O.sensibleC) Set itmX = Nothing End If Loop Close #1 End If End Sub Private Sub Text10_Change() Call Text9_Change End Sub Private Sub Text11_Change() Call Text9_Change End Sub Private Sub Text9_Change() If Text9.Aparato) itmX.Text = "" Or Text11.

Tabla 7 Cap28 ASHRAE Tabla 6 Cap28 ASHRAE .Potencia de la Máquina [W] Factor de Uso (Fu) Campana Factor de Radiación (Fr) Calor Sensible [W] Calor Latente [W] Factores de Ganancia de Calor de Aparatos Eléctricos bajo campana de extracción. Factores de Ganancia de Calor de Aparatos a Gas bajo campana de extracción.

Selected = False End If End Sub .Show Me.Selected = False End If If tabstrip1.Tabs.Item(1).Tabs.1 Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() tabstrip1.Item(1).Item(1).Show Me.Selected = False End If If tabstrip1.SelectedItem = "Datos Generales" Then DatosGenerales.Item(1).Inicio .Item(1).Selected = True End Sub Private Sub TabStrip1_Click() Dim Seleccion As String If tabstrip1.Tabs.Hide tabstrip1.Tabs.Show Me.Show Me.Hide tabstrip1.SelectedItem = "Condiciones Exteriores" Then CondicionesExteriores.SelectedItem = "Condiciones de la(s) UMA(s)" Then CondicionesUma.Hide tabstrip1.Item(1).Selected = False End If If tabstrip1.Hide tabstrip1.Tabs.Selected = False End If If tabstrip1.Show Me.SelectedItem = "Condiciones de Ambiente(s)" Then CondicionesOficina.SelectedItem = "Cargas" Then Cargas.Hide tabstrip1.Tabs.

Programa de Cálculo de Cargas Térmic Realizado por Ricardo González Pern como parte de su trabajo de Grado. . como requisito para la obtención del Título Ingeniero Mecánico de la Universida Simón Bolívar.

Module1 .1 Dim proyecto As String * 15 Public Type techo borrado As Byte TVar As String * 8 Nombre As String * 31 Titulo As String * 31 Encargado As String * 21 Fecha As String * 15 Ciudad As String * 30 Altitud As Double Latitud As String * 6 Turbiedad As String * 6 TempSec As Double HumRel As Double TempProm As Double nombamb As String * 21 UmaAt As String * 21 IgOfi As Double Tso As Double Hro As Double areaof As Double Hpared As Double maxperso As Double InfIl As Double Ventof As Double Metperso As Double O As String * 4 nombuma As String * 21 cantumaig As Double Textd As Double Hrext As Double Tintd As Double Hrint As Double Tmext As Double bpf As Double chmin As Double Flujo As String * 3 retorno As String * 3 Agua As String * 3 Uma As String * 4 idu As Long id As Long Ucoef As Double area As Double color As String * 6 fte As Double cielo As String * 6 decremento As String * 5 titech As String * 4 Ofcorr As String * 21 tcarga As String * 13 IgPar As Double Grupo As String * 2 orientacion As String * 3 igvid As Double Atenuacion As Double CtteAmb As Double Sombint As String * 4 Sombext As String * 4 TAdyacente As Double IgPart As Double Potluces As Double uso As Double tipoluces As String * 13 inicio As Double duracion As Double coefdis As Double inercia As Double Igaparatos As Double shg As Double lhg As Double .

2 Campana As String * 4 potencia As Double colocacion As String * 2 Tcolocacion As Double eficiencia As Double IgEquipos As Double cantpersonas As Double salto As String End Type Public Type CalorPersonas nomb As String * 8 actividad As String * 46 Tipo As String * 32 hombre As String * 4 ajustado As String * 4 sensible As String * 4 Latente As String * 4 Bajo As String * 3 Alto As String * 3 id As Long End Type Public Type Motores HP As Double kW As Double motor As String * 11 rpm As String * 5 eficiencia As String * 3 A As String * 7 B As String * 7 C As String * 6 D As String * 2 id As Long salto As String End Type Public Type Calculos QLpers As Long QSpers As Long QCpers As Long QRpers As Long End Type Public Type aparatos1 id As Long Aparato As String * 30 Fu As Double Fr As Double Fl As Double Comb As String * 10 salto As String End Type Public Type aparatos2 id As Long Aparato As String * 30 Factor As String * 30 Tamaño As String * 25 Tasa As String * 7 sensAp As String * 7 Latente As String * 7 Total As String * 7 sensibleC As String * 7 Campana As String * 4 factorsi As String * 3 O As String * 1 salto As String End Type Public Type Resulta2 .Module1 .

3 id As Long Comp As String * 3 Nombre As String * 30 t1 As String * 10 t2 As String * 10 t3 As String * 10 t4 As String * 10 t5 As String * 10 t6 As String * 10 t7 As String * 10 t8 As String * 10 t9 As String * 10 t10 As String * 10 t11 As String * 10 t12 As String * 10 t13 As String * 10 t14 As String * 10 t15 As String * 10 t16 As String * 10 t17 As String * 10 t18 As String * 10 t19 As String * 10 t20 As String * 10 t21 As String * 10 t22 As String * 10 t23 As String * 10 t24 As String * 10 tTotal As String * 10 salto As String End Type Public Type climas id As Long code As String * 4 Ciudad As String * 30 Temp1 As String * 6 Temp2 As String * 6 Temp3 As String * 6 Temp4 As String * 6 Temp5 As String * 6 Temp6 As String * 6 Temp7 As String * 6 Temp8 As String * 6 Temp9 As String * 6 Temp10 As String * 6 Temp11 As String * 6 Temp12 As String * 6 TempAnual As String * 6 Hr1 As String * 6 Hr2 As String * 6 Hr3 As String * 6 Hr4 As String * 6 Hr5 As String * 6 Hr6 As String * 6 Hr7 As String * 6 Hr8 As String * 6 Hr9 As String * 6 Hr10 As String * 6 Hr11 As String * 6 Hr12 As String * 6 HrAnual As String * 6 Latitud As String * 3 Altitud As String * 6 salto As String End Type Public Type Tabla11 id As Long Codigo As String * 4 Descripcion As String * 50 Long As String * 4 .Module1 .

4 Res As String * 6 salto As String End Type Public Type Tabla14 id As Long Tipo As String * 3 Descripcion As String * 50 TimeL As String * 6 Ufact As String * 9 Decrem As String * 5 salto As String End Type Public Type ventilac id As Long Aplicacion As String * 40 Ocupacion As String * 6 lps As String * 6 Sup As String * 2 salto As String End Type Public Type Us id As Long Descripcion As String * 60 Densidad As String * 9 Resistencia As String * 9 conf As String * 2 salto As String End Type Public Type SHGC id As Long Mes As String * 11 Hora As String * 7 N As String * 9 NE As String * 9 E As String * 9 SE As String * 9 S As String * 9 SO As String * 9 O As String * 9 NO As String * 9 Hor As String * 9 salto As String End Type Public Function lenfile(ruta) As Long Dim datos As techo Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.Module1 . . . datos i = i + 1 Loop Close #1 . datos i = i + 1 Loop Close #1 lenfile = i End Function Public Function lenfile2(ruta) As Long Dim datos As climas Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.

result i = i + 1 Loop Close #1 lenfile7 = i End Function Public Function lenfile8(ruta) As Long Dim result As Us . result i = i + 1 Loop Close #1 lenfile4 = i End Function Public Function lenfile5(ruta) As Long Dim result As Tabla11 Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1. .5 lenfile2 = i End Function Public Function lenfile3(ruta) As Long Dim datos As Calculos Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. result i = i + 1 Loop Close #1 lenfile6 = i End Function Public Function lenfile7(ruta) As Long Dim result As SHGC Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1. . . result i = i + 1 Loop Close #1 lenfile5 = i End Function Public Function lenfile6(ruta) As Long Dim result As ventilac Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1. .Module1 . . datos i = i + 1 Loop Close #1 lenfile3 = i End Function Public Function lenfile4(ruta) As Long Dim result As Resulta2 Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.

6 Dim i As Integer i = 0 Open ruta For Binary Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1. .30258509299405 End Function Public Function Pi() As Double Pi = (Atn(1) * 4) End Function Public Function Deg2Rad(number As Double) As Double Deg2Rad = (number * Pi / 180) End Function Public Function Rad2Deg(number As Double) As Double Rad2Deg = (number * 180 / Pi) End Function Function Acs(number As Double) As Double If number = 1 Then Acs = 0 ElseIf number = -1 Then Acs = Pi Else Acs = (Atn(((-(number) / Sqr(((-(number) * (number) + 1)))))) + Pi / 2) End If End Function Function AcsD(number As Double) As Double AcsD = (Rad2Deg((Acs((number))))) End Function Function Asn(number As Double) As Double If number = 1 Then Asn = (Pi / 2) ElseIf number = -1 Then Asn = -(Pi / 2) Else Asn = (Atn((number) / (Sqr((-number * number + 1))))) End If End Function Function AsnD(number As Double) As Double AsnD = (Rad2Deg(Asn((number)))) End Function Function SinD(number As Double) As Double SinD = (Sin(Deg2Rad((number)))) End Function Function CosD(number As Double) As Double CosD = (Cos(Deg2Rad((number)))) End Function .Module1 . result i = i + 1 Loop Close #1 lenfile8 = i End Function Public Function Log10(numero As Double) As Double Log10 = Log(numero) / 2.

n_list.Text datos.C = Text8.Add . 0 ListView1. "A [Watt]". "Chm".Text datos. "". "Ch". "PK".D = 0 datos.cfl" For Random As #1 Len = Len(datos) Get #1.Text datos. "CS".Text datos.ListItems. 2 ListView1.A) itmX.Clear ListView1.Text = "" Text4. datos i = i + 1 If UCase(Left(datos.ColumnHeaders.eficiencia) itmX.Text = "" Text7. "Potencia [kW]".SubItems(2) = Trim(datos. "CL".SubItems(4) = Trim(datos. .Text datos.ColumnHeaders.rpm = Text4. 2 ListView1.motor = Text3.Text = "" Text8.rpm) itmX.B) itmX.id = datos.Add .Add(1.Text datos.kW = Text2.Add . 2 ListView1.Text = "" Text3.HP) itmX.C) Set itmX = Nothing End If Loop .D. 1200.B = Text7. 2 ListView1.Text = "" Call Form_Load End Sub Private Sub Form_Load() Dim datos As Motores ListView1.Add . datos Close #1 Text1.ColumnHeaders. 0 ListView1.Path & "/Tablas/TablaMotores. 1200. datos Close #1 datos.Add . datos. 1900.SubItems(1) = i . "PK".Add .ColumnHeaders.ColumnHeaders.cfl") Open App.HP = Text1. 1200.eficiencia = Text5. "IrrA".Path & "/Tablas/TablaMotores. "Potencia [HP]".SubItems(5) = Trim(datos.Add . . n_list. 2 ListView1.A = Text6.Add .ColumnHeaders. "IrrB". "B [Watt]". "ID". "ta".ColumnHeaders.cfl" For Random As #1 Len = Len(datos) Put #1. 2 ListView1.cfl" For Random Access Read As #1 Len = Len(datos) i = 0 Do While Not EOF(1) Get #1.SubItems(3) = Trim(datos.ListItems.Add .ColumnHeaders.Text = "" Text6. "Tipo de Motor".Text datos.Path & "/Tablas/TablaMotores.1 Private Dim Dim Dim Sub Command1_Click() datos As Motores i As Integer n_list As Long n_list = lenfile2(App.Text = "" Text2.1 itmX.Text datos.motor) itmX.ColumnHeaders. 1)) = 0 Then Set itmX = ListView1.Add .SubItems(8) = Trim(datos.SubItems(9) = Trim(datos. 2 ListView1. "Velocidad Nominal [rpm]".kW) itmX.MotoresElectricos .Path & "/Tablas/TablaMotores.Clear Dim itmX As ListItem Open App. 2 ListView1.Text = 1500 Text5. 1200.salto = vbCrLf Open App.ColumnHeaders. 1900. "Eficiencia [%]".SubItems(6) = Trim(datos.id) itmX. 1200.id + 1 datos. "ID".SubItems(7) = Trim(datos. "C[Watt]". 1200.ColumnHeaders.

Hide Cargas.SelectedItem.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1. datos Close #1 Cargas.txtEficienciaEquipos.txtPotenciaEquipos.Text = Trim(datos.2 Close #1 End Sub Private Sub ListView1_dblclick() Dim datos As Motores Open App.C) Me.Show End Sub .SubItems(1) * Len(datos)) + 1.B) C = Trim(datos.A) B = Trim(datos.Text = Trim(datos.Path & "/Tablas/TablaMotores.MotoresElectricos .eficiencia) A = Trim(datos.kW) * 1000 Cargas. (ListView1.

Capítulo 28.Ganancia de Calor de los Motores Eléctricos Típicos SELECCIONAR EL TIPO DE MOTOR HACIENDO DOBLE CLICK SOBRE ÉL (*)Tabla 4. "ASHRAE Fundamentals (1997) .

"PK".Path & "/Tablas/TablaVentilac.ColumnHeaders.ColumnHeaders.ListItems.Text = InfIl Me. "L/(s*m^2)".1 Dim datos As ventilac Private Sub Form_Load() ListView1. 2 ListView1.Add .Add(1. datos Close #1 ventilac = Trim(datos.Clear ListView2.lps) * Text2.lps) * Text1. "Aplicacion". "ciu".Aplicacion) itmX. (ListView1.ColumnHeaders.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1.Add .Clear i = 0 Open App. 2 ListView2. "fe".Add . "Ocupación".Path & "/Tablas/TablaVentilac.SubItems(2) = Trim(datos. datos.lps) Set itmX = Nothing End If Loop Close #1 Open App. 0 ListView1.id) itmX. 2 ListView1.ColumnHeaders.Add . 1100.Clear ListView1.Ocupacion) itmX.SubItems(4) = Trim(datos. .Add .SubItems(1) * Len(datos)) + 1. 2 ListView2.ColumnHeaders.Path & "/Tablas/TablaVentilac.SubItems(1) * Len(datos)) + 1.Aplicacion) itmX.Add(1.SubItems(3) = Trim(datos.Clear ListView2.SubItems(1) = i . 1)) = "C" Then Set itmX = ListView2. "L/(s*persona)".ColumnHeaders.1 itmX.SelectedItem.Add .ColumnHeaders. 2000. 2 ListView1.15 CondicionesOficina.txtVentof. "PK". 1100.Path & "/Tablas/TablaVentilac. "en".SubItems(3) = Trim(datos. .Add . .ColumnHeaders.SubItems(4) = Trim(datos.Sup.Add .lps) Set itmX = Nothing End If Loop Close #1 End Sub Private Sub ListView1_dblclick() Dim ventilac As Double Dim InfIl As Double Open App.ColumnHeaders. "Aplicacion". "ID". (ListView2.txtInfil.SubItems(1) = i .ColumnHeaders.SubItems(2) = Trim(datos.NormasVent .ListItems.1 CondicionesOficina. "PK".Ocupacion) itmX.Add . 0 ListView2. "ciu".Text InfIl = ventilac * 0. "en". 2 ListView2.Text InfIl = ventilac * 0. 0 ListView2.ListItems. 2000.Text = ventilac CondicionesOficina. datos i = i + 1 If UCase(Left(datos.id) itmX. 1100. datos i = i + 1 If UCase(Left(datos.cfl" For Binary Access Read As #1 Len = Len(datos) Get #1. datos Close #1 ventilac = Trim(datos.Sup. 1)) = "N" Then Set itmX = ListView1.Add . "fe".cfl" For Random Access Read As #1 Len = Len(datos) i = 0 Do While Not EOF(1) Get #1.Hide End Sub Private Sub ListView2_Dblclick() Dim ventilac As Double Dim InfIl As Double Open App. 0 ListView1. .txtVentof. "ID". "PK".ColumnHeaders. datos.1 itmX.ListItems. "Ocupación".Text = ventilac .cfl" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.SelectedItem.ColumnHeaders. "ID". 1100. "ID".

Text = InfIl Me.2 CondicionesOficina.NormasVent .txtInfil.Hide End Sub .

Los requisitos de Ventilación e infiltración se calculan automáticamente para su comodidad.Seleccione el uso que mayor se asemeje al uso real del ambiente. .

1 To 12) As Double Dim QSSUMOF(5) As Double Dim AÑO(1 To 12) As String Dim decl(1 To 12) As Double Dim A(1 To 12) As Double Dim B(1 To 12) As Double Dim C(1 To 12) As Double Dim Time(1 To 12) As Double Dim Phi(1 To 9) As Double Dim SHGFhm(1 To 24. 1 To 12. 24) As Double Dim QRluces(0. 24. 1 To 12) As Double Dim TempMaxExternas(1 To 24) As Double: Dim TempMax As Double Dim Variac As Double Dim Qaparatos(0. 1 To 9) As Doub le Dim IDT(1 To 12. 5) As Double Dim n_ofi As Long: Dim n_uma As Long: Dim nUma As Long Dim Ofi(5) As String Dim Uma(5) As String Dim UmaIgual(5) As Long Dim OficinasIgual(5) As Long Dim UmaOfi(5) As String: Dim VolOfi(5) As Double: Dim VUMASG(5) As Double Dim result As Resulta2 Dim CaudalAireOfi(5) As Double: Dim CaudalAireUma(5) As Double Dim QofiC(1 To 5. 1 To 12) As Double: Dim QParedes(1 To 24. 24) As Dou ble Dim TotalUMA(1 To 20) As Double: Dim LatenteUMA(1 To 20) As Double: Dim SensibleUMA(1 To 20) As Do uble Dim TotalSensible(11. 24) As Double: Dim QLaparatos(0. 1 To 12. 23) As Long Dim QSsum(12. 24) As Double Dim QSpersonas(0.Resultados . 1 To 25) As Double: Dim QLofic(1 To 5. 24) As Double: Dim QSaparatos(0. 23) As Double Dim TE As Double Dim TI As Double Dim CPAIRE As Double: Dim CPH2O As Double: Dim RA As Double: Dim TSAT As Double Dim TSATA As Double: Dim ENTALLIQ As Double: Dim PWSSAT As Double: Dim WSAT As Double Dim W As Double: Dim T As Double: Dim VOLESP As Double: Dim FCS As Double Dim ENTALVAP As Double: Dim FCL As Double Dim Qpared(11. 1 To 12) As Double Dim QparTotal(1 To 12) As Double: Dim Delay As Integer Dim Tdel As Double Dim Solar(1 To 24. 1 To 12. 1 To 9) As Double: Dim AvgSolOs(1 To 12. 5) As Double: Dim QLsum(24. 23) As Double Dim Qluces(0. 24) As Double Dim Qpersonas(0. 1 To 9) As Double Dim CosTita As Double: Dim tilt As Double . 1 To 12) As Double Dim QTVent(1 To 25. QSI. QLI As Double Dim TADPA As Double: Dim PRESION As Double: Dim PWSADP As Double: Dim ERSHF As Double: Dim EQSI As Double Dim TINT As Double: Dim QSVENT As Double: Dim QLVENT As Double: Dim PWSBHA As Double Dim tbha As Double: Dim WSBHA As Double: Dim TBSSF As Double: Dim TBHF As Double Dim BYPF As Single: Dim TBSMF As Double Dim QTechTotal(1 To 12) As Double: Dim DelayT As Integer Dim TdelT As Double Dim TETD(1 To 24. 1 To 12) As Double: Dim QTechos(1 To 24. 23) As Double: Dim TotalLatente(11. 1 To 12. 1 To 12) As Double Dim QLatVent(1 To 25. 1 To 12) As Double: Dim QTInfil(1 To 25. 24) As Double: Dim LatenteUE(12. 1 To 25) As Double: Dim QSofic(1 To 5. 23) As Double Dim Qvidrio(11.1 Dim i As Integer: Dim TEAGUA As Long: Dim CHGMIN As Double Dim CantOfiIgual(5) As Double Dim QTMAXUMA(5) As Double: Dim QSMAXUMA(5) As Double: Dim QLMAXUMA(5) As Double Dim Qtecho(11. 1 To 12) As Double: Dim QsensInfil(1 To 25. 24) As Double: Dim QSCpersonas(0. 24) As Double Dim CAPTOTALUE As Double Dim QLpersonas(0. 24) As Double Dim CargaTotalUE(12. 1 To 12) As Double Dim QTMAX As Double Dim QTI. 24) As Double Dim TETDT(1 To 24. 1 To 12) As Double: Dim QLatInfil(1 To 25. 24. 1 To 25) As Double Dim QsensVent(1 To 25. 5) As Double: Dim QTSum(12. 1 To 12) As Double Dim TSolarm(1 To 12) As Double: Dim Tconvidm(1 To 12) As Double Dim SolTempCl(1 To 24. 1 To 9) As Double Dim AvgSolCl(1 To 12. 24) As Double Dim Qequipos(0. 1 To 9) As Double Dim TempMaxExternasAnual(1 To 24. 1 To 12) As Double: Dim ConvectVid(1 To 24. 24) As Double: Dim QCluces(0. 24) As Double: Dim QSRpersonas(0. 1 To 9) As Double: Dim SolTempOs(1 To 24. 1 To 12. 1 To 12. 24) As Double: Dim SensibleUE(12.

datos i = i + 1 If UCase(Left(datos.03 Porcentaje(17) = 0. Meses.Path & "/" & Trim(Directorio) & "/Datos/UMAs. Text.56: Porcentaje(11) = 0.Text1.shg") = False Then Call TablasSHGF Dim Porcentaje(1 To 24) As Double Porcentaje(1) = 0. m.Resultados .Porcentaje(Hora) * Variac Next Hora Next Mes .cantumaig u = u + 1 End If Loop n_uma = u Close #1 Call SHGFCALC For Meses = 1 To 12 For horas = 1 To 11 siguiente = horas + 1 varequis = SHGFhm(horas.Text i = 0 k = 0 u = 0 Open App.nombuma) UmaIgual(u) = datos. cantp. . 9) * 1 varequismas1 = SHGFhm(siguiente. Hrintu As Double Dim Directorio As String: Dim RCAL As Long Dim Mesmax As Long: Dim Horamax As Long: Dim MesmaxUE As Long: Dim HoramaxUE As Long Dim OfienUma As Long: Dim QsOficUma(1 To 5.23 Porcentaje(13) = 0.47 Porcentaje(21) = 0.93: Porcentaje(8) = 0.84 Porcentaje(9) = 0.99 Porcentaje(5) = 1: Porcentaje(6) = 0.82 Variac = CondicionesExteriores.76: Porcentaje(24) = 0. Meses.58: Porcentaje(22) = 0. Mes) = TempMax . 1 To 5) As Double Private Sub Form_Load() Directorio = DatosGenerales.98: Porcentaje(7) = 0.txt" For Random Access Read As #1 Len = Len(dato s) Do While Not EOF(1) Get #1. 1)) = "U" Then Uma(u) = Trim(datos.39: Porcentaje(12) = 0. nOfi As Integer Dim Tabs As Integer Dim Tinterna(5) As Double: Dim Texterna(5) As Double: Dim Winterna(5) As Double: Dim Wexterna(5) A s Double Dim CMHL(5) As Long: Dim RETL(5) As Long: Dim EXTL(5) As Long: Dim CMH As Long Dim IGUALES As Long Dim Tme. fin As Double Dim k.TVar.Text For Mes = 1 To 12 For Hora = 1 To 24 TempMaxExternasAnual(Hora. N.87: Porcentaje(2) = 0.71: Porcentaje(10) = 0.03: Porcentaje(15) = 0: Porcentaje(16) = 0. Tintu.21: Porcentaje(19) = 0.11: Porcentaje(14) = 0. shg. 9) * 1 If varequis > varequismas1 Then inicios(Meses) = horas + 1 End If Next horas Next Meses If ExisteArch(App.Text TempMax = CondicionesExteriores.92: Porcentaje(3) = 0.48: Porcentaje(23) = 0. ini.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".34: Porcentaje(20) = 0.96: Porcentaje(4) = 0.txtTexts.2 Dim EDN As Double: Dim ED As Double: Dim Y As Double Dim Difusa As Double: Dim Eds As Double: Dim Edg As Double Dim SufSolAz As Double: Dim H As Double: Dim L As Double: Dim declinacion As Double Dim Beta As Double: Dim Solaz As Double: Dim CosSolAz As Double Dim Var1 As Double: Dim Var2 As Double: Dim Var3 As Double: Dim Var4 As Double: Dim Transmitido As Double: Dim Absorbido As Double Dim SHGF As Double Dim inicios(1 To 12) As Long Dim n_hor As Long Dim datos As techo Dim tabla As SHGC Dim lhg. Hrextu.txtTituloProyecto.1: Porcentaje(18) = 0. dur.

1))) + ". Meses) Next Hora AvgSolCl(Meses.Resultados .Path & "/" & Trim(Directorio) & "/Resultados /" + "Ofic" + Trim(Ofi((nOfi .Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi 1))) + ".1 posti = finali + 1 For orient = 1 To 9 IDT(Meses. Meses. Meses) + 0. orient) = TempMaxExternasAnual(Hora.15 + i IDT(Meses. orient) * 1. Meses.3 For Meses = 1 To 12 comienzo = inicios(Meses) finali = 24 . L) = 0 Qaparatos(0.052 * (IDT(Meses. orient) / 24) + i Next orient Next Meses i = 0 k = 0 Open App. orient) Temp = Temp + TempMaxExternasAnual(Hora. L) = 0 QSaparatos(0.rst" If ExisteArch(nombrearchivo) = True Then Kill App. orient) / 24) + i AvgSolOs(Meses. L) = 0 . Meses.rst" CARVid = 0: CARPared = 0: CARTecho = 0: CArTechint = 0: CarPiso = 0: CaRPArtic = 0 CarAparat = 0: CarLuces = 0: CarEQuip = 0: CarPersonas = 0 For L = 1 To 24 QSpersonas(0.comienzo previa = comienzo . Meses) + i Temp = Temp + TempMaxExternasAnual(Hora. Meses) + i SolTempOs(Hora. L) = 0 QLaparatos(0. orient) = (Temp / 24) + 0.026 * (IDT(Meses.9 Else i = 0 For Hora = 1 To previa SolTempCl(Hora. . orient) = TempMaxExternasAnual(Hora. orient) = TempMaxExternasAnual(Hora. datos 'i = i + 1 If UCase(Left(datos. orient) = (Temp / 24) + 0.UmaAt) OficinasIgual(k) = datos. Meses. Meses. orient) = TempMaxExternasAnual(Hora. Meses) + i Temp = Temp + TempMaxExternasAnual(Hora.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.052 * SHGFh m(Hora. 1)) = "O" Then Ofi(k) = datos. L) = 0 QSRpersonas(0. Meses) + i SolTempOs(Hora.15 + i SolTempOs(Hora. Meses) Next Hora For Hora = comienzo To finali SolTempCl(Hora. L) = 0 QRluces(0. L) = 0 Qluces(0.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.TVar. Meses) + 0. L) = 0 Qequipos(0.nombamb UmaOfi(k) = Trim(datos. Meses. orient) = TempMaxExternasAnual(Hora. L) = 0 QLpersonas(0. Meses) Next Hora For Hora = posti To 24 SolTempCl(Hora. Meses.IgOfi k = k + 1 End If Loop n_ofi = k Close #1 i = 0 m = 0 N = 0 L = 0 For nOfi = 1 To n_ofi Dim nombrearchivo As String nombrearchivo = App. Meses. L) = 0 QSCpersonas(0.026 * SHGFh m(Hora. orient) = 0 Temp = 0 If orient = 9 Then i = 3. L) = 0 QCluces(0. orient) + SHGFhm(Hora. orient) = IDT(Meses. orient) = TempMaxExternasAnual(Hora. Meses. orient) * 1.

33 * shg * cantp + QSRpersonas (0.Path & "/" & Trim(Directorio) & "/Datos/Cargas. j) If j = fin + 3 Then QSRpersonas(0. j) N = N + 1 End If If j >= ini And j <= fin Then QSpersonas(0.33 * shg * cantp + QSRpersonas (0.67 + QSCpersonas(0.4 * 0.tcarga. j) + 0. j) = 0 + QSpersonas(0. j) = QSRpersonas(0. j) = QSRpersonas(0.duracion) cantp = Trim(datos.33 * shg * cantp + QSRpersonas(0. j) totalL = totalL + QLpersonas(0. j) QLpersonas(0.1)) = datos. .6 * 0. j) Next j End If If UCase(Left(datos.33 * shg * can tp If j = ini + 1 Then QSRpersonas(0.33 * shg * cantp If j = ini + 3 Then QSRpersonas(0. j) + 0. j) = 0. j) QLpersonas(0. j) + QSpersonas(0. j) QSCpersonas(0.lhg) shg = Trim(datos. j) m = m + 1 End If If j >= ini + 4 And j <= fin Then QSRpersonas(0.4 Next L particion = 0: Tparticion = 0: Piso = 0: Tpiso = 0: TechoInt = 0: TTechoInt = 0 totalS = 0: totalL = 0: totalSc = 0: totalSr = 0 totalEq = 0 totalapara = 0: totallapara = 0: totalsapara = 0 totalluces = 0: totalrluc = 0: totalcluc = 0 Open App. j) = 0 + QSRpersonas(0. j) QSCpersonas(0.33 * shg * cantp If j = fin Then QSRpersonas(0. j) = 0 + QSRpersonas(0.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. j) = 0. j) QSRpersonas(0. j) + 0. j) totalS = totalS + QSpersonas(0. j) = 0 + QLpersonas(0. 13)) = "EQUIPOTENCIA " Then CarEQuip = 1 . datos i = i + 1 If Ofi((nOfi .8 * 0.2 * 0. j) QLpersonas(0. j) If j = fin + 2 Then QSRpersonas(0. j) = shg * cantp * 0. j) = QSRpersonas(0. j) If j = fin + 1 Then QSRpersonas(0.8 * 0. j) = QSRpersonas(0. j) = 0 + QSCpersonas(0. j) L = L + 1 End If If j = ini Then QSRpersonas(0. j) = 0. j) = shg * cantp + QSpersonas(0. j) + 0. j) = 0 + QSCpersonas(0.1 fin = ini + dur For j = 1 To 24 If j < ini Then QSpersonas(0. j) + QLpersonas(0. j) totalSr = totalSr + QSRpersonas(0.33 + QSRpersonas(0. j) QSCpersonas(0.inicio) dur = Trim(datos. j) = lhg * cantp + QLpersonas(0. j) End If If j > fin Then QSpersonas(0. j) totalSc = totalSc + QSCpersonas(0.Resultados . j) = 0 + QSpersonas(0. j) QSRpersonas(0. j) = 0.shg) ini = Trim(datos.6 * 0.33 * shg * cantp If j = ini + 2 Then QSRpersonas(0.cantpersonas) ini = ini * 1 dur = dur * 1 . 13)) = "PERSONAS " Then CarPersonas = 1 lhg = Trim(datos.2 * 0. j) Qpersonas(0.tcarga.Ofcorr Then If UCase(Left(datos.33 * shg * cantp + QSRpersonas (0.4 * 0. j) = shg * cantp * 0. j) = Qpersonas(0. j) = 0 + QLpersonas(0.

j) + QCluces(0.5 ) QCluces(0.2 ) L = L + 1 End If End If If j > fin Then QRluces(0. j) = 0 + QCluces(0.uso) ini = ini * 1 dur = dur * 1 . j) totalcluc = totalcluc + QCluces(0. j) Qluces(0. j) Next j End If If UCase(Left(datos. j) = QCluces(0. j) = 0 + QCluces(0. j) = QRluces(0.1 fin = ini + dur q = 0 m = 0 L = 0 N = 0 For j = 1 To 24 If j < ini Then QRluces(0. j) q = q + 1 End If If j >= ini And j <= fin Then If kind = "Fluorescente" Then QRluces(0.5 ) m = m + 1 Else QRluces(0. j) = QRluces(0. j) N = N + 1 End If totalrluc = totalrluc + QRluces(0. j) N = N + 1 End If If j >= ini And j <= fin Then Qequipos(0. j) + (poten * (Facuso / 100) * Facbal * 0.uso) poten = Trim(datos.coefdis) ini = Trim(datos.1 fin = ini + dur qequi = qequi * 1 For j = 1 To 24 If j < ini Then Qequipos(0.duracion) Canteq = Trim(datos.IgEquipos) uso = Trim(datos.tcarga.inicio) dur = Trim(datos.duracion) kind = Trim(datos.Resultados . j) m = m + 1 End If If j > fin Then Qequipos(0. j) = QRluces(0. 13)) = "LUCES " Then CarLuces = 1 Facuso = Trim(datos.8 ) QCluces(0. j) = 0 + Qequipos(0. j) + (poten * (Facuso / 100) * Facbal * 0.5 qequi = Trim(datos. j) QCluces(0. j) = 0 + Qequipos(0. j) QCluces(0. j) L = L + 1 End If totalEq = totalEq + Qequipos(0. j) + (poten * (Facuso / 100) * Facbal * 0. j) = QCluces(0.Tcolocacion) ini = Trim(datos. j) = qequi * uso * Canteq + Qequipos(0. j) Next j totalluces = totalrluc + totalcluc . j) = 0 + QRluces(0. j) = 0 + QRluces(0.inicio) dur = Trim(datos.Potluces) Facbal = Trim(datos. j) + (poten * (Facuso / 100) * Facbal * 0.tipoluces) ini = ini * 1 dur = dur * 1 .

Tso) .tcarga. 13)) = "VIDRIO " Then CARVid = 1 area = Trim(datos.tofi * 1) Tparticion = particion * 24 q = q + 1 End If If Nombre = "PISO" Then CarPiso = 1 Piso = IGUALES * area * Ucoef * (tady * 1 .Atenuacion) Tempof = Trim(datos.TAdyacente) tofi = Trim(datos. j) = 0 + QSaparatos(0. 13)) = "PISO " Then Nombre = Trim(datos.tcarga.area) tady = Trim(datos. j) = 0 + QLaparatos(0.Tso) IGUALES = Trim(datos. j) = 0 + QLaparatos(0.lhg) Ig = Trim(datos. j) = QLaparatos(0.tcarga. j) = 0 + QLaparatos(0. 13)) = "TECHO INTERNO" Or UCase(Left(datos.6 End If If UCase(Left(datos.1 fin = ini + dur For j = 1 To 24 If j < ini Then QLaparatos(0.Ucoef) area = Trim(datos. 13)) = "PARTICION " Or UCase(Left(datos.Resultados .Campana) ini = Trim(datos.tcarga.tcarga.area) Ucoef = Trim(datos.tofi * 1) TTechoInt = TechoInt * 24 N = N + 1 End If End If If UCase(Left(datos. j) L = L + 1 End If End If If j > fin Then QLaparatos(0.duracion) ini = ini * 1 dur = dur * 1 . j) Next j totalapara = totallapara + totalsapara End If If UCase(Left(datos. j) = QLaparatos(0. j) N = N + 1 End If totallapara = totallapara + QLaparatos(0.inicio) dur = Trim(datos. 13)) = "APARATOS " Then CarAparat = 1 sensible = Trim(datos. j) totalsapara = totalsapara + QSaparatos(0.Ucoef) Scoef = Trim(datos. j) QSaparatos(0.IgPart) If Nombre = "PARTICION" Then CaRPArtic = 1 particion = IGUALES * area * Ucoef * (tady * 1 .Igaparatos) Campana = Trim(datos. j) q = q + 1 End If If j >= ini And j <= fin Then QSaparatos(0. j) QSaparatos(0. j) + Latente * 1 * Ig m = m + 1 Else QLaparatos(0.tofi * 1) Tpiso = Piso * 24 End If If Nombre = "TECHO INTERNO" Then CArTechint = 1 TechoInt = IGUALES * area * Ucoef * (tady * 1 . j) Qaparatos(0.shg) Latente = Trim(datos. j) If Campana = "SIN" Then QLaparatos(0. j) = 0 + QSaparatos(0. j) + QSaparatos(0. j) = sensible * 1 * Ig + QSaparatos(0.tcarga) Ucoef = Trim(datos.

Resultados .7 TemExt = Trim(datos. Meses) . Meses) = IgualVid * area * Scoef * SHGFhm(horas. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas. Meses) . Meses) . Meses) Next horas For horas = posti To 24 Solar(horas. Meses) Next horas Tconvidm(Meses) = Tconvid TSolarm(Meses) = Tsolar Next Meses Else Meses = CondicionesExteriores.Tempof) Tconvid = Tconvid + ConvectVid(horas.ListIndex comienzo = inicios(Meses) finali = 24 . Meses) ConvectVid(horas. Meses) . Meses) Next horas For horas = comienzo To finali Solar(horas. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas.Tempof) Tsolar = Tsolar + Solar(horas. Meses) Tconvid = Tconvid + ConvectVid(horas.1 posti = finali + 1 Tsolar = 0: Tconvid = 0 For horas = 1 To previa Solar(horas.comienzo previa = comienzo . o ri) Tsolar = Tsolar + Solar(horas. Meses) Tconvid = Tconvid + ConvectVid(horas.igvid) If OrientacionV = "N" Then ori = 1 If OrientacionV = "NE" Then ori = 2 If OrientacionV = "E" Then ori = 3 If OrientacionV = "SE" Then ori = 4 If OrientacionV = "S" Then ori = 5 If OrientacionV = "S0" Then ori = 6 If OrientacionV = "O" Then ori = 7 If OrientacionV = "N0" Then ori = 8 If CondicionesExteriores. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas.Textd) OrientacionV = Trim(datos. Meses) = 0 ConvectVid(horas. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas. Meses) Tconvid = Tconvid + ConvectVid(horas. Meses) .cboAnalisis. Meses) Next horas For horas = posti To 24 Solar(horas. Meses) = IgualVid * area * Scoef * SHGFhm(horas.Tempof) Tsolar = Tsolar + Solar(horas. Meses) Tconvid = Tconvid + ConvectVid(horas. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas.comienzo previa = comienzo .1 posti = finali + 1 Tsolar = 0: Tconvid = 0 For horas = 1 To previa Solar(horas.Tempof) Tsolar = Tsolar + Solar(horas.orientacion) IgualVid = Trim(datos. Meses) .cboAnalisis.Tempof) Tsolar = Tsolar + Solar(horas.ListIndex = 0 Then For Meses = 1 To 12 comienzo = inicios(Meses) finali = 24 . Meses. Meses) = IgualVid * Ucoef * area * (TempMaxExternasA nual(horas. Meses. Meses) ConvectVid(horas. Meses) . Meses) = 0 ConvectVid(horas. Meses) = 0 ConvectVid(horas. Meses) = 0 ConvectVid(horas.Tempof) Tconvid = Tconvid + ConvectVid(horas. o ri) Tsolar = Tsolar + Solar(horas. Meses) Next horas For horas = comienzo To finali Solar(horas.

orient) .color) TINT = Trim(datos.cielo) (Tdel (Tdel (Tdel (Tdel . Meses) * area * IgualPare QparTotal(Meses) = QparTotal(Meses) + QParedes(Hora. orient)) End If QParedes(Hora.fte) colorP = Trim(datos. orient) .Tso) IgualPare = Trim(datos.inercia) cielor = Trim(datos. Meses) = AvgSolOs(Meses.ListIndex = 0 Then For Meses = 1 To 12 QparTotal(Meses) = 0 For Hora = 1 To 24 Delay = Round((Hora . orient) TETD(Hora. Meses. orient) TETD(Hora.fte) Decrm = Trim(datos. orient) TETD(Hora.area) OrientPa = Trim(datos. Meses) = Ucoef * TETD(Hora.026 Then Tdel = SolTempCl(Delay. Meses) = AvgSolCl(Meses. 13)) = "PARED " Then CARPared = 1 Ucoef = Trim(datos. Meses) = Ucoef * TETD(Hora.IgPar) If OrientPa = "N" Then orient = 1 If OrientPa = "NE" Then orient = 2 If OrientPa = "E" Then orient = 3 If OrientPa = "SE" Then orient = 4 If OrientPa = "S" Then orient = 5 If OrientPa = "S0" Then orient = 6 If OrientPa = "O" Then orient = 7 If OrientPa = "N0" Then orient = 8 If CondicionesExteriores.TINT + decrement * AvgSolOs(Meses.Resultados .Ucoef) area = Trim(datos.TINT + decrement * AvgSolCl(Meses. 13)) = "TECHO " Then CARTecho = 1 Ucoef = Trim(datos. Meses) * area * IgualPare QparTotal(Meses) = QparTotal(Meses) + QParedes(Hora.tcarga. orient) . Meses) Next Hora End If End If If UCase(Left(datos.tcarga. Meses) = AvgSolOs(Meses. orient) TETD(Hora. orient)) End If QParedes(Hora.TINT + decrement * AvgSolOs(Meses.026 Then Tdel = SolTempCl(Delay.ListIndex QparTotal(Meses) = 0 For Hora = 1 To 24 Delay = Round((Hora . 0) If Delay <= 0 Then Delay = Round(24 + Delay) If colorP = 0. orient)) Else Tdel = SolTempOs(Delay. Meses.Tlag). Meses) Next Hora Next Meses Else Meses = CondicionesExteriores.TINT + decrement * AvgSolCl(Meses. Meses) = AvgSolCl(Meses. orient)) Else Tdel = SolTempOs(Delay.color) TimLag = Trim(datos. orient) . 0) If Delay <= 0 Then Delay = Round(24 + Delay) If colorP = 0.cboAnalisis. Meses.orientacion) decrement = Trim(datos.8 Next horas Tconvidm(Meses) = Tconvid TSolarm(Meses) = Tsolar End If - - - - End If If UCase(Left(datos.cboAnalisis.Tlag).Ucoef) areaT = Trim(datos. Meses.area) techcoef = Trim(datos.inercia) Tlag = Trim(datos.

9) TETDT(Hora.Tso) Wino = Trim(datos.Av gSolCl(Meses. 9) . Meses) Next Hora End If End If End If Loop Close #1 Open App.Hro) / 100 WEXT = Trim(datos.026 Then TeDelT = SolTempCl(Delay.areaof) VolOfi(nOfi) = arOfi * Hparedof QSSUMOF(nOfi) = 0 If CondicionesExteriores. Meses. Meses) Next Hora Next Meses Else Meses = CondicionesExteriores.cboAnalisis. Mes) = QsensVent(25. 9) TETDT(Hora. 9) .9 Tempi = Trim(datos.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1. Mes) + QLatVent(Hora. 0) If Delay <= 0 Then Delay = Round(24 + Delay) If techcoef = 0. 9) TETDT(Hora.Ventof) Qinfil = Trim(datos. Mes) .23 * Qvent * (TempMaxExternasAnual(Hora. Meses.Tino * 1) QLatVent(Hora.026 Then TeDelT = SolTempCl(Delay. Mes) QsensVent(25. . Meses) QTechTotal(Meses) = QTechTotal(Meses) + QTechos(Hora. Mes) = QLatVent(25.Resultados .Wino) QLatInfil(Hora.TimLag). Mes) = QsensVent(Hora. Meses) = AvgSolOs(Meses.TimLag). Mes) .Tso) If CondicionesExteriores.cboAnalisis. Mes) QsensInfil(25.nombamb Then Qvent = Trim(datos. Mes) QTInfil(Hora. Meses) QTechTotal(Meses) = QTechTotal(Meses) + QTechos(Hora.Tempi + Decrm * (TeDelT . 9)) Else TeDelT = SolTempOs(Delay. Mes) = 1. 9) TETDT(Hora. Mes) = QsensInfil(Hora. Meses) = Ucoef * areaT * TETDT(Hora.Hrext) / 100 CaudalAireOfi(nOfi) = Qvent * 1 + Qinfil * 1 Hparedof = Trim(datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas. Meses) = AvgSolOs(Meses.Av gSolOs(Meses.Av gSolCl(Meses.ListIndex QTechTotal(Meses) = 0 For Hora = 1 To 24 Delay = Round((Hora .ListIndex = 0 Then For Mes = 1 To 12 For Hora = 1 To 24 QsensVent(Hora. 9) . Mes) = 3010 * Qvent * (WEXT . Mes) + QsensInfil(Hora.23 * Qinfil * (TempMaxExternasAnual(Hora. Mes) = 3010 * Qinfil * (WEXT . 9) . 9)) End If QTechos(Hora. datos If Ofi((nOfi .Tino * 1) QsensInfil(Hora. 0) If Delay <= 0 Then Delay = Round(24 + Delay) If techcoef = 0. Meses) = Ucoef * areaT * TETDT(Hora. Mes) .Tempi + Decrm * (TeDelT . Meses) = AvgSolCl(Meses. Mes) + QLatVent(Hora. Mes) + QsensVent(Hora.ListIndex = 0 Then For Meses = 1 To 12 QTechTotal(Meses) = 0 For Hora = 1 To 24 Delay = Round((Hora .1)) = datos.Tempi + Decrm * (TeDelT . Mes) QLatVent(25. Mes) = QsensInfil(25. 9)) End If QTechos(Hora. Meses.Hpared) arOfi = Trim(datos.Av gSolOs(Meses. Mes) + QLatInfil(Hora.InfIl) Tino = Trim(datos.cboAnalisis. 9)) Else TeDelT = SolTempOs(Delay.Wino) QTVent(Hora. Meses) = AvgSolCl(Meses.Tempi + Decrm * (TeDelT . Mes) = 1. Meses.

Mes) + QTVent(Hora. Mes. Mes) QLatInfil(25. Hora) = QTechos(Hora. Mes) + ConvectVid(Hora.23 * Qvent * (TempMaxExternasAnual(Hora. Hora) + Qequipos(0. Mes) + QsensInfil(Hora.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . Mes) + QTInfil(Hora. Hora) + QSofic(nOfi. Mes) + QsensInfil(Hora.cboAnalisis. Mes) + QTechos(H ora. Mes) QsensVent(25.1))) + ". Mes. Mes) + QLatVent(Hora. Mes.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . 25) = QSofic(nOfi. Mes) = 1. Hora) + Qequ ipos(0. Mes. Mes) + QsensInfil(Hora.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t1 = QSpersonas(0. Hora) > QSSUMOF(nOfi) Then QSSUMOF(nOfi) = QSofic(nOfi. Mes) = QTInfil(25. Hora) > QSSUMOF(nOfi) Then QSSUMOF(nOfi) = QSofic(nOfi. Mes) + QLpersonas( 0. 25) QSofic(nOfi.r st" For Random As #1 Len = Len(result) Get #1. Mes) + QParedes(Hora. Mes) = 3010 * Qinfil * (WEXT . Mes. 25) QLofic(nOfi. Hora) QSofic(nOfi. Mes. Hora) MESMAXOFI = Mes HORAMAXOFI = Hora End If Next Hora End If End If Loop Close #1 Dim n_carg As Long n_carg = lenfile4(App. Mes) = QTInfil(25. Mes) + QLatVent(Hora. Mes. Mes. Hora) + Qluces(0. Mes. 25) If QSofic(nOfi. Mes) + QTechos(H ora. Mes) = QsensVent(25. Mes. Hora) + QSpersonas(0. Hora) = QLatVent(Hora. Hora) = QLatVent(Hora. Hora) + Qluces(0. Mes. Mes) QsensInfil(25. Mes) = QsensInfil(Hora. Mes) . Mes) + QLatInfil(Hora. Hora) + QSpersonas(0.Comp = "T" result. Mes) QofiC(nOfi. Mes. Hora) QofiC(nOfi.Tino * 1) QLatVent(Hora. Mes) + QLpersonas( 0. Mes) + QParedes(Hora. Mes) + Solar(Hora. Hora) + Qequipos(0. Mes) = QsensVent(Hora.Nombre = "Sensible Personas" result. Mes) = 1. Mes) + Solar(Hora. Mes) + QParedes(Hora. Hora) QSofic(nOfi. Hora) + QLofic(nOfi.ListIndex For Hora = 1 To 24 QsensVent(Hora.Wino) QTVent(Hora. Mes) = QLatVent(25.23 * Qinfil * (TempMaxExternasAnual(Hora. Mes) = QsensInfil(25. n_carg. Mes. 25) QSofic(nOfi. Hora) + QTVent(Hora. Mes. Mes. Mes) + QLatInfil(Hora. 25) If QSofic(nOfi. Hora) + QLaparatos(0. result Close #1 If CarPersonas = 1 Then n_carg = lenfile4(App. Mes) + particion + Piso + TechoInt + Qaparatos(0. Hora) + QofiC(nOfi. Mes. Mes. Mes) + particion + Piso + TechoI nt + QSaparatos(0. 25) = QofiC(nOfi. 25) = QSofic(nOfi. Mes. Mes) = 3010 * Qvent * (WEXT . Mes) QTInfil(25. 25) QLofic(nOfi. Mes) + QTInfil(Hora. Hora) + QofiC(nOfi. Mes) = QTVent(25. Mes. Mes. Hora) + Qluces(0. Mes) = QTVent(25. Hora) + Qluces(0. Hora) MESMAXOFI = Mes HORAMAXOFI = Hora End If Next Hora Next Mes Else Mes = CondicionesExteriores. Mes. Hora) + QLaparatos(0. Hora) + QSofic(nOfi. Mes) = QLatInfil(25. Mes. Mes) QLofic(nOfi.Tino * 1) QsensInfil(Hora. Mes) + particion + Piso + TechoInt + Qaparatos(0. Mes) QofiC(nOfi. Mes) .rst") result.Wino) QLatInfil(Hora. Hora) + QSpersonas(0. Mes) + QTInfil(Hora. Mes) + ConvectVid(Hora. Mes) + QsensVent(Hora. 25) = QofiC(nOfi. Hora) = QsensVent(Hora.10 QLatInfil(25. 25) = QLofic(nOfi. Mes) QTInfil(Hora. Hora) + QSpersonas(0. 1) . Me s) + ConvectVid(Hora. Hora) + QLofic(nOfi. Mes) QLofic(nOfi. Mes. Mes. Hora) + QLpersonas(0. Hora) = QsensVent(Hora. Mes) + QLatInfil(Hora. Hora) + Qequ ipos(0. Mes) QLatVent(25. Mes. Mes) + QLatInfil(Hora. Hora) = QTechos(Hora. Mes) + particion + Piso + TechoI nt + QSaparatos(0. Mes. Mes) + Solar(Hora. Mes) + Solar(Hora. Mes) + QParedes(Hora. Mes.1 ))) + ". Mes) = QLatInfil(25.Resultados . Mes) QTInfil(25. Mes) QTVent(25. Mes) + QLatInfil(Hora.rst") Open App. Me s) + ConvectVid(Hora. Mes) + QTVent(Hora. Hora) + QLpersonas(0. Mes. Mes) + QTInfil(Hora.1))) + ". 25) = QLofic(nOfi. Hora) + QTVent(Hora. Hora) QofiC(nOfi. Mes) QTVent(25.

rst") result. 24) result.t9 = QLpersonas(0.id = result. 20) result.t23 = QLpersonas(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ". result Close #1 n_carg = lenfile4(App. 13) result.t11 = QSpersonas(0. 6) result. 3) result.t8 = QSpersonas(0. 2) result.t24 = QLpersonas(0. 7) result.t2 = QSCpersonas(0.tTotal = totalL result.t19 = QLpersonas(0.t18 = QLpersonas(0.t24 = QSpersonas(0.t7 = QLpersonas(0.t22 = QLpersonas(0.t5 = QLpersonas(0. 21) result. 5) result. 17) result. 23) result.Path & "/" & Trim(Directorio) & "/Resultados/" + ". 16) result.t15 = QSpersonas(0.id + 1 Open App. 8) result. 11) result. 15) result. 2) result. 9) result.salto = vbCrLf result. 3) result. 14) result. 18) result.t14 = QLpersonas(0. 24) result. 13) result. 22) result. n_carg.t17 = QLpersonas(0.t4 = QLpersonas(0. 11) result.t15 = QLpersonas(0.t14 = QSpersonas(0.t17 = QSpersonas(0. 17) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t19 = QSpersonas(0. 4) result. 23) result.t13 = QSpersonas(0. 21) result.t16 = QLpersonas(0. 20) result.t3 = QSpersonas(0.t21 = QLpersonas(0. 14) result. 10) result.t6 = QLpersonas(0. 16) result. 5) result. 6) result. 12) result.salto = vbCrLf result.Comp = "L" result.t21 = QSpersonas(0.1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi .id = 0 Open App.rst") result. 18) result.rst" .t16 = QSpersonas(0.t5 = QSpersonas(0.t12 = QLpersonas(0.t1 = QLpersonas(0. 7) result.t8 = QLpersonas(0.t1 = QSCpersonas(0. 19) result. 1) result.t3 = QLpersonas(0. 9) result.t2 = QLpersonas(0. result Close #1 n_carg = lenfile4(App.t18 = QSpersonas(0. n_carg. 8) result.t20 = QLpersonas(0.t13 = QLpersonas(0.t6 = QSpersonas(0.11 ". 12) result. 10) result.t4 = QSpersonas(0.1))) result. 15) result.t2 = QSpersonas(0.Nombre = "Sensible Convectiva Personas" result.Nombre = "Latente Personas" result.Comp = "S" result.t12 = QSpersonas(0. 4) result. 19) result.t11 = QLpersonas(0.t9 = QSpersonas(0.tTotal = totalS result.t10 = QLpersonas(0.Resultados .t20 = QSpersonas(0.t10 = QSpersonas(0.t7 = QSpersonas(0.t23 = QSpersonas(0.t22 = QSpersonas(0. 2) + Trim(Ofi((nOfi .rst" .1))) + + "Ofic" + Trim(Ofi((nOfi . 1) result. 22) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.1))) ".

t13 = QSCpersonas(0. 14) result.1))) ". 21) result. 22) result.t14 = QSRpersonas(0. 6) result.t9 = QSCpersonas(0.rst" .1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi . 22) result. result Close #1 n_carg = lenfile4(App.12 ". 21) result. 16) result.t20 = QSRpersonas(0.t20 = QSCpersonas(0.id + 1 Open App.t11 = QSCpersonas(0.Resultados . 24) result.t2 = QSRpersonas(0.t16 = QSRpersonas(0.1))) result. 5) result.t18 = QSCpersonas(0.t5 = QSRpersonas(0. 18) result. 11) result. 19) result.t23 = QSRpersonas(0. 1) + Trim(Ofi((nOfi .t24 = QSRpersonas(0. 10) result.1))) + + "Ofic" + Trim(Ofi((nOfi .t4 = QSCpersonas(0. 17) result.t19 = QSCpersonas(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t6 = QSRpersonas(0.Comp = "S" result. 10) result. 14) result.rst" .Nombre = "Sensible Radiación Personas" result.t8 = QSCpersonas(0. n_carg. 12) result. 4) result.t15 = QSCpersonas(0. 2) result.t11 = QSRpersonas(0. 12) result.t19 = QSRpersonas(0. 13) result.t8 = QSRpersonas(0.t12 = QSCpersonas(0.t7 = QSRpersonas(0.salto = vbCrLf result. 9) result. 1) result. 15) result.rst") result.Path & "/" & Trim(Directorio) & "/Resultados/" + ".Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.id + 1 Open App. 7) result. 19) result. 3) result. 17) result.t3 = QSRpersonas(0. n_carg.tTotal = totalSc result. 20) result. 5) result.t17 = QSCpersonas(0.t12 = QSRpersonas(0.id = result. 23) result.t16 = QSCpersonas(0.t17 = QSRpersonas(0. 6) result. 18) result.t13 = QSRpersonas(0.t6 = QSCpersonas(0.tTotal = totalSr result.t22 = QSRpersonas(0.t15 = QSRpersonas(0.t3 = QSCpersonas(0.t22 = QSCpersonas(0. 8) result.salto = vbCrLf result.t14 = QSCpersonas(0.id = result.t23 = QSCpersonas(0. 13) result. 23) result.t24 = QSCpersonas(0. 20) result. 4) result.Comp = "S" result.t18 = QSRpersonas(0.Nombre = "Equipos de Potencia" result.t1 = Qequipos(0. 16) result.t9 = QSRpersonas(0. 9) result.t21 = QSCpersonas(0. 3) result.t10 = QSRpersonas(0. 8) result.t21 = QSRpersonas(0.t5 = QSCpersonas(0. 7) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t4 = QSRpersonas(0.t7 = QSCpersonas(0. 15) result. 11) result. result Close #1 End If If CarEQuip = 1 Then n_carg = lenfile4(App.t1 = QSRpersonas(0.rst") result.t10 = QSCpersonas(0. 24) result.

t17 = QCluces(0. 4) result. 7) result.rst" .t9 = QCluces(0. 16) result.t2 = Qequipos(0.t2 = QCluces(0.t23 = Qequipos(0. 17) result. 11) result.Resultados .t18 = QCluces(0. 17) result. 23) result.t19 = QCluces(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ". 20) result.tTotal = totalcluc result.t6 = Qequipos(0. 16) result. 6) result. 24) result. 2) result.t16 = Qequipos(0. 3) result.1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi .t10 = Qequipos(0.t3 = QCluces(0.salto = vbCrLf result.t7 = QCluces(0. 23) result.t12 = Qequipos(0. 14) result.t22 = Qequipos(0.id + 1 Open App.t21 = QCluces(0. 24) result. 5) result. 6) result. 12) result.t8 = Qequipos(0.t15 = Qequipos(0.Comp = "S" result. result Close #1 n_carg = lenfile4(App.id + 1 Open App.1))) result. 20) result.tTotal = totalEq result.t19 = Qequipos(0.13 ". 19) result. 18) result. 19) result.t16 = QCluces(0.t3 = Qequipos(0.t5 = Qequipos(0.t13 = QCluces(0.rst") result. 3) result. 21) result. 22) result.id = result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.rst" .t9 = Qequipos(0. 7) result.t22 = QCluces(0.t12 = QCluces(0.1))) ".id = result.t17 = Qequipos(0. 2) result. 5) result. 9) result.t14 = Qequipos(0.t21 = Qequipos(0. 8) result.Comp = "S" result.t7 = Qequipos(0.t11 = Qequipos(0. 8) result.t11 = QCluces(0.t4 = QCluces(0.t6 = QCluces(0.t24 = QCluces(0.t20 = QCluces(0.t18 = Qequipos(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ".Nombre = "Luces Convectivas" result.t24 = Qequipos(0.t15 = QCluces(0.salto = vbCrLf result. 11) result. 9) result. result Close #1 End If If CarLuces = 1 Then n_carg = lenfile4(App.1))) + + "Ofic" + Trim(Ofi((nOfi .t10 = QCluces(0.t14 = QCluces(0.t23 = QCluces(0.rst") result. 12) result.t1 = QCluces(0.Nombre = "Luces-Radiación" + Trim(Ofi((nOfi .t13 = Qequipos(0. 18) result. 15) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t5 = QCluces(0. 21) result.t8 = QCluces(0. 14) result. 13) result. 22) result.t4 = Qequipos(0. 13) result.t20 = Qequipos(0. 10) result. n_carg. n_carg. 4) result. 10) result. 15) result. 1) result.

11) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.Comp = "L" + Trim(Ofi((nOfi .t1 = QRluces(0.t16 = QRluces(0. 15) result. result Close #1 End If If CarAparat = 1 Then n_carg = lenfile4(App. 4) result.t6 = Qluces(0.t2 = Qluces(0.rst" . result Close #1 n_carg = lenfile4(App.t11 = QRluces(0. 13) result. 8) result. 12) result.t11 = Qluces(0. 3) result.rst" .1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi .tTotal = totalluces result.1))) result.id + 1 Open App.t10 = Qluces(0. 22) result.t10 = QRluces(0. 7) result. n_carg.t7 = QRluces(0.1))) ".t9 = Qluces(0. 3) result. 21) result. 11) result.tTotal = totalrluc result.t24 = Qluces(0.t21 = Qluces(0.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t3 = QRluces(0.t23 = QRluces(0.1))) + + "Ofic" + Trim(Ofi((nOfi . 9) result. 6) result. 15) result. 14) result. 10) result. 6) result.t12 = Qluces(0. 17) result.rst") result.t2 = QRluces(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ". 8) result.Resultados . 22) result.t4 = QRluces(0. 14) result.id + 1 Open App.t17 = QRluces(0. 18) result. 1) result.t8 = QRluces(0.t13 = QRluces(0. 18) result. n_carg.t14 = QRluces(0.t7 = Qluces(0.t14 = Qluces(0.t1 = Qluces(0.t23 = Qluces(0.t18 = Qluces(0.id = result. 9) result. 19) result.14 ".t8 = Qluces(0.Path & "/" & Trim(Directorio) & "/Resultados/" + ". 24) result. 16) result.t15 = QRluces(0. 21) result. 23) result. 5) result.t4 = Qluces(0. 16) result.t20 = QRluces(0.t19 = Qluces(0.t21 = QRluces(0.salto = vbCrLf result.salto = vbCrLf result.t5 = Qluces(0. 7) result.t18 = QRluces(0. 19) result.t9 = QRluces(0.t5 = QRluces(0. 20) result.rst") result. 4) result. 2) result. 5) result.t15 = Qluces(0. 2) result.t6 = QRluces(0.t13 = Qluces(0. 13) result.t20 = Qluces(0.id = result. 12) result.t24 = QRluces(0.t12 = QRluces(0.t19 = QRluces(0.Nombre = "Luces" result.t16 = Qluces(0.t3 = Qluces(0. 24) result.t22 = QRluces(0.t22 = Qluces(0.t17 = Qluces(0. 20) result. 23) result. 17) result. 10) result. 1) result.Comp = "T" result.

salto = vbCrLf result.t24 = QLaparatos(0.t18 = QSaparatos(0. 11) result. 6) result.1))) + + "Ofic" + Trim(Ofi((nOfi .t3 = QLaparatos(0. 20) result.t6 = QSaparatos(0.t2 = QLaparatos(0.t14 = QSaparatos(0. 4) result.t20 = QSaparatos(0. 22) result. 19) result.Nombre = "Aparatos-Latente" result.t6 = QLaparatos(0.t20 = QLaparatos(0.t18 = QLaparatos(0.id + 1 Open App.t13 = QLaparatos(0. 23) result. result Close #1 n_carg = lenfile4(App.Resultados . 12) result.t14 = QLaparatos(0.id = result.Comp = "T" result.t16 = QSaparatos(0.tTotal = totalsapara result.Path & "/" & Trim(Directorio) & "/Resultados/" + ". 9) result. 22) result. 5) result. 21) result.t23 = QSaparatos(0.t17 = QLaparatos(0. 15) result.t12 = QSaparatos(0. 19) result. result Close #1 n_carg = lenfile4(App.t7 = QSaparatos(0. 6) result.t3 = QSaparatos(0. 11) result.Comp = "S" result.t1 = QLaparatos(0.salto = vbCrLf result.15 ".Path & "/" & Trim(Directorio) & "/Resultados/" + ". 17) result.t2 = QSaparatos(0. 12) result.t19 = QSaparatos(0.t9 = QLaparatos(0. 2) result.t19 = QLaparatos(0. 3) result. 13) result.t17 = QSaparatos(0.t11 = QLaparatos(0. 14) result. 16) result.Nombre = "Aparatos-Total" + Trim(Ofi((nOfi . 8) result. 4) result.t15 = QLaparatos(0.Nombre = "Aparatos-Sensible" result.t7 = QLaparatos(0. 24) result. 1) result.rst") result. 1) result.t5 = QSaparatos(0.t9 = QSaparatos(0.t1 = QSaparatos(0.rst" .1))) result. n_carg.t4 = QSaparatos(0.t23 = QLaparatos(0.id + 1 Open App.t16 = QLaparatos(0.t15 = QSaparatos(0.t11 = QSaparatos(0.t8 = QSaparatos(0.t22 = QLaparatos(0. 2) result. 8) result. 13) result. n_carg.t21 = QLaparatos(0. 9) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. 7) result.t8 = QLaparatos(0. 21) result. 5) result. 16) result. 20) result. 18) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi .t10 = QLaparatos(0.rst") result. 15) result.t13 = QSaparatos(0. 17) result.t22 = QSaparatos(0.id = result.t5 = QLaparatos(0. 14) result.t24 = QSaparatos(0. 23) result. 18) result.rst" .1))) ". 10) result.t4 = QLaparatos(0. 24) result. 10) result.t12 = QLaparatos(0. 3) result.t10 = QSaparatos(0.tTotal = totallapara result.t21 = QSaparatos(0. 7) result.

Comp = "S" result. 9) result.t17 = Qaparatos(0.salto = vbCrLf result. 11) result.t7 = particion result.1))) + + "Ofic" + Trim(Ofi((nOfi + Trim(Ofi((nOfi . 6) result.t5 = particion result.rst" For Random As #1 Len = Len(result) Put #1.rst" For Random As #1 Len = Len(result) Put #1.tTotal = totalapara result.t2 = Qaparatos(0.Path & "/" & Trim(Directorio) & "/Resultados/" . 15) result. 3) result.t14 = Qaparatos(0.t11 = particion result.t13 = Qaparatos(0. n_carg.t11 = Qaparatos(0.rst") result.t22 = Qaparatos(0. 22) result.t16 = Qaparatos(0.t6 = Qaparatos(0.Resultados . 16) result. 12) result.t23 = Qaparatos(0. 20) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" ".t14 = particion result. 7) result.t1 = Qaparatos(0.t3 = Qaparatos(0.t10 = Qaparatos(0.t5 = Qaparatos(0.id = result. 23) result.1))) + ". 1) result.t24 = particion result.t20 = Qaparatos(0.t19 = Qaparatos(0. 19) result.t12 = Qaparatos(0.t1 = particion result.t20 = particion result.t13 = particion result.t2 = particion result.t15 = Qaparatos(0.t17 = particion result.t7 = Qaparatos(0. 18) result. 8) result.id + 1 Open App. 10) result.t22 = particion result.1))) + + "Ofic" + Trim(Ofi((nOfi .salto = vbCrLf result.t18 = Qaparatos(0.id = result.t12 = particion result.t21 = particion result. 5) result.t16 = particion result.t9 = Qaparatos(0.t24 = Qaparatos(0.t18 = particion result. result Close #1 End If If CarPiso = 1 Then n_carg = lenfile4(App.t21 = Qaparatos(0.t15 = particion result. 13) result.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Ofi((nOfi .t8 = Qaparatos(0.t8 = particion result.t9 = particion result.t3 = particion result.t19 = particion result. result Close #1 End If If CaRPArtic = 1 Then n_carg = lenfile4(App.t6 = particion result.t23 = particion result. 21) result. 24) result.id + 1 Open App.16 result. 2) result. 14) result. 17) result.tTotal = Tparticion result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" ".Nombre = "Sensible-Partición" result.t4 = Qaparatos(0.t10 = particion result. 4) result. n_carg.t4 = particion result.

17 .t23 = Piso result.t17 = TechoInt result.t13 = TechoInt result.t9 = Piso result.1))) + ".Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .id + 1 Open App.Comp = "S" result.rst" For Random As #1 Len = Len(result) Put #1.t11 = TechoInt result.t5 = Piso result.t8 = TechoInt result.t22 = Piso result.t8 = Piso result.tTotal = TTechoInt result.t4 = Piso result.t20 = Piso result.t3 = Piso result.Nombre = "Sensible-TechoInterno" result.t4 = TechoInt result.t14 = TechoInt result.t2 = TechoInt result.t15 = TechoInt result.rst") result.1))) + ".t14 = Piso result.t21 = Piso result.t6 = TechoInt result.t1 = TechoInt result.id = result.t12 = Piso result.t24 = TechoInt result.t21 = TechoInt result.t9 = TechoInt result.t1 = Piso result.t24 = Piso result. result Close #1 .Comp = "S" result.t2 = Piso result.t19 = TechoInt result.t11 = Piso result.t3 = TechoInt result. result Close #1 End If If CArTechint = 1 Then n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .rst" For Random As #1 Len = Len(result) Put #1.t5 = TechoInt result. n_carg.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t17 = Piso result.t6 = Piso result.1))) + ".salto = vbCrLf result.t16 = Piso result.t16 = TechoInt result.t20 = TechoInt result.t13 = Piso result. n_carg.t22 = TechoInt result.t18 = TechoInt result.t10 = TechoInt result.Nombre = "Sensible-Piso" result.t15 = Piso result.1))) + ".tTotal = Tpiso result.salto = vbCrLf result.t23 = TechoInt result.t7 = Piso result.id + 1 Open App.t19 = Piso result.Resultados .rst") result.id = result.t18 = Piso result.t12 = TechoInt result.t7 = TechoInt result.t10 = Piso result.

2 ListView1.Add . 2 ListView1.Add . "03 00".ColumnHeaders. 2 ListView2. "09 00".ColumnHeaders. "17 00".Add .Add .ColumnHeaders. 2 ListView1.Add . 1300. "d". 2 ListView1. "p".ColumnHeaders. "23 00". "PK".Add . "tiu". 2 ListView1. "car". 900. 2 ListView2.Add . "d".ColumnHeaders. "ci". 2 ListView2. 0 ListView2. 2 ListView1. "14 00". "cero".ColumnHeaders.ColumnHeaders.Add . "u". "PK".Add . 2000. "s". "si". 900. "18 00". "tit". "oc". 2 ListView2. 2 ListView2. "c".Add . "19 00".ListItems.Add .ColumnHeaders. "n". "21 00". 900. "nue". 2 ListView2.Add .Add .Add .Add . 2 ListView2.ColumnHeaders.Add . "o". "t". "car". 900. 2 .Add .Add . "s". "03 00". 2 ListView2. 2 ListView1.ColumnHeaders. 2 ListView1.ColumnHeaders.ColumnHeaders.ColumnHeaders. "". "10 00".Add . "tit". "20 00". "12 00".Add . 900.Add .Add .Add .ColumnHeaders.ColumnHeaders.Add .ColumnHeaders.Add . 900. "24 00". "04 00". 900.ColumnHeaders. "22 00". "nue". 2 ListView1. "on". 2 ListView1.Add . 2 ListView2. 900.Add .Add . "09 00". "22 00". 2 ListView2. 900.Add . "19 00".Add . 900. "07 00".1))) Next Tabs ListView1.Resultados . "di". 2000. "do". "11 00".ColumnHeaders. "tid". 2 ListView1. 2 ListView2.Tabs. "08 00". 900. "q". 900. 900.Add .Add . . "12 00".Tabs. 900.ColumnHeaders. 900. 2 ListView2. "01 00". 2 ListView1.ColumnHeaders. "cero".Add . "PK".Add . "c". "16 00".18 End If Call IMPRESION Next nOfi Call CalculoUE tabstrip1. "di".ColumnHeaders. 900. "sie".Clear ListView2. "sie". "ca".ColumnHeaders. 2 ListView1. "tiu". "11 00". 900. 2 ListView2.Add . 2 ListView1. 900. 900.Add . "ci". "10 00".Add . "tot". "Carga".ColumnHeaders.ColumnHeaders. 2 ListView1.ColumnHeaders. 900.Add . 900. 900. 0 ListView2. 900.ColumnHeaders. "04 00". "17 00".ColumnHeaders.Add . 2 ListView1.ColumnHeaders.ColumnHeaders. 2 ListView2. 0 ListView1. "do". "06 00". 2 ListView1. 900. 900. "v".Add . "16 00". "o". "21 00".Add .Add .Add .Clear For Tabs = 1 To n_ofi tabstrip1. "24 00". "n". "tid".Add .ColumnHeaders. 900. "tr". 2 ListView2. 900. 0 ListView1.ColumnHeaders. "die".Clear ListView1. "tr".ColumnHeaders. 2 ListView2. "13 00". "TOTAL 24h".ColumnHeaders. 2 ListView1. 2 ListView1. 2 ListView1. "u". "q".ListItems.ColumnHeaders. 2 ListView1. "oc". 900.ColumnHeaders.ColumnHeaders. 900. 2 ListView2.Add . "15 00".ColumnHeaders. "die".ColumnHeaders.ColumnHeaders.ColumnHeaders.ColumnHeaders. "si". 0) = "Ofic" & Trim(Ofi((Tabs . 900. 2 ListView2. "01 00".ColumnHeaders. 900. "02 00".Add . "07 00". "08 00". "v". 900.ColumnHeaders. 2 ListView1. "23 00". 900.ColumnHeaders. 2 ListView1. "ID". 2 ListView1. 100 ListView2.ColumnHeaders. "02 00". 900. 900.ColumnHeaders.ColumnHeaders.Add .ColumnHeaders.Add . 900.Add .Add .ColumnHeaders. 900. "ID". 900.ColumnHeaders. 900. "15 00".ColumnHeaders. 2 ListView2.Add(Tabs.Clear ListView2.Add . 2 ListView2.ColumnHeaders. 2 ListView2.Add .Add .ColumnHeaders. 900.ColumnHeaders. "20 00". "14 00". 900.ColumnHeaders. "ID". "Carga". 900. 900. 900.ColumnHeaders.ColumnHeaders. 2 ListView1.Add . "18 00". 900. "05 00". 2 ListView1. "13 00". 900. .ColumnHeaders. "on". 2 ListView2. 2 ListView2. "PK". "ca".Add . 900. "05 00".Clear Dim itmX As ListItem Dim Total As Double ListView1. 2 ListView2. 900.Add . "ID". "t". "06 00".

Add . 900. 2 "di". ListView3. 2 "nue". 0 "PK". ListView3. "TOTAL 24h".Comp. 2 "do".SubItems(7) = Trim(result. "01 00". ListView3. 900. 2000. 2 "tr". "19 00".19 ListView2. 900. 2 "ci". ListView3.ColumnHeaders. "04 00". ListView3. "TOTAL 24h". 900. ListView3. "22 00".Resultados . Call TabStrip1_Click End Sub "tot".Add . 900. "18 00". "12 00".SubItems(2) = Trim(result. 900.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Prueba) + ".ColumnHeaders.Clear ListView3.ColumnHeaders.t7) itmX.ColumnHeaders.t11) .Add . ListView3.Add . 2 "d".Add . ListView3.Add .ColumnHeaders. ListView3.ColumnHeaders.SubItems(13) = Trim(result.Add .Add . 100 "ID". "06 00".Add .ColumnHeaders. ListView3.ColumnHeaders. "16 00".ColumnHeaders. result.t3) itmX. ListView3. . ListView3.Add .Clear ListView2.ColumnHeaders.ColumnHeaders. ListView3. ListView3. "05 00".t2) itmX.Add .ColumnHeaders.ColumnHeaders. 900. ListView3. 2 "s". "07 00".Add . ListView3.Add . 900.ColumnHeaders. ListView3. 900. 2 "u".Nombre) itmX.SubItems(5) = Trim(result.ColumnHeaders.Add .t6) itmX. "03 00".ColumnHeaders.SubItems(1) = i . ListView3.t1) itmX.ColumnHeaders.t8) itmX. 900. ListView3.ColumnHeaders. "15 00".Add . 900. ListView3. 900. 1300. "PK".SubItems(3) = Trim(result.ListItems. "24 00".Add .ColumnHeaders. 2 "ca". "21 00". 900. ListView3.SubItems(9) = Trim(result.SubItems(11) = Trim(result.SubItems(8) = Trim(result.Add .Add(1.rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.ColumnHeaders.ColumnHeaders. 2 "v". 2 "n". ListView3.ColumnHeaders.SelectedItem Open App.ColumnHeaders. 900.t5) itmX. "20 00".ColumnHeaders. "11 00". 900.Add . "17 00". 2 "t". ListView3. "09 00". 2 "si".Add .Add .Add .Add . 900. 2 "on".ColumnHeaders.Add . 2 "p". "". 2 "tid". "08 00". 100 Private Sub Salida_Click() End End Sub Private Sub TabStrip1_Click() ListView1. . 900. 2 "die". ListView3. 900.Add . ListView3.ColumnHeaders. 0 "car".Add . "". "14 00". 2 "tot". 2 "sie". 2 "cero". 900. result i = i + 1 If UCase(Left(result.Clear ListView3.SubItems(12) = Trim(result. "13 00". 2 "c".t10) itmX. "23 00".ColumnHeaders.ColumnHeaders.Add .Clear ListView3. "ID".t9) itmX. 900. ListView2.ListItems.ColumnHeaders. 900. ListView3.ColumnHeaders.1 itmX. 2 "tit". "02 00".id) itmX. "Carga".ColumnHeaders. ListView3.Add .Clear Dim result As Resulta2 Dim itmX As ListItem Dim itmx2 As ListItem Dim itmX3 As ListItem Dim Prueba As String i = 0 Prueba = tabstrip1. 2 "oc".t4) itmX. 1300. 1)) = "S" Then Set itmX = ListView1. 900.Add . 2 "p". 2 "q".SubItems(4) = Trim(result.ListItems.ListItems. ListView3.Add .Add . ListView3.Add .SubItems(10) = Trim(result. 900. 2 "tiu". 2 "o". 900.SubItems(6) = Trim(result. "10 00".ColumnHeaders.ListItems.

rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.t16) Trim(result. result L = L + 1 If UCase(Left(result.SubItems(1) = k .t8) itmx2.t6) itmx2.SubItems(1) = L .SubItems(2) = Trim(result.t14) itmx2. .SubItems(20) = itmX.SubItems(5) = Trim(result.SubItems(27) = Trim(result. 1)) = "L" Then Set itmx2 = ListView2.SubItems(22) = Trim(result.SubItems(6) = Trim(result.SubItems(3) = Trim(result.t7) itmx2.Add(1.t13) Trim(result. result k = k + 1 If UCase(Left(result. result.SubItems(26) = Trim(result.t21) Trim(result.t17) Trim(result.SubItems(4) = Trim(result.SubItems(25) = Trim(result.t20) Trim(result.SubItems(22) = itmX.Nombre) itmx2.t12) itmx2.SubItems(14) = Trim(result.t13) itmx2.ListItems.t16) itmx2.t22) Trim(result.t12) Trim(result.ListItems.SubItems(4) = Trim(result. result. .t3) itmX3. .SubItems(2) = Trim(result.SubItems(26) = itmX.SubItems(18) = itmX.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Prueba) + ".t9) itmx2.SubItems(7) = Trim(result.t22) itmx2.SubItems(24) = itmX.SubItems(27) = Set itmX = Nothing End If Trim(result.t19) Trim(result.t24) itmx2.SubItems(13) = Trim(result.id) itmX3.Resultados .SubItems(24) = Trim(result.Comp.SubItems(23) = itmX.t19) itmx2.SubItems(19) = Trim(result.t15) Trim(result.t14) Trim(result.SubItems(16) = Trim(result.SubItems(10) = Trim(result.SubItems(21) = Trim(result.t4) itmx2.id) itmx2.t23) Trim(result.SubItems(17) = itmX.SubItems(25) = itmX.t23) itmx2.t4) .SubItems(17) = Trim(result.t1) itmx2.tTotal) Set itmx2 = Nothing End If Loop Close #1 L = 0 Open App.SubItems(12) = Trim(result.t18) Trim(result.t2) itmx2. .SubItems(8) = Trim(result.t24) Trim(result.SubItems(15) = Trim(result.tTotal) Loop Close #1 k = 0 Open App.20 itmX.SubItems(5) = Trim(result.SubItems(20) = Trim(result.t20) itmx2.SubItems(16) = itmX.t11) itmx2.SubItems(19) = itmX.t18) itmx2.Nombre) itmX3.1 itmX3.t3) itmx2.SubItems(15) = itmX.t2) itmX3.SubItems(3) = Trim(result.SubItems(6) = Trim(result.SubItems(21) = itmX.t17) itmx2.t10) itmx2.t15) itmx2.Add(1.rst" For Random Access Read As #1 Len = Len(result) Do While Not EOF(1) Get #1.Comp.t5) itmx2.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Prueba) + ".t1) itmX3.1 itmx2. 1)) = "T" Then Set itmX3 = ListView3.SubItems(23) = Trim(result.SubItems(9) = Trim(result.t21) itmx2.SubItems(18) = Trim(result.SubItems(11) = Trim(result.SubItems(14) = itmX.

SubItems(11) = Trim(result.Sorted = True ListView3.t14) itmX3.SubItems(10) = Trim(result.t17) itmX3.t18) itmX3.t7) itmX3. Meses. nUma) QLMAXUMA(nUma) = QLMAXUMA(nUma) + QLsum(Mesmax.SubItems(9) = Trim(result. Meses. nUma) = QSsum(Meses.SubItems(25) = Trim(result.t9) itmX3.t8) itmX3. Horamax.SubItems(26) = Trim(result. Hora.SubItems(17) = Trim(result.SubItems(7) = Trim(result.SortKey = 2 ListView2. nUma) If QTSum(Meses.SubItems(20) = Trim(result. nUma) SensibleUMA(nUma) = SensibleUMA(nUma) + QSsum(Meses. Hora.SubItems(18) = Trim(result. nUma) + QLsum(Hora.t19) itmX3.Resultados .t22) itmX3.tTotal) Set itmX3 = Nothing End If Loop Close #1 ListView1. Hora.SubItems(27) = Trim(result.1) QLsum(Hora.SubItems(21) = Trim(result.Sorted = True ListView2. Horamax.SubItems(23) = Trim(result. nUma) = QSsum(Meses.SubItems(13) = Trim(result. Hora.t20) itmX3. Meses. nUma) + QLofic(nOfi. nUma) Mesmax = Meses Horamax = Hora End If QsOficUma(OfienUma. nUma) = QSofic(nOfi.t12) itmX3.t16) itmX3.1)) = Trim(UmaOfi(nOfi .t6) itmX3.t5) itmX3.SubItems(19) = Trim(result.SubItems(15) = Trim(result. nUma) .SubItems(24) = Trim(result. Hora.t23) itmX3.SubItems(8) = Trim(result. nUma) = QLsum(Hora.SortKey = 2 End Sub Function ExisteArch(nombrearchivo As String) As Boolean On Error Resume Next ExisteArch = (Dir$(nombrearchivo) <> "") End Function Private Sub CalculoUE() QTMAX = 0 QTSUMAUEMAX = 0 For nUma = 1 To n_uma OfienUma = 0 For nOfi = 1 To n_ofi If Trim(Uma(nUma .t24) itmX3.SubItems(14) = Trim(result.1) LatenteUMA(nUma) = LatenteUMA(nUma) + QLsum(Hora. nUma) > QTMAX Then QTMAX = QTSum(Meses.SortKey = 2 ListView3.SubItems(22) = Trim(result. nUma) QSMAXUMA(nUma) = QSMAXUMA(nUma) + QSsum(Mesmax. Hora. nUma) TotalUMA(nUma) = LatenteUMA(nUma) + SensibleUMA(nUma) Next Hora Next Meses QTMAXUMA(nUma) = QTMAXUMA(nUma) + QTSum(Mesmax.t21) itmX3.t11) itmX3. nUma) + QSofic(nOfi.1)) Then OfienUma = OfienUma + 1 CaudalAireUma(nUma) = CaudalAireUma(nUma) + CaudalAireOfi(nOfi) VUMASG(nUma) = VUMASG(nUma) + VolOfi(nOfi) CantOfiIgual(nUma) = CantOfiIgual(nUma) + 1 For Meses = 1 To 12 For Hora = 1 To 24 erre = erre + 1 QSsum(Meses. 25) * OficinasIgual(nOfi .t15) itmX3.SubItems(16) = Trim(result.t13) itmX3.SubItems(12) = Trim(result. Hora) * OficinasIg ual(nOfi) QTSum(Meses.21 itmX3.Sorted = True ListView1. 25) * OficinasIgual(nOfi . Hora.t10) itmX3.

62198 * PWI / (PRESION .22 End If Next nOfi For Mes = 1 To 12 For Hora = 1 To 24 SensibleUE(Mes.Agua) Tinterna(nUma) = Tintu: Texterna(nUma) = Text TE = Text + 273.1) LatenteUE(Mes.1) CargaTotalUE(Mes.62198001 * PWSSAT / (PRESION .6 If Tipo = "VV" Then QTI = QTMAXUMA(nUma) QSI = QSMAXUMA(nUma) QLI = QLMAXUMA(nUma) Else QTI = TotalUMA(nUma) QSI = SensibleUMA(nUma) QLI = LatenteUMA(nUma) End If TINT = Tinterna(nUma) Text = Texterna(nUma) wint = Winterna(nUma) WEXT = Wexterna(nUma) AIREUMA = CaudalAireUma(nUma) VUMA = VUMASG(nUma) Dim PWSADP As Long . Hora) If CargaTotalUE(Mes.Tmext) Text = Trim(datos.CPH2O * W) / VOLESP / 3.Resultados .Path & "/" & Trim(Directorio) & "/Datos/UMAs.886: RA = 287.6078 * W) FCS = (CPAIRE .325 For nUma = 1 To n_uma IGUALOFI = CantOfiIgual(nUma) Open App.bpf) IGUALES = Trim(datos.ENTALLIQ) / VOLESP / 3.cantumaig) Tme = Trim(datos.055: TSAT = 10 TSATA = TSAT + 273. Hora) = SensibleUE(Mes.Tintd) Hrextu = Trim(datos.15 TI = Tintu + 273.Textd) Tintu = Trim(datos. .PWSSAT) W = (Winterna(nUma) . datos If Uma(nUma .805 * Tinterna(nUma) FCL = (ENTALVAP . Hora) > QTSUMAUEMAX Then QTSUMAUEMAX = CargaTotalUE(Mes.PWI) CPAIRE = 1.Hrint) CHGMIN = Trim(datos.PWE) PWSi = FNPWS(TI) PWI = Hrintu / 100 * PWSi Winterna(nUma) = 0.6 ENTALVAP = 2501 + 1. Hora) MesmaxUE = Mes HoramaxUE = Hora End If Next Hora Next Mes Next nUma PRESION = 101. Hora) + QLsum(Hora. Hora) + LatenteUE(Mes.WSAT) / 2 T = (Tinterna(nUma) + TSAT) / 2 + 273.chmin) Retor = Trim(datos.15 ENTALLIQ = 42. nUma) * UmaIgual(nUma . nUma) * UmaIgual(nUma .Hrext) Hrintu = Trim(datos.15 PWSE = FNPWS(TE) PWE = Hrextu / 100 * PWSE Wexterna(nUma) = 0. Hora.Flujo) Aguas = Trim(datos.1) = Trim(datos. Hora) = LatenteUE(Mes.006: CPH2O = 1.nombuma) Then BYPF = Trim(datos.62198 * PWE / (PRESION . Hora) = SensibleUE(Mes.01 PWSSAT = FNPWS(TSATA) WSAT = 0.retorno) Tipo = Trim(datos. Hora) + QSsum(Mes.txt" For Random Access Read As #1 Len = Len(datos) Do While Not EOF(1) Get #1.15 VOLESP = RA / PRESION / 1000 * T * (1 + 1.

1) EXTL(IGUALOFI) = CMHL(IGUALOFI) / OficinasIgual(IGUALOFI .RETM CMHL(IGUALOFI) = CMH For i = 1 To IGUALOFI .1) Next i End If CMHL(IGUALOFI) = CMHL(IGUALOFI) / OficinasIgual(IGUALOFI . nUma) / QSI RETL(i) = 0 EXTL(i) = CMHL(i) .1) Next i CMHL(IGUALOFI) = CMHL(IGUALOFI) / OficinasIgual(IGUALOFI .1) EXTL(IGUALOFI) = CMHL(IGUALOFI) RETL(IGUALOFI) = 0 Else CMHL(IGUALOFI) = CMH RETL(IGUALOFI) = CMH . nUma) / QSI CMHL(i) = CMHL(i) .CaudalAireOfi(i) EXTL(i) = 0 Next i End If Else If Retor = "SR" Then CMHL(IGUALOFI) = CMH If IGUALOFI = 1 Then RETL(1) = 0 Else For i = 1 To IGUALOFI .AIREUMA EXTL(IGUALOFI) = P For i = 1 To IGUALOFI .RETL(i) * OficinasIgual(i .CMHL(i) * OficinasIgual(i) EXTL(i) = CMHL(i) RETL(i) = 0 Next i CMHL(IGUALOFI) = CMHL(IGUALOFI) / OficinasIgual(IGUALOFI .1) RETL(IGUALOFI) = RETL(IGUALOFI) . nUma) / QSI RETL(i) = 0 EXTL(i) = CMHL(i) Next i ElseIf Retor = "PR" Then For i = 1 To IGUALOFI CMHL(i) = CMH * QsOficUma(i.AIREUMA DIFRET = RET .23 If If If If Retor = "CR" Then Call CONRET Retor = "SR" Then Call SINRET Retor = "PR" Then Call RETORNOPARCIAL Tipo = "VV" Then If Retor = "SR" Then For i = 1 To IGUALOFI CMHL(i) = CMH * QsOficUma(i. nUma) / QSI RETL(i) = 0 EXTL(i) = CMHL(i) CMHL(IGUALOFI) = CMHL(IGUALOFI) .1) RETL(IGUALOFI) = RETL(IGUALOFI) / OficinasIgual(IGUALOFI .OficinasIgual(i) EXTL(i) = 0 CMHL(IGUALOFI) = CMHL(IGUALOFI) .Resultados .CaudalAireOfi(i) Next i Else For i = 1 To IGUALOFI CMHL(i) = CMH * QsOficUma(i.1 CMHL(i) = CMH * QsOficUma(i.1 CMHL(i) = CMH * QsOficUma(i. nUma) / QSI RETL(i) = CMHL(i) .1) End If End If If Aguas = "SI" Then TEAGUA = 23 '8# AGUAINCT = 4# .CMHL(i) * OficinasIgual(i . nUma) / QSI RETL(i) = CMHL(i) .1) ElseIf Retor = "PR" Then AFM = 0 RETM = 0 RET = CMH .CMHL(i) * OficinasIgual(i .1 CMHL(i) = CMH * QsOficUma(i.

8: Time(12) = 1.136: C(8) = 0.058: C(2) = 0.063: C(12) = 0.121: C(6) = 0.6: decl(5) = 20: decl(6) = 23.073: C(11) = 0.txtlatitud.207: B(8) = 0.00885: tj(1) = 2.45 A(1) = 1230: A(2) = 1215: A(3) = 1186: A(4) = 1136: A(5) = 1104: A(6) = 1088 A(7) = 1085: A(8) = 1107: A(9) = 1151: A(10) = 1192: A(11) = 1221: A(12) = 1233 B(1) = 0. Posicion) = 0 H = CDec(0. Meses.89922 L = CondicionesExteriores.SinD(declinacion)) / (CosD(Beta) * CosD( L))).94657 aj(3) = 8.097: C(5) = 0.8: decl(3) = 0: decl(4) = 11.01188 Dim tj(0 To 5) As Double tj(0) = -0. 2) Solaz = (AcsD((CosSolAz))) If Posicion = 9 Then SufSolAz = 0 tilt = 0 CosTita = (SinD(Beta)) Else SufSolAz = Solaz .07329: tj(4) = 9.CDec(horas)) * 60) Beta = AsnD(CosD(L) * CosD(declinacion) * CosD(H) + SinD(L) * SinD(declinacion)) CosSolAz = Round(((SinD(Beta) * SinD(L) .2 Then Y = 0.1 Time(5) = 3.38135: aj(5) = 3.2: Time(2) = -13.313 * (CosTita ^ 2) Else Y = 0.177: B(10) = 0.149: B(12) = 0.057 Time(1) = -11.437 * CosTita + 0.71235: tj(2) = -0.5: Time(4) = 1.6 Phi(1) = 180: Phi(2) = 135: Phi(3) = 90: Phi(4) = 45 Phi(5) = 0: Phi(6) = -45: Phi(7) = -90: Phi(8) = -135 Dim aj(0 To 5) As Double aj(0) = 0.2: Time(8) = -2.8: decl(12) = -23.25 * (12 .0631 End If End If Loop Close #1 Next nUma Text1.4: Time(11) = 13.134 C(7) = 0.156: B(4) = 0.18: B(5) = 0.293 / (500 * AGUAINCT * 1.5: decl(11) = -19.16: B(11) = 0.142: B(2) = 0.77674: aj(2) = -3.45 End If If tilt = 90 Then Eds = C(Meses) * Y * EDN .4 Time(9) = 7.205 B(7) = 0.3: decl(9) = 0: decl(10) = -10.092: C(10) = 0.01154: aj(1) = 0.Text = RCAL End Sub Private Sub SHGFCALC() AÑO(1) = "ENERO": AÑO(2) = "FEBRERO": AÑO(3) = "MARZO": AÑO(4) = "ABRIL" AÑO(5) = "MAYO": AÑO(6) = "JUNIO": AÑO(7) = "JULIO": AÑO(8) = "AGOSTO" AÑO(9) = "SEPTIEMBRE": AÑO(10) = "OCTUBRE": AÑO(11) = "NOVIEMBRE": AÑO(12) = "DICIEMBRE" decl(1) = -20: decl(2) = -10.Text = CAPTOTALUE Text2.45 decl(7) = 20.(Phi(Posicion)) tilt = 90 CosTita = (CosD(Beta) * CosD(SufSolAz)) End If EDN = A(Meses) * Exp(-(B(Meses)) / SinD(Beta)) If CosTita > 0 Then ED = EDN * CosTita Else ED = 0 End If If CosTita > -0.Resultados .06: C(3) = 0.071: C(4) = 0.55 + 0.5: Time(10) = 15.62062 tj(3) = -7.57881: aj(4) = -8.Text For Meses = 1 To 12 For horas = 1 To 24 For Posicion = 1 To 9 declinacion = decl(Meses) H = 0: Beta = 0: Solaz = 0: SufSolAz = 0: Tita = 0: EDN = 0: ED = 0: Y = 0: tilt = 0: Eds = 0: Edg = 0 Difusa = 0: Var1 = 0: Var2 = 0: Var3 = 0: Var4 = 0: Transmitido = 0: Absorbido = 0 : SHGF = 0 SHGFhm(horas.144: B(3) = 0.4: Time(7) = -6.9: Time(3) = -7.122: C(9) = 0.24 LPSAGUA = CAPTOTAL / 0.142 C(1) = 0.6: decl(8) = 12.8) * 0.201: B(9) = 0.3: Time(6) = -1.75995: tj(5) = -3.196: B(6) = 0.

267 * Absorbido.salto = vbCrLf n_hor = lenfile7(App.shg") Open App.Resultados .id = tabla.E = "E" tabla.salto = vbCrLf n_hor = lenfile7(App. Posicion) = SHGF Next Posicion Next horas Next Meses End Sub Private Sub TablasSHGF() For Meses = 1 To 12 n_hor = lenfile7(App.id + 1 tabla.Mes = AÑO(Meses) tabla.O = "O" tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ". tabla Close #1 Dim cont As Long: Dim inicio As Long: Dim final As Long: Dim Tiempo As Long preinicio = inicios(Meses) .Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".O = 0 tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".Hora = Tiempo & ":00" tabla.id = tabla.Mes = AÑO(Meses) tabla.salto = vbCrLf tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".NO = 0 tabla.id + 1 tabla.shg" For Random As #1 Len = Len(tabla) Put #1.CosD(tilt)) / 2) Difusa = Edg + Eds For j = 0 To 5 Var1 = Var1 + tj(j) * CosTita ^ j Var2 = Var2 + tj(j) / (j + 2) Var3 = Var3 + aj(j) * CosTita ^ j Var4 = Var4 + aj(j) / (j + 2) Next j Transmitido = ED * Var1 + 2 * Difusa * Var2 Absorbido = ED * Var3 + 2 * Difusa * Var4 SHGF = Round(Transmitido + 0.SO = "SO" tabla.Hor = "Hor" tabla.NE = 0 tabla. n_hor.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ". n_hor.N = "N" tabla.NE = "NE" tabla.shg" For Random As #1 Len = Len(tabla) Get #1. tabla Close #1 tabla.shg") Open App.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".SE = "SE" tabla.SE = 0 tabla.25 Else Eds = C(Meses) * EDN * ((1 + CosD(tilt)) / 2) End If Edg = EDN * (C(Meses) + SinD(Beta)) * 0.NO = "NO" tabla.inicio For Hora = inicio To final tabla.N = 0 tabla.Mes = AÑO(Meses) . 0) SHGFhm(horas.S = 0 tabla.SO = 0 tabla.E = 0 tabla.S = "S" tabla.Hora = "" tabla.shg") Open App.shg" For Random As #1 Len = Len(tabl a) Put #1.2 * ((1 . n_hor. tabla Close #1 Next Tiempo inicio = inicios(Meses) final = 24 .1 For Tiempo = 1 To preinicio tabla. Meses.Hor = 0 tabla.

00001: TMI = TINT .NO = 0 tabla. 1) tabla. 8) tabla.O = 0 tabla.E = SHGFhm(Hora.Resultados .N = "" tabla.shg") Open App.SE = 0 tabla.Winterna(nUma)) WEXT = Wexterna(nUma): wint = Winterna(nUma) VUMA = VUMASG(nUma) AIREUMA = CHGMIN * VUMA Do WMI = 0.NE = 0 tabla.O = SHGFhm(Hora. 5) tabla.S = SHGFhm(Hora. tabla Close #1 Next horas tabla.S = 0 tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ". Meses. Meses.Hora = horas & ":00" tabla. 2) tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ". 4) tabla. n_hor. 6) tabla.id + 1 tabla. n_hor.NO = SHGFhm(Hora.Hora = Hora & ":00" tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".id = tabla.salto = vbCrLf n_hor = lenfile7(App.salto = vbCrLf n_hor = lenfile7(App.S = "" tabla.Tinterna(nUma)) QLVENT = FCL * CaudalAireUma(nUma) * (Wexterna(nUma) .Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".26 tabla.NE = SHGFhm(Hora. 7) tabla.id = tabla. tabla Close #1 Next Hora posfinal = final + 1 For horas = posfinal To 24 tabla.shg" For Random As #1 Len = Len(tabl a) Put #1.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ". tabla Close #1 Next Meses End Sub Private Sub CONRET() PRESION = 101.Mes = AÑO(Meses) tabla.salto = vbCrLf n_hor = lenfile7(App.E = "" tabla.Hor = SHGFhm(Hora. Meses.id = tabla.1 EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT .E = 0 tabla. 3) tabla. 9) tabla.SO = SHGFhm(Hora.O = "" tabla. Meses.N = SHGFhm(Hora. Meses.shg" For Random As #1 Len = Len(tabl a) Put #1.shg" For Random As #1 Len = Len(tabla) Put #1.SO = "" tabla.SE = SHGFhm(Hora. Meses.id + 1 tabla.Hor = 0 tabla.shg") Open App.NE = "" tabla.14.shg") Open App.SE = "" tabla.NO = "" tabla. Meses. n_hor.SO = 0 tabla.325 RCAL = 0 QSVENT = FCS * CaudalAireUma(nUma) * (Texterna(nUma) .Hor = "" tabla.Hora = "" tabla. Meses.Mes = "" tabla.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".N = 0 tabla. Meses.id + 1 tabla.

TINT) / (WEXT .12 i = 0 Do i = i + 1 TADPA = TADP + 273.WM) < 0.BYPF)) CHCAL = CMH / VUMA If CHCAL > CHGMIN Then Exit Do RCAL = RCAL + 100 End If Loop TBSM = ((CMH . PRESION) WSADP2 = wint . WSBHA.56 Do tbha = 273.15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.Resultados .TADP) / 2459)) If Not Abs(WSADP1 . PRESION) TBHF = TBH * 1. WSBHA.0.8 + 32 TBSMF = TBSM * 1.8 + 32 WMC = FNWM(TBHF.(TBSM .(TBSM .0.15 + TBH PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.WSADP2) < WMI Then If (WSADP1 .02 Else N = N + 1 If N = 70 Then WMI = 0.(((1 .00004 Or (WMC .TADP) * (1 .wint) WM = WEXT .(Text .WSADP2) < WMI: r = 0 If r = 0 Then CMH = EQSI / (FCS * (TINT .TADP) * (1 .WSADP2) WSAL = WM .TBSM) / MSHF TBH = 15.27 ERSHF = EQSI / (EQSI + EQLI) N = 0 TADP = TINT .15 PWSADP = FNPWS(TADPA) WSADP1 = FNWS(PWSADP.TBSS) / MAQSHF TBH = TADP Do tbha = TBH + 273.AIREUMA * Text) / CMH MSHF = (Text .8 + 32 WMC = FNWM(TBHF.5 If TADP < TMI Then RCAL = RCAL + 100 r = 1 Exit Do End If End If End If End If Loop Until Abs(WSADP1 . TBSMF) Loop Until Abs(WMC .11 tbha = TBH + 273. TBSMF) If WMC >= WM Then Do TBH = TBH .TADP) / (WM .15 PWSBHA = FNPWS(tbha) .WM) <= 0 Exit Do Else TBH = TBH + 0.AIREUMA) * TINT .001 N = 0 Else TADP = TADP .WSADP2) < 0 Then TADP = TADP + 0.8 + 32 TBSMF = TBSM * 1. PRESION) TBHF = TBH * 1.55 End If Loop TBHM = TBH TBSS = TBSM .ERSHF) / ERSHF) * ((TINT .BYPF) MAQSHF = (TBSM .

TBSSF) If WSALC >= WSAL Then Do TBH = TBH .0.14.11 tbha = TBH + 273.TADP) / 2459 If Abs(WSADP1 .WSAL) < 0.WSADP2) < 0 Then TADP = TADP + 0.15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.28 WSBHA = FNWS(PWSBHA.0. TBSSF) Loop Until Abs(WSALC . WSBHA.WSAL) <= 0 Exit Do Else TBH = TBH + 0.001 N = 0 If Abs(WSADP1 .WSADP2) < WMI Then Exit Do Else If (WSADP1 .12 End If End If End If End If Loop CMH = EQSI / (FCS * (TINT . PRESION) TBHF = TBH * 1.BYPF)) If Abs(CMH .12 contr = 0 Do contr = contr + 1 TADPA = TADP + 273.(1 .TADP) * (1 .8 + 32 WSALC = FNWM(TBHF.02 Else N = N + 1 If N >= 70 Then WMI = 0. PRESION) TBHF = TBH * 1.15 PWSADP = FNPWS(TADPA) WSADP1 = FNWS(PWSADP.8 + 32 TBSSF = TBSS * 1.CaudalAireUma(nUma)) < 0. PRESION) WSADP2 = Winterna(nUma) .02 * CMH Then .ERSHF) / ERSHF * (TINT .8 + 32 TBSSF = TBSS * 1.00005 TMI = TINT .Tinterna(nUma)) QLVENT = FCL * CaudalAireUma(nUma) * (Wexterna(nUma) .WSADP2) < WMI Then Exit Do Else TADP = TADP .Winterna(nUma)) RCAL = 0 Do EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT ERSHF = EQSI / (EQSI + EQLI) N = 0 TADP = TINT .00004 Or (WSALC .Resultados .8 + 32 WSALC = FNWM(TBHF. WSBHA.5 If TADP < TMI Then RCAL = RCAL + 100 EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT ERSHF = EQSI / (EQSI + EQLI) N = 0 TADP = TINT .1 QSVENT = FCS * CaudalAireUma(nUma) * (Texterna(nUma) .55 End If Loop CAPTOTAL = QTI + RCAL CAPTOTALUE = CAPTOTALUE + (QTI + RCAL) * IGUALES RCALUE = RCALUE + RCAL * IGUALES End Sub Private Sub SINRET() AIREUMA = CHGMIN * VUMASG(nUma) WMI = 0.

15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.0.55 Loop Do TBH = TBH .55 Loop Do TBH = TBH .00004 Or (WSALC .Winterna(nUma)) .56 Do tbha = 273.WM) <= 0 TBHM = TBH TBSS = TBSM .29 CMH = AIREUMA CHCAL = CMH / VUMASG(nUma) If CHCAL >= CHGMIN Then Exit Do Else RCAL = RCAL + 100 End If Else If (CMH . TBSSF) Loop Until (WSALC .11 tbha = TBH + 273. PRESION) TBHF = TBH * 1.Winterna(nUma)) End If End If Loop TBSM = Text TBH = 15.8 + 32 TBSSF = TBSS * 1.(tbs .15 + TBH PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.TINT) QLVENT = FCL * AIREUMA * (Wexterna(nUma) .8 * 32: TBSSF = TBSS * 1.WSAL) < 0.11 tbha = TBH + 273.8 + 32 TBSMF = TBSM * 1. TBSSF) If WSALC >= WSAL Then Exit Do TBH = TBH + 0.TADP) * (1 .Resultados . PRESION) If WMC >= WM Then Exit Do TBH = TBH + 0.8 + 32 WSALC = FNWM(TBHF. PRESION) TBHF = TBH * 1.WSADP2) WSAL = WM .Tinterna(nUma)) QLVENT = 3010 * CaudalAireUma(nUma) * (Wexterna(nUma) .15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.00004 Or (WMC . WSBHA.AIREUMA) < 0 Then RCAL = RCAL + 100 Else AIREUMA = CMH WMI = 0.0.WM) < 0.23 * CaudalAireUma(nUma) * (Texterna(nUma) .8 + 32 WSALC = FNWM(TBHF.00005: TMI = TINT . PRESION) TBHF = TBH * 1.15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.1 QSVENT = FCS * AIREUMA * (Text .BYPF) MAQSHF = (TBSM . WSBHA.14.WSAL) <= 0 TBHS = TBH CAPTOTAL = QTI + RCAL CAPTOTALUE = CAPTOTALUE + (QTI + RCAL) * IGUALES RCALUE = RCALUE + RCAL * IGUALES End Sub Private Sub RETORNOPARCIAL() RCAL = 0 QSVENT = 1.(TBSM . PRESION) TBHF = TBH * 1.8 + 32 WMC = FNWM(TBHF.TBSS) / MAQSHF TBH = TADP Do tbha = TBH + 273.8 + 32 WMC = FNWM(TBHF. TBSMF) Loop Until Abs(WMC . WSBHA.8 + 32: TBSMF = TBSM * 1.TADP) / (WM . WSBHA.

44 Do TADPA = TADP + 273. PRESION) WSADP2 = (ERSHF * 1.23 * (TINT .(Text .WM) <= 0 TBHM = TBH TBSS = TBSM .30 EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT ERSHF = EQSI / (EQSI + EQLI) TADP = 4.0.TBSM) / MSHF TBH = 15.WSADP2) <= 0 Then If TADP >= 8.8 + 32: TBSMF = TBSM * 1. WSBH.15 PWSADP = FNPWS(TADPA) WSADP1 = FNWS(PWSADP.wint) WM = WEXT .23 * (TINT .1.(TBSM .8 + 32 WMC = FNWM(TBHF. TBSMF) If WMC >= WM Then Exit Do TBH = TBH + 0.44 Else If Abs(WSADP1 .TADP) * (1 .TADP )) / (ERSHF * 3010) GoTo POS1 End If End If Else TADP = TADP + 0.(TBSM .BYPF) MAQSHF = (TBSM . WSBHA.44 End If Else TADP = TADP .15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.0.TADP) * (1 .TADP) + ERSHF * 3010 * wint .8 + 32: TBSMF = TBSM * 1.1. PRESION) WSADP2 = (ERSHF * 1.55 Loop Do TBH = TBH .44 Then RCAL = RCAL + 100 EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT ERSHF = EQSI / (EQSI + EQLI) TADP = 4.TADP) + ERSHF + 3010 * wint . TBSMF) Loop Until Abs(WMC .8 + 32 WMC = FNWM(TBHF.TADP)) / (ERSHF * 3010) If WSADP2 <= WSADP1 Then POS1 If TADP <= 4.23 * (TINT .WM) < 0.00003 Or (WSADP1 .WSADP2) <= 0.WSADP2) WSAL = WM .AIREUMA) * TINT + AIREUMA * Text) / CMH MSHF = (Text .23 * (TINT . PRESION) TBHF = TBH * 1.TADP) / (WM .15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.BYPF)) CHCAL = CMH / VUMA If CHCAL >= chmin Then Exit Do RCAL = RCAL + 100 EQSI = QSI + BYPF * QSVENT + RCAL EQLI = QLI + BYPF * QLVENT ERSHF = EQSI / (EQSI + EQLI) TADP = 4.TINT) / (WEXT .TBSS) / MAQSHF TBH = TADP Do .55 End If Loop TBSM = ((CMH .11 TADPA = TADP + 273.Resultados .00003 Or (WMC .11 tbha = TBH + 273.23 * (TINT .15 PWSADP = FNPWS(TADPA) WSADP1 = FNWS(PWSADP. PRESION) TBHF = TBH * 1.56 Do tbha = 273.890001 Then CMH = EQSI / (1.

Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .WSAL) < 0.salto = vbCrLf result.t12 = Solar(12.0. Meses) result. Meses) result.15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA.t7 = Solar(7.t1 = Solar(1.3914993 .tTotal = TSolarm(Meses) result.444 * tbs . TBSSF) If WSALC >= WSAL Then Exit Do TBH = TBH + 0.t5 = Solar(5. Meses) result.04860293 * Temp + 0.ListIndex = 0 Then If CARVid = 1 Then For Meses = 1 To 12 n_carg = lenfile4(App.t24 = Solar(24.rst") result. Meses) result.TBHF) End Function Private Sub IMPRESION() If CondicionesExteriores.2206 / Temp) + 1. PRESION) TBHF = TBH * 1.1) )) + ".1))) + ".31 tbha = TBH + 273.Presionred) End Function Function FNWM(TBHF As Double.8 + 32 WSALC = FNWM(TBHF.t3 = Solar(3.8 + 32: TBSSF = TBSS * 1. PRESION) TBHF = TBH * 1.t11 = Solar(11.t6 = Solar(6.WSAL) <= 0 TBHS = TBH CAPTOTAL = QTI + RCAL CAPTOTALUE = CAPTOTALUE + (QTI + RCAL) * IGUALES RCALUE = RCALUE + RCAL * IGUALES End Sub Function FNPWS(Temp As Double) As Double FNPWS = Exp((-5800. Meses) result. Meses) result.t20 = Solar(20.t13 = Solar(13.t23 = Solar(23.t19 = Solar(19. PRESION As Double) As Double FNWS = 0.000041764768 * Temp ^ 2 . Meses) result.id = result. Meses) result.t14 = Solar(14.55 Loop Do TBH = TBH .0. Meses) result. Meses) result. Meses) result.5459673 * Log(Temp)) / 1000 End Function Function FNWS(Presionred As Double. hUMEDAD As Double.00 000001445293 * Temp ^ 3 + 6. Meses) result. Meses) result.t2 = Solar(2. Meses) result.t21 = Solar(21. Meses) result. TBSSF) Loop Until Abs(WSALC .t9 = Solar(9.t4 = Solar(4. WSBHA.15 PWSBHA = FNPWS(tbha) WSBHA = FNWS(PWSBHA. Meses) result.0.cboAnalisis.8 + 32 WSALC = FNWM(TBHF. WSBHA. Meses) result.24 * (tbs .11 tbha = TBH + 273.Resultados .556 * TBHF) * hUMEDAD . Meses) result. Meses) result.0.8 + 32: TBSSF = TBSS * 1.t22 = Solar(22.t16 = Solar(16.id + 1 Open App.t10 = Solar(10. tbs As Double) As Double FNWM = ((1093 .00003 Or (WSALC .Comp = "S" result.Nombre = "Solar-Vidrio-" & OrientacionV & "-" & AÑO(Meses) result. Meses) result.rst" For Random As #1 Len = Len(result) .Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .62198 * Presionred / (PRESION .t17 = Solar(17. Meses) result.t15 = Solar(15.0.TBHF)) / (1093 + 0.t18 = Solar(18.t8 = Solar(8. Meses) result. Meses) result. Meses) result.

Meses) result. Meses) result.t1 = QParedes(1.t15 = QParedes(15.t12 = QParedes(12.1) )) + ". Meses) result. Meses) result. Meses) result.t13 = ConvectVid(13. Meses) result.tTotal = Tconvidm(Meses) result. Meses) result.t7 = ConvectVid(7.rst") result.t22 = ConvectVid(22. Meses) result.t8 = ConvectVid(8. Meses) result. Meses) result. Meses) result.t14 = QParedes(14. Meses) result.id + 1 Open App.t16 = QParedes(16.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi . Meses) result.t3 = ConvectVid(3. Meses) result.rst") result.Nombre = "Convect-Vidrio-" & AÑO(Meses) result.t18 = QParedes(18.t11 = ConvectVid(11. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .t12 = ConvectVid(12. Meses) result. Meses) result. Meses) result. Meses) result.t4 = ConvectVid(4. Meses) result.t2 = QParedes(2.salto = vbCrLf result. result Close #1 Next Meses End If If CARPared = 1 Then For Meses = 1 To 12 n_carg = lenfile4(App. Meses) result. Meses) result.t8 = QParedes(8. result Close #1 Next Meses For Meses = 1 To 12 n_carg = lenfile4(App.t13 = QParedes(13.Resultados .1))) + ".t19 = QParedes(19. Meses) result. n_carg.t14 = ConvectVid(14. Meses) result. Meses) result. Meses) result. Meses) result.32 Put #1. Meses) .t5 = QParedes(5.t6 = QParedes(6. Meses) result.t17 = ConvectVid(17.t10 = ConvectVid(10.t10 = QParedes(10. Meses) result.t17 = QParedes(17.t21 = ConvectVid(21.t19 = ConvectVid(19. Meses) result.t3 = QParedes(3. Meses) result. Meses) result. Meses) result.t20 = ConvectVid(20. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .id = result.t18 = ConvectVid(18. Meses) result.t23 = QParedes(23. Meses) result. Meses) result.t7 = QParedes(7.t9 = ConvectVid(9.t24 = ConvectVid(24.Comp = "S" result.Nombre = "Ganancia-Pared-" & OrientPa & "-" & AÑO(Meses) result. Meses) result. Meses) result.t1 = ConvectVid(1.t23 = ConvectVid(23.rst" For Random As #1 Len = Len(result) Put #1.t5 = ConvectVid(5.t22 = QParedes(22.t21 = QParedes(21. Meses) result. Meses) result.t4 = QParedes(4. n_carg.Comp = "S" result.t24 = QParedes(24. Meses) result. Meses) result.t9 = QParedes(9.t20 = QParedes(20.t15 = ConvectVid(15. Meses) result.t16 = ConvectVid(16. Meses) result.t11 = QParedes(11. Meses) result. Meses) result.t2 = ConvectVid(2.1))) + ".t6 = ConvectVid(6.

t24 = QTechos(24.t1 = QTechos(1.t6 = QTechos(6. n_carg. Mes) result.t18 = QsensVent(18. Meses) result.t15 = QTechos(15. Meses) result.Nombre = "Ganancia_de_Techo-" & AÑO(Meses) result.Resultados . Meses) result.t12 = QTechos(12. Mes) result. Mes) result.1) + "Ofic" + Trim(Ofi(( .rst" For Random As #1 Len = Len(result) Put #1.Comp = "S" result. Meses) result.t7 = QsensVent(7.t17 = QsensVent(17. Meses) result.t8 = QTechos(8. Meses) result. Meses) result.t2 = QsensVent(2.t17 = QTechos(17.t22 = QTechos(22. Meses) result. Meses) result.t13 = QTechos(13.t9 = QsensVent(9. Meses) result.t6 = QsensVent(6.t5 = QsensVent(5.t11 = QsensVent(11.t1 = QsensVent(1.t11 = QTechos(11.t5 = QTechos(5.t10 = QsensVent(10. Meses) result. Meses) result. result Close #1 Next Meses End If If CARTecho = 1 Then For Meses = 1 To 12 n_carg = lenfile4(App. Meses) result. Mes) result.t14 = QTechos(14.t15 = QsensVent(15.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" ".1))) + ". n_carg.t2 = QTechos(2.tTotal = QparTotal(Meses) result. Mes) result. Mes) result.t19 = QTechos(19. Meses) result. Mes) result. Meses) result. Meses) result.tTotal = QTechTotal(Meses) result. Mes) result.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi .Nombre = "Sensible-Ventilacion-" & AÑO(Mes) result.t21 = QTechos(21.id = result.t8 = QsensVent(8.1))) + ". Mes) result. Mes) result. Mes) result. Mes) result. Mes) result. Meses) result. Meses) result. Meses) result.rst") result.t20 = QTechos(20. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" . Meses) result.t14 = QsensVent(14. Meses) result.t18 = QTechos(18.t7 = QTechos(7.t13 = QsensVent(13.t16 = QTechos(16.rst") result.t16 = QsensVent(16.id = result.salto = vbCrLf result. Meses) result. Meses) result.t3 = QsensVent(3. Mes) result.t12 = QsensVent(12.t23 = QTechos(23. result Close #1 Next Meses End If For Mes = 1 To 12 n_carg = lenfile4(App.33 )) + nOfi )) + nOfi result. Mes) + Trim(Ofi((nOfi .Path & "/" & Trim(Directorio) & "/Resultados/" .t3 = QTechos(3.t4 = QsensVent(4. Mes) result. Mes) result.id + 1 Open App.id + 1 Open App.Comp = "S" result.rst" For Random As #1 Len = Len(result) Put #1.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" ". Mes) result.t4 = QTechos(4.t9 = QTechos(9.t10 = QTechos(10.salto = vbCrLf result.

Mes) result. Mes) result.1))) )) + ". Mes) result. Mes) result. Mes) result.t12 = QLatVent(12.t1 = QsensInfil(1. Mes) result.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi .t5 = QsensInfil(5.t23 = QsensVent(23. Mes) result. n_carg.t7 = QLatVent(7. Mes) result.t19 = QsensInfil(19.t13 = QsensInfil(13. Mes) + Trim(Ofi((nOfi .t14 = QLatVent(14.t4 = QsensInfil(4.t6 = QLatVent(6. Mes) result.t22 = QsensVent(22.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t16 = QLatVent(16. Mes) result.t10 = QsensInfil(10.t13 = QLatVent(13. Mes) result.t5 = QLatVent(5.t23 = QLatVent(23. Mes) result.t9 = QLatVent(9.Path & "/" & Trim(Directorio) & "/Resultados/" + ". Mes) result.t11 = QsensInfil(11. Mes) result. Mes) result.id + 1 Open App. Mes) result.t12 = QsensInfil(12. Mes) result.rst" nOfi . Mes) result. Mes) result.Nombre = "Sensible-Infiltracion-" & AÑO(Mes) result. Mes) result.t15 = QLatVent(15.rst") result.t21 = QsensVent(21. Mes) result. Mes) result. Mes) result.t1 = QLatVent(1.t8 = QsensInfil(8.t3 = QsensInfil(3.t17 = QLatVent(17. Mes) result.t10 = QLatVent(10. Mes) result. Mes) result.t14 = QsensInfil(14. Mes) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.rst" nOfi .t21 = QLatVent(21. Mes) result.rst") result.salto = vbCrLf result.t22 = QLatVent(22. result Close #1 n_carg = lenfile4(App.t16 = QsensInfil(16.t6 = QsensInfil(6. Mes) result. Mes) result.id = result. result Close #1 n_carg = lenfile4(App. Mes) result.t8 = QLatVent(8.Comp = "S" result.Comp = "L" result.1) + "Ofic" + Trim(Ofi(( . Mes) result.t7 = QsensInfil(7. Mes) result.tTotal = QsensVent(25. Mes) result.t24 = QsensVent(24. Mes) result.1))) result. Mes) result.t24 = QLatVent(24.t2 = QLatVent(2.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. Mes) result.t17 = QsensInfil(17.id = result.t18 = QsensInfil(18.t19 = QsensVent(19.34 )) + ".t2 = QsensInfil(2.Resultados .t3 = QLatVent(3. Mes) result. Mes) result.t11 = QLatVent(11.Nombre = "Latente-Ventilacion-" & AÑO(Mes) result.t20 = QsensVent(20.t20 = QLatVent(20. Mes) result. Mes) result.t18 = QLatVent(18.tTotal = QLatVent(25. Mes) result. Mes) result.id + 1 Open App. Mes) result. n_carg. Mes) result. Mes) result.t19 = QLatVent(19.t15 = QsensInfil(15. Mes) result.t4 = QLatVent(4.t9 = QsensInfil(9. Mes) result. Mes) result. Mes) result.salto = vbCrLf result.

1) )) + ".t4 = QLofic(nOfi.Comp = "T" result. Mes) result. Mes) result. Mes) result. Mes) result. 17) .t20 = QLatInfil(20. Meses. Mes) result.t13 = QLofic(nOfi. Mes) result. 7) result.t14 = QLofic(nOfi. Mes) result.t17 = QLatInfil(17.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t9 = QLofic(nOfi.rst" For Random As #1 Len = Len(result) Put #1.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t21 = QLatInfil(21.id + 1 Open App. Mes) result. Meses.t7 = QLatInfil(7.tTotal = QsensInfil(25.t16 = QLofic(nOfi.t15 = QLatInfil(15. Mes) result. Mes) result. Meses. Meses. 14) result. Mes) result.t22 = QsensInfil(22.t10 = QLatInfil(10.Resultados . Meses. Mes) result. n_carg.35 result.t4 = QLatInfil(4.t2 = QLofic(nOfi. 12) result. 1) result. 13) result. Meses.t23 = QsensInfil(23.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .t11 = QLatInfil(11.t24 = QsensInfil(24. Meses.t13 = QLatInfil(13. Mes) result. Mes) result.t6 = QLatInfil(6. 9) result.t2 = QLatInfil(2.t3 = QLofic(nOfi. Meses. Mes) result. 10) result. 11) result.1))) + ".1))) + ".t19 = QLatInfil(19. Meses.t15 = QLofic(nOfi.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .t12 = QLatInfil(12.id + 1 Open App.t5 = QLofic(nOfi. 4) result. Mes) result. Mes) result.id = result. Mes) result.salto = vbCrLf result.rst" For Random As #1 Len = Len(result) Put #1. Mes) result.Nombre = "TOTAL_LATENTE--" & AÑO(Meses) result.t18 = QLatInfil(18.t8 = QLatInfil(8.t9 = QLatInfil(9.t3 = QLatInfil(3. Meses. Mes) result.tTotal = QLatInfil(25. Mes) result. Mes) result.t1 = QLatInfil(1. Mes) result.t20 = QsensInfil(20. Mes) result. Meses.t17 = QLofic(nOfi.t22 = QLatInfil(22. Mes) result.t21 = QsensInfil(21. Meses.1) )) + ".Nombre = "Latente-Infiltracion-" & AÑO(Mes) result. 16) result. Meses. Meses. 5) result.t11 = QLofic(nOfi.t7 = QLofic(nOfi. 8) result.t5 = QLatInfil(5.t16 = QLatInfil(16.t1 = QLofic(nOfi. 2) result.t12 = QLofic(nOfi. Mes) result. Mes) result.id = result.t23 = QLatInfil(23. n_carg. Mes) result.rst") result.t14 = QLatInfil(14.t24 = QLatInfil(24. Meses. Meses. Mes) result. 15) result. Mes) result. 3) result.t8 = QLofic(nOfi. Meses.t10 = QLofic(nOfi.t6 = QLofic(nOfi.Comp = "L" result. result Close #1 Next Mes For Meses = 1 To 12 n_carg = lenfile4(App. Mes) result. result Close #1 n_carg = lenfile4(App. 6) result.salto = vbCrLf result.rst") result.

7) result.t14 = QSofic(nOfi.t3 = QSofic(nOfi. result Close #1 Next Meses Else Mes = CondicionesExteriores. Meses. n_carg. Meses. 20) result. Meses) result. Meses.t20 = QLofic(nOfi.Nombre = "TOTAL_SENSIBLE--" & AÑO(Meses) result. 1) result. Meses.t8 = QSofic(nOfi. 13) result. n_carg.ListIndex If CARVid = 1 Then n_carg = lenfile4(App.t5 = Solar(5. Meses.1) )) + ". Meses) result. Meses. Meses) result.t17 = QSofic(nOfi. Meses.t9 = QSofic(nOfi.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . Meses. Meses. 14) result. Meses.t18 = QSofic(nOfi.id = result.t6 = QSofic(nOfi. result Close #1 n_carg = lenfile4(App.t20 = QSofic(nOfi. 11) result. 17) result.id = result. 22) result. Meses. 21) result.cboAnalisis.Comp = "S" result. 9) result. Meses.t10 = Solar(10.t3 = Solar(3. Meses. 12) result.36 result. Meses) result.id + 1 Open App. 20) result. Meses.t1 = Solar(1.t22 = QSofic(nOfi.id + 1 Open App.salto = vbCrLf result. 15) result.1))) + ".t7 = Solar(7.t16 = QSofic(nOfi.t4 = Solar(4.tTotal = QLofic(nOfi.t24 = QSofic(nOfi.t22 = QLofic(nOfi. 22) result. 25) result. 5) result. 4) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .salto = vbCrLf result. 24) result. Meses) result. Meses.t23 = QSofic(nOfi. Meses) result.t2 = Solar(2.t1 = QSofic(nOfi.t11 = QSofic(nOfi. 23) result.rst" For Random As #1 Len = Len(result) Put #1. 21) result.t2 = QSofic(nOfi.rst") result. 19) result. 3) result.t23 = QLofic(nOfi. Meses) result.t13 = Solar(13. 18) result.t21 = QLofic(nOfi. Meses. Meses.t15 = QSofic(nOfi. Meses.t19 = QLofic(nOfi. 16) result.t10 = QSofic(nOfi. Meses. 10) result. 8) result. Meses.t4 = QSofic(nOfi.t24 = QLofic(nOfi. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi . Meses.1))) + ".cboAnalisis.t7 = QSofic(nOfi. Meses.t12 = Solar(12. Meses.t21 = QSofic(nOfi. Meses) result. 6) result.t8 = Solar(8. Meses. 18) result.t12 = QSofic(nOfi. Meses. Meses.1) )) + ".rst" For Random As #1 Len = Len(result) Put #1. Meses) . Meses. 25) result.t18 = QLofic(nOfi. Meses.ListIndex Meses = CondicionesExteriores. 19) result.Nombre = "Solar-Vidrio-" & OrientacionV & "-" & AÑO(Meses) result. Meses) result.t19 = QSofic(nOfi. Meses) result. 2) result. Meses. 23) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi .tTotal = QSofic(nOfi.rst") result.Resultados .t11 = Solar(11. 24) result. Meses.Comp = "T" result. Meses.t5 = QSofic(nOfi. Meses.t9 = Solar(9.t6 = Solar(6. Meses) result.t13 = QSofic(nOfi. Meses.

Nombre = "Convect-Vidrio-" & AÑO(Meses) result.t12 = QParedes(12.id + 1 Open App.t24 = Solar(24. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.1) + "Ofic" + Trim(Ofi(( . Meses) result.t6 = ConvectVid(6.t23 = Solar(23. result Close #1 n_carg = lenfile4(App. Meses) result. Meses) result. n_carg.id + 1 Open App. Meses) result. Meses) result. Meses) + Trim(Ofi((nOfi .tTotal = Tconvidm(Meses) result. Meses) result.rst") result. Meses) result.37 )) + ". Meses) result.t2 = QParedes(2.t11 = QParedes(11. Meses) result. n_carg. Meses) result.t19 = Solar(19.t13 = ConvectVid(13.t21 = ConvectVid(21.Resultados . Meses) result. Meses) result. Meses) result.t16 = Solar(16. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + ". Meses) result. Meses) result.rst" nOfi .t6 = QParedes(6.t3 = ConvectVid(3.t2 = ConvectVid(2.Nombre = "Ganancia-Pared-" & OrientPa & "-" & AÑO(Meses) result. Meses) result.t7 = QParedes(7.id = result. Meses) result.t8 = QParedes(8.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi . Meses) result. Meses) result.t10 = ConvectVid(10.t18 = ConvectVid(18.salto = vbCrLf result.t8 = ConvectVid(8.1))) )) + ". result Close #1 End If If CARPared = 1 Then n_carg = lenfile4(App. Meses) result. Meses) result.tTotal = TSolarm(Meses) result. Meses) result.t10 = QParedes(10.t1 = ConvectVid(1. Meses) result. Meses) result. Meses) result. Meses) result.t19 = ConvectVid(19.t16 = ConvectVid(16.1))) result. Meses) result.t12 = ConvectVid(12.rst") result. Meses) result.Comp = "S" result.t20 = ConvectVid(20. Meses) result.t18 = Solar(18.t15 = ConvectVid(15.t17 = ConvectVid(17.t24 = ConvectVid(24.t1 = QParedes(1.t11 = ConvectVid(11.t9 = ConvectVid(9.t5 = QParedes(5. Meses) result. Meses) result.t14 = Solar(14. Meses) result.t5 = ConvectVid(5. Meses) result.t15 = Solar(15.t20 = Solar(20. Meses) result. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t4 = QParedes(4.salto = vbCrLf result. Meses) result. Meses) result.t14 = ConvectVid(14.t17 = Solar(17. Meses) result.Comp = "S" result.t22 = Solar(22.t7 = ConvectVid(7. Meses) result.rst" nOfi . Meses) result. Meses) result.id = result. Meses) result.t3 = QParedes(3.t22 = ConvectVid(22.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. Meses) result.t23 = ConvectVid(23. Meses) result.t9 = QParedes(9.t21 = Solar(21.t4 = ConvectVid(4.

t4 = QsensVent(4. Mes) + Trim(Ofi((nOfi .t9 = QTechos(9.t9 = QsensVent(9.t24 = QParedes(24.t3 = QTechos(3. Mes) result.Nombre = "Sensible-Ventilacion-" & AÑO(Mes) result.id + 1 Open App. Meses) result. Meses) result.t18 = QTechos(18.t6 = QTechos(6.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi .id + 1 Open App.t3 = QsensVent(3.t21 = QTechos(21. Mes) result. Mes) result.t24 = QTechos(24.1) + "Ofic" + Trim(Ofi(( .38 )) + ".t10 = QTechos(10.t20 = QParedes(20. Meses) result.t21 = QParedes(21.Comp = "S" result. Meses) result. Meses) result.rst") result.t1 = QTechos(1.tTotal = QTechTotal(Meses) result. Mes) result. Meses) result. Meses) result.t23 = QTechos(23. Meses) result. Meses) result. Meses) result.t16 = QTechos(16. Meses) result.t18 = QParedes(18. Meses) result.Nombre = "Ganancia_de_Techo-" & AÑO(Meses) result.salto = vbCrLf result. Mes) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t1 = QsensVent(1.t7 = QsensVent(7.t10 = QsensVent(10. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + ". Meses) result.t22 = QParedes(22.id = result.t17 = QParedes(17. Meses) result. Meses) result.rst" nOfi .t12 = QTechos(12.rst") result. Mes) result.t2 = QTechos(2.t23 = QParedes(23.t5 = QsensVent(5. Meses) result. Meses) result.salto = vbCrLf result.t14 = QParedes(14.t8 = QsensVent(8. Meses) result.t8 = QTechos(8. Meses) result.rst" nOfi . Mes) result. result Close #1 End If If CARTecho = 1 Then n_carg = lenfile4(App. Meses) result.t2 = QsensVent(2.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t5 = QTechos(5.t11 = QTechos(11.t14 = QTechos(14. Meses) result. Meses) result.t7 = QTechos(7. result Close #1 End If n_carg = lenfile4(App. Meses) result.Resultados . n_carg. Meses) result. Mes) result.id = result. Meses) result.t6 = QsensVent(6. Meses) result.t16 = QParedes(16.t19 = QTechos(19.t13 = QTechos(13. Meses) result.t15 = QParedes(15. Meses) result.1))) )) + ". n_carg. Meses) result.tTotal = QparTotal(Meses) result.1))) result.t15 = QTechos(15. Meses) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. Meses) result.t20 = QTechos(20.t22 = QTechos(22.t13 = QParedes(13.Comp = "S" result.t4 = QTechos(4. Meses) result. Meses) result. Meses) result.t17 = QTechos(17.t19 = QParedes(19. Meses) result. Mes) result.

t7 = QsensInfil(7.t3 = QLatVent(3. Mes) result. Mes) result.id = result.Path & "/" & Trim(Directorio) & "/Resultados/" + ". result Close #1 n_carg = lenfile4(App. Mes) result.rst") result. Mes) result.id = result.t12 = QLatVent(12. Mes) result. Mes) result. Mes) result. Mes) result.t9 = QsensInfil(9.t2 = QLatVent(2. Mes) result. Mes) result.Resultados .t16 = QLatVent(16.t10 = QLatVent(10. Mes) result.t11 = QsensVent(11.Nombre = "Sensible-Infiltracion-" & AÑO(Mes) result.t22 = QLatVent(22. result Close #1 n_carg = lenfile4(App. Mes) result. Mes) result.Comp = "L" result. Mes) result. Mes) result.t5 = QLatVent(5.t23 = QLatVent(23. Mes) result. Mes) result.t1 = QsensInfil(1.id + 1 Open App. Mes) result.t23 = QsensVent(23.t14 = QsensVent(14.t8 = QLatVent(8.t14 = QLatVent(14.t24 = QLatVent(24. Mes) result. Mes) result.t15 = QsensVent(15. Mes) result.t6 = QLatVent(6. Mes) result.t6 = QsensInfil(6.t13 = QsensVent(13.t20 = QLatVent(20. n_carg. Mes) result. Mes) result.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t4 = QsensInfil(4. Mes) result. Mes) result. Mes) + Trim(Ofi((nOfi .Nombre = "Latente-Ventilacion-" & AÑO(Mes) result.rst" nOfi .t1 = QLatVent(1.rst" nOfi . n_carg.t17 = QsensVent(17. Mes) result. Mes) result.t8 = QsensInfil(8.t18 = QsensVent(18. Mes) result.1))) result.t21 = QsensVent(21.1))) )) + ". Mes) result.salto = vbCrLf result.salto = vbCrLf result.t21 = QLatVent(21. Mes) result.tTotal = QLatVent(25.tTotal = QsensVent(25.id + 1 Open App.t13 = QLatVent(13.t16 = QsensVent(16. Mes) result. Mes) result. Mes) result.t7 = QLatVent(7. Mes) result.t17 = QLatVent(17.t22 = QsensVent(22.t2 = QsensInfil(2.39 )) + ".t11 = QLatVent(11.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi . Mes) result.Comp = "S" result. Mes) result. Mes) result. Mes) result. Mes) result.rst") result. Mes) result.t12 = QsensVent(12.t24 = QsensVent(24. Mes) result.t19 = QsensVent(19.t18 = QLatVent(18.t20 = QsensVent(20.t19 = QLatVent(19. Mes) result.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. Mes) result. Mes) result.1) + "Ofic" + Trim(Ofi(( .t11 = QsensInfil(11. Mes) result. Mes) result. Mes) result. Mes) result.t4 = QLatVent(4.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.t3 = QsensInfil(3.t15 = QLatVent(15. Mes) result.t5 = QsensInfil(5.t10 = QsensInfil(10.t9 = QLatVent(9.

result Close #1 n_carg = lenfile4(App.t6 = QLatInfil(6.t19 = QLatInfil(19. Mes) result.t21 = QsensInfil(21. 2) result.t8 = QLofic(nOfi. Meses.t16 = QLatInfil(16.id + 1 Open App.t4 = QLofic(nOfi.t16 = QsensInfil(16.Path & "/" & Trim(Directorio) & "/Resultados/" + ". Meses. 9) result.t4 = QLatInfil(4.id + 1 Open App. Meses. Meses. 8) result.id = result. Mes) result.t22 = QLatInfil(22.t2 = QLatInfil(2.t12 = QLatInfil(12. 1) result.t22 = QsensInfil(22.tTotal = QLatInfil(25.t19 = QsensInfil(19. Mes) result. Mes) result. Mes) result.1))) )) + ".t20 = QLatInfil(20. Mes) result. 10) result. Mes) result. Mes) result.t12 = QLofic(nOfi. Mes) result. Meses.rst" nOfi .rst") result.t20 = QsensInfil(20. Mes) result. 12) + Trim(Ofi((nOfi .rst" nOfi .id = result. Mes) result. Mes) result.t24 = QLatInfil(24.t2 = QLofic(nOfi. Mes) result. Mes) result. n_carg.1) + "Ofic" + Trim(Ofi(( . Mes) result. Mes) result. Mes) result. Mes) result. Mes) result.t10 = QLofic(nOfi.t11 = QLofic(nOfi. 4) result.t5 = QLofic(nOfi.Resultados .t13 = QsensInfil(13. Mes) result.tTotal = QsensInfil(25. Mes) result.Comp = "L" result. Meses. n_carg. Mes) result.t15 = QsensInfil(15.t8 = QLatInfil(8. Mes) result.t10 = QLatInfil(10.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1. Meses.t7 = QLofic(nOfi.t23 = QLatInfil(23. Mes) result. result Close #1 n_carg = lenfile4(App. Mes) result. Mes) result. Mes) result.40 )) + ".rst") result. Mes) result. Mes) result. 11) result. Mes) result. Meses.t11 = QLatInfil(11.t15 = QLatInfil(15. Mes) result. Mes) result.t14 = QsensInfil(14. Mes) result.t24 = QsensInfil(24.t3 = QLofic(nOfi. Mes) result. Mes) result.t9 = QLofic(nOfi.t1 = QLatInfil(1.t23 = QsensInfil(23.t7 = QLatInfil(7. Mes) result.1) + "Ofic" + Trim(Ofi(( + Trim(Ofi((nOfi . 6) result. Meses.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" For Random As #1 Len = Len(result) Put #1.1))) result. 7) result. Mes) result.t12 = QsensInfil(12.t5 = QLatInfil(5.t21 = QLatInfil(21.t1 = QLofic(nOfi.t13 = QLatInfil(13. Mes) result.Nombre = "TOTAL_LATENTE--" & AÑO(Meses) result.Comp = "T" result. Meses. 3) result. 5) result.salto = vbCrLf result.Nombre = "Latente-Infiltracion-" & AÑO(Mes) result.t6 = QLofic(nOfi.t3 = QLatInfil(3. Meses.t18 = QLatInfil(18.salto = vbCrLf result.t17 = QsensInfil(17.t14 = QLatInfil(14.Path & "/" & Trim(Directorio) & "/Resultados/" + ".t17 = QLatInfil(17. Mes) result. Meses.t9 = QLatInfil(9.t18 = QsensInfil(18.

15) result.t2 = QSofic(nOfi.tTotal = QLofic(nOfi.rst" For Random As #1 Len = Len(result) Put #1. 7) result. Meses.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t15 = QLofic(nOfi. 21) result. 14) result. Meses.t17 = QSofic(nOfi.1) )) + ". Meses. Meses. 25) result.t22 = QSofic(nOfi. 16) result.t11 = QSofic(nOfi. result Close #1 n_carg = lenfile4(App. Meses.t14 = QLofic(nOfi.t17 = QLofic(nOfi. Meses. 15) result.rst") result. 17) result. Meses. Meses.id + 1 Open App.t23 = QLofic(nOfi.t21 = QSofic(nOfi.t3 = QSofic(nOfi.rst" For Random As #1 Len = Len(result) Put #1. 20) result.t6 = QSofic(nOfi. result Close #1 End If End Sub .t16 = QSofic(nOfi.t18 = QSofic(nOfi. n_carg.t5 = QSofic(nOfi. 18) result. 13) result. Meses. 16) result. Meses.t24 = QLofic(nOfi. Meses.salto = vbCrLf result. 3) result. Meses. 13) result. Meses.id = result.t19 = QSofic(nOfi. Meses.t8 = QSofic(nOfi. Meses. 8) result. 1) result. 19) result. Meses. Meses.t12 = QSofic(nOfi.salto = vbCrLf result. 24) result. 17) result.t10 = QSofic(nOfi.t15 = QSofic(nOfi.Nombre = "TOTAL_SENSIBLE--" & AÑO(Meses) result. Meses. Meses.t24 = QSofic(nOfi.t13 = QLofic(nOfi.t16 = QLofic(nOfi. 18) result. 4) result. 10) result.t13 = QSofic(nOfi. Meses.1))) + ". Meses. Meses.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi(( nOfi . Meses. Meses. 11) result.t20 = QLofic(nOfi.t21 = QLofic(nOfi.Resultados . Meses. Meses. 12) result. 22) result.t1 = QSofic(nOfi.t14 = QSofic(nOfi. Meses. Meses. 25) result.t18 = QLofic(nOfi. 21) result. Meses. Meses.t19 = QLofic(nOfi. 5) result.id + 1 Open App.41 result. Meses. Meses.tTotal = QSofic(nOfi.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi .t4 = QSofic(nOfi. 22) result. Meses. 2) result.t20 = QSofic(nOfi.1) )) + ". Meses.t9 = QSofic(nOfi. 14) result.t7 = QSofic(nOfi. Meses. 23) result. 6) result. Meses.t22 = QLofic(nOfi. 19) result. 20) result. n_carg. Meses. 23) result. 9) result.Comp = "T" result. 24) result.t23 = QSofic(nOfi. Meses.id = result.

Label1 Ganancias SENSIBLES Ganancias LATENTES Ganancias TOTALES Label5 .

borrado = 1 Then n_cont = n_cont + 1 datos.txt" For Random As #2 Len = Len(da tos) Do While Not EOF(1) Get #1. n_cont. datos If datos.txt" For Random As #2 Len = Len(da tos) Do While Not EOF(1) Get #1.Path & "/" & Trim(Directorio) & "/Datos/" + Nombre + ".id = n_cont Put #2. . datos If datos.txt") n_ofi = lenfile(App.txt") Nombre = DatosGenerales. .txt" For Random Access Read As #1 Len = Le n(datos) Open App. datos End If Loop Close #1 Close #2 Open App.Hide End Sub Private Sub cmdGuardarTodo_Click() Dim n_cont As Integer Dim Nombre As String n_uma = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Path & "/" & Trim(Directorio) & "/Datos/UMAs. n_cont.Text Open App. datos End If Loop Close #1 Close #2 Open App.Show Me.txtTituloProyecto.1 Dim Dim Dim Dim Dim Dim clmx As ColumnHeader itmx1 As ListItem itmx2 As ListItem i As Integer datos As techo Directorio As String Private Sub cmdCalculo_Click() Resultados.Hide .txt" For Random Access Read As #1 Len = Len( datos) Open App. datos End If Loop Close #1 Close #2 End End Sub Private Sub cmdVolver_Click() Me.id = n_cont Put #2.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Path & "/" & Trim(Directorio) & "/Datos/" + Nombre + ". datos If datos.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.Path & "/" & Trim(Directorio) & "/Datos/" + Nombre + ".borrado = 1 Then n_cont = n_cont + 1 datos. .Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #2 Len = Len(da tos) Do While Not EOF(1) Get #1. n_cont.txt" For Random Access Read As #1 Len = Len(datos) Open App.id = n_cont Put #2.txt") n_carg = lenfile(App.borrado = 1 Then n_cont = n_cont + 1 datos.VistaPreviaDatos .

Ofcorr) itmX. 1700. datos.Add(1.txt" For Random Access Read As #1 Len = Len( datos) Do While Not EOF(1) Get #1.txt" For Random Access Read As #1 Len = Le n(datos) Do While Not EOF(1) Get #1. datos.ColumnHeaders.2 End Sub Private Sub Form_Load() Directorio = DatosGenerales.SubItems(3) = Trim(datos.Add(1.SubItems(4) = Trim(datos.Clear Dim itmX As ListItem i = 0 Open App. "ID".borrado = 1 Then Set itmX = ListView5.tcarga) Set itmX = Nothing End If Loop Close #1 ListView5. "ID".ColumnHeaders.TVar. 2 ListView5.SubItems(2) = Trim(datos.id) itmX. "ofi".Text ListView5.UmaAt) itmX.1 itmX. 1700.ColumnHeaders.ListItems.SubItems(4) = "-" Set itmX = Nothing End If Loop Close #1 Open App.ColumnHeaders. "PK".txt" For Random Access Read As #1 Len = Le n(datos) Do While Not EOF(1) Get #1.borrado = 1 Then Set itmX = ListView5.SubItems(2) = Trim(datos.SubItems(3) = Trim(datos. 1)) = "U" And datos. "Oficina".Clear ListView5.SubItems(1) = i .TVar.borrado = 1 Then Set itmX = ListView5. datos i = i + 1 If UCase(Left(datos. .1 itmX.1 itmX.SubItems(2) = Trim(datos.Add . 1)) = "O" And datos.Path & "/" & Trim(Directorio) & "/Datos/Global. "uma". .VistaPreviaDatos . "PK". 2 ListView5.Sorted = True End Sub .Add . 0 ListView5.SubItems(3) = "-" itmX.Add . datos.nombamb) itmX. 1)) = "C" And datos.Add .ListItems.SubItems(1) = i .ColumnHeaders.id) itmX.Path & "/" & Trim(Directorio) & "/Datos/Global. .ListItems. "UMA".Uma. 1700. .ListItems.SubItems(4) = "-" Set itmX = Nothing End If Loop Close #1 Open App. .id) itmX. . 2 ListView5.txtTituloProyecto. "Carga". 0 ListView5.UmaAt) itmX. datos If UCase(Left(datos.Add(1. "carg".ColumnHeaders.Path & "/" & Trim(Directorio) & "/Datos/UMAs.Add . datos If UCase(Left(datos.nombuma) itmX.SubItems(1) = i .SortKey = 3 ListView5.