Documente Academic
Documente Profesional
Documente Cultură
Por
Ricardo Gonzlez Perna
Sartenejas, octubre de 2006
Por
Ricardo Gonzlez Perna
Realizado con la Asesora de
Alfonso Quiroga
PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simn Bolvar
como requisito parcial para optar al ttulo de
Ingeniero Mecnico
Sartenejas, octubre de 2006
PALABRAS CLAVES
Programa de Clculo, Cargas Trmicas, normas ASHRAE
Dedicatoria:
A mi madre, quien me ha
enseado 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 tambin en saber para qu se vive."
- Fedor Dostoievski -
AGRADECIMIENTOS
1. NDICE GENERAL
iii
1.2.1. Tablas
Tabla 5.1. Porcentaje de Rango Diario
27
Tabla 5.2. Irradiacin Solar Extraterrestre y Datos Relacionados
28
Tabla 5.3. Coeficientes para vidrios DSA, para clculos de Transmitancia y Absorbancia28
Tabla A1.1 de requerimientos de aire por ventilacin
73
Tabla A1.2 de requerimientos de aire por ventilacin
74
Tabla A1.3 de requerimientos de aire por ventilacin
75
Tabla A2.1 Nmero mnimo de cambios de aire por hora requeridos por las normas del
M.S.A.S segn uso del local
76
Tabla A3.1. Irradiacin Solar y Coeficiente de Ganancia de Calor para Latitud 16 N 77
78
Tabla A3.2. Reflectividad de superficies exteriores
2
Tabla A3.3. Factores U para varios elementos con vidrios en W/(m *K)
79
Tabla A3.4. Factores U para varios elementos con vidrios en W/(m2*K) (cont.)
80
Tabla A3.5 Transmisin Visible (VT) y Coeficientes de Sombra (SC) para vidrios solos y
aislados
81
82
Tabla A4.1. Coeficiente de funcin de transferencia para Techos
Tabla A4.2 Coeficiente de funcin de transferencia para Paredes
83
Tabla A4.3 Tasa de Ganancia de Calor de los Ocupantes
84
Tabla A4.4. Porcentajes Convectivos y de Radiacin del total de Calor Sensible
84
Tabla A4.5. Ganancia de Calor de Motores Elctricos Comunes
85
Tabla A5.1 Tabla de propiedades trmicas para materiales comunes de edificios y aislantes
86
Tabla A5.2 Conductancia y Resistencias del Aire en Superficies
87
Tabla A6.1. Datos Climticos de las Ciudades ms importantes de Venezuela
88
117
Tabla E.1. Temperaturas soleadas para Julio 21, 40 N de Latitud
Tabla E.2. Ganancias de Calor de los ocupantes de un espacio refrigerado
123
1.2.2. Figuras
Figura 4.1. Escalas comunes de temperatura
10
Figura 6.1. Cdigo de almacenamiento de las unidades de manejo de aire
43
Figura 6.2. Cdigo principal de la subrutina de cargar el mdulo de las unidades de manejo
de aire
44
Figura 6.3. Comando ejecutado con el botn de Crear el entorno para guardar los datos y
resultados
45
Figura 6.4. Cdigo de la creacin y despliegue de la lista de ambientes disponibles
46
Figura 6.5. Extracto del cdigo de seleccin especfica de las caractersticas de una carga
47
Figura 6.6. Procedimiento de almacenamiento de las correcciones de datos en las unidades
de manejo de aire
47
iv
49
Figura 6.7. Estracto del anlisis de las cargas por oficinas
Figura 6.8. Cdigo particularizado para el clculo de las cargas de Equipos de Potencia 53
Figura 6.9. Esquema del procedimiento de clculo del programa
55
56
Figura 6.10. Imagen del programa en la Carga de Personas
Figura 6.11. Imagen de la carga de personas cuando se selecciona una lista de datos
57
Figura 6.12. Esquema de funcionamiento del programa, parte 1 de 2
58
Figura 6.13. Esquema de funcionamiento del programa, parte 2 de 2
59
Figura E.1. Balance de Calor en un instante para material cristalino expuesto al sol. 119
Figura E.2. Balance de Calor de un Retorno por Plnum
126
Abreviaturas
A
A
aj
rea
Constante de Evidencia Solar
Absorbancia de la superficie a la radiacin solar
Coeficientes de Absorcin de Vidrios
CGCS
C
C
Cp
Cpd
C ps
Declinacin
Diferencia entre la radiacin incidente en la superficie desde el cielo y los
alrededores y, la radiacin emitida por los cuerpos negros a la temperatura
del aire exterior, W/m2
ASHRAE
B
DSA
DTCR
DTTE
E
ea
Ed
ED
EDN
Edg
Eds
F
FCR
FS
Fsa
FTC
Ful
g ij
h
ha
hci
hg 0
ho
psia
PT
pw
q
qi ,
R
Ra
REi ,
Grados Ranking
Constante de gases de aire seco
Tasa de calor irradiado por los equipos y ocupantes, que es absorbida por la
superficie i en el instante
Capacidad de reflejar del Suelo
RLi ,
RS i ,
instante
Tasa de energa Solar que incide por las ventanas y es absorbida por la
hw
H
Hr.
It
K
kJ
kg
L
ma
MFT
mw
na
Ni
nw
nws
Pa.
pa
Rw
T
Ta ,
D
Ti ,
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
tj
T j ,
TVidrio
V
U
UMA
w
W
Xw
Xws
Y
Total de Vidrio
Volumen
Factor de resistencia trmico del cristal
Unidad de Manejo de Aire
Grado de humedad
Vatios
Fraccin molar del vapor de agua en aire hmedo
Fraccin molar de vapor saturado en aire
Tasa de difusin vertical/horizontal del cielo
Inclinacin de Superficie
Acimut Solar
2. INTRODUCCIN
El presente trabajo se fundamenta en la elaboracin de un programa de clculo de
cargas trmicas, que cumple los principios termodinmicos bsicos y considera los
mltiples factores que pueden afectar los resultados de stos, estructurndolo de un modo
que simplifica la comprensin de las variables y detalla los resultados en las distintas etapas
dentro del sistema de espacios que conforma a una edificacin.
3. OBJETIVOS
3.1. Objetivo General
-
4. FUNDAMENTOS TERICOS
4.1. Antecedentes
Previo a la elaboracin del programa de clculo de cargas trmicas que resultante de
este proyecto, se examinaron los software de clculo ms comunes en el mercado, en base a
lo cual se lleg a las siguientes premisas.
Todos los programas existentes estn basados en mtodos similares, algunos parten
del uso de bases de datos en forma de tablas y otros de las listas simples de datos. Los
conocimientos de termodinmica para el clculo 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 clculo para usuarios locales.
Las diferencias fundamentales que se pueden conseguir entre diversos programas
son: El sistema de unidades utilizado, el formato de introduccin de datos, el desarrollo del
estudio psicromtrico posterior al clculo de cargas, el clculo por unidades de
enfriamiento y de manejo de aire.
A continuacin se menciona una breve descripcin de algunos programas que se
conocieron y observaron previo al desarrollo del proyecto:
Climaver:
Valencia en conjunto con Cristalera Espaola S.A., que por ser de cdigo
cerrado (requiere licencia) no permite conocer el mtodo de clculo, se basa
en el uso de una base de datos sencilla que no requiere la instalacin de
servidores o libreras adicionales. Su interfaz es en monitor completo a tres
colores. Muy similar al entorno de trabajo del programa Aire. Su desventaja
es que se basa en las normas Europeas y que su base de datos de ciudades
est conformada nicamente por ciudades de Espaa.
CoolPack:
Dpclima:
Programa
desarrollado
por
el
Departamento
de
Saunier Duval:
datos y estima de modo rpido las cargas. Su desventaja es que desglosa los
datos de carga nicamente en la hora pico y no considera los fenmenos de
acumulacin de calor
Carrier HAP:
posee libreras de cada uno de los elementos a insertar, se estiman las cargas
en cada hora del da, permite la zonificacin del edificio y da la posibilidad
de simular el consumo energtico del sistema. Sus desventajas son que
desglosa las cargas slo en los espacios, no en el edificio completo y la
interpretacin de los resultados es compleja.
Aire hmedo.
La superficie de la tierra se encuentra rodeada de una capa de aire que es llamada
atmsfera o aire atmosfrico. Desde el punto de vista de la psicrometra, la atmsfera baja
es una mezcla de aire seco (incluyendo algunos agentes contaminantes) y vapor de agua,
mejor conocido como humedad.
La composicin del aire seco es comparativamente estable. Vara sigilosamente de
acuerdo a la ubicacin geogrfica y de acuerdo al tiempo. La composicin del aire seco en
porcentajes de volumen de sus elementos ms comunes es la siguiente:
Nitrgeno
78,08
Oxgeno
20,95
Argn
0,93
Dixido de Carbono
0,03
Otros gases
0,01
La cantidad de vapor presente en el aire seco a una temperatura entre un rango de 17,8 a 37,8 C vara desde 0,05 a 3 por ciento de la masa. Esto tiene una influencia
significativa en las caractersticas del aire seco.
El vapor de agua es ms ligero que el aire. Una nube en el cielo est compuesta por
microscpicas partculas de agua condensada que est rodeada de una delgada capa de
vapor de agua. Estas capas son las que le dan a las nubes la capacidad de flotar en el aire.
9
F = 1,8( C ) + 32
(1)
10
4.2.3. Humedad
Grado de humedad.
El grado de humedad del aire w es la relacin que hay entre la masa de vapor mw y
la masa del aire seco ma contenida en la mezcla de aire hmedo. Puede ser calculado de la
forma:
w=
mw
ma
(2)
En vista que tanto el aire como el vapor ocupan el mismo volumen y estn a la
misma temperatura, se pueden aplicar a esta expresin las ecuaciones de gas ideal y leyes
de Dalton para cada uno de los distintos componentes y as se vuelve a escribir la relacin
de la siguiente forma:
w=
mw pwVRaTR Ra
pw
=
=
m a paVRwTR Rw pat pw
53,352 pw
pw
=
= 0,62198
85,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/(kgK)].
Humedad relativa.
La humedad relativa del aire, o Hr., se define como la relacin de la fraccin
molar del vapor de agua Xw en una muestra de aire hmedo, con la fraccin molar del
vapor de agua en una muestra de aire con vapor saturado Xws a la misma presin y
temperatura. Esta relacin se puede escribir como:
w
ws
T ,p
(4)
11
w =
nw
na + nw
(5)
ws =
nws
na + nws
(6)
donde
na
nw
nws
= nmero de moles de vapor de agua por partes de aire con vapor saturado,
mol
El aire hmedo es una mezcla de aire seco y vapor de agua; en tal sentido se
consigui que la suma de las fracciones molares de vapor de agua y de aire seco da como
resultado uno, lo que implica:
a + w = 1
(7)
Entalpa.
La diferencia especfica de entalpa h para un gas ideal en KJ/kg, a una presin
constante se define por:
h = C p (T2 T1 )
(8)
donde
Cp
12
Como el aire hmedo es prcticamente una mezcla binaria de aire seco y vapor de
agua, la entalpa del vapor de agua puede ser considerada como
h = ha + H w
(9)
donde ha y H w son, respectivamente las entalpas del aire seco y del vapor de agua
en (kJ/kg). Las siguientes afirmaciones se realizan para calcular la entalpa del aire
hmedo:
1. Las ecuaciones de gas ideal y las leyes de Gibas-Dalton son vlidas
2. La entalla del aire seco es igual a cero a -17,8C
3. Todo el vapor de agua contenido en el aire hmedo se vaporiza a -17,8 C
4. La entalpa del vapor saturado a -17,8 C es 2468 kJ/kg
5. Para la conveniencia de clculo, se puede considerar la entalpa del aire hmedo
como una mezcla de aire seco y vapor de agua en donde la cantidad de aire seco es
exactamente 0,454 kg (1 lb).
En base a estas consideraciones, la entalpa del aire hmedo
h = ha + whw
(10)
ha = C pd T = 1,005 T
(11)
donde
Cpd
13
hw = hg 0 + C psT
(12)
donde
hg 0
= entalpa especfica del vapor de agua a -17,8 C, se puede asumir este valor
como 2468 kJ/kg
C ps
h = C pd T + w(hg 0 + C psT )
(13)
(14)
aire seco,
pero por
h = (C pd + wC ps )T + whg 0
(15)
El primer trmino del lado derecho de la ecuacin (15) denota el calor sensible.
El Calor Latente hfg es la energa calrica asociada con el cambio de estado del
vapor de agua. El calor Latente de la vaporizacin denota los requerimientos del calor
14
latente para vaporizar agua lquida a su estado gaseoso. De esta forma, el Calor Latente en
la condensacin indica el calor que debe ser removido del vapor de agua para condensarlo y
hacerlo lquido. Cuando se aumenta o disminuye la humedad de un espacio o proceso, una
cantidad de Calor Latente correspondiente deber actuar, para vaporizarla o condensarla.
En la ecuacin (15) el segundo trmino del lado derecho de la expresin whg 0 ,
denota al Calor Latente. Ambos calores, sensible y latente, se expresan en trminos de
kJ/kg de aire seco.
Esta tasa instantnea 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. La ganancia de calor se clasifica por
15
Los modos en que puede ocurrir ganancia de calor son a) Radiacin solar a travs de
superficies transparentes; b) Conduccin de calor a travs de paredes y techos exteriores; c)
Conduccin de calor a travs de particiones internas, aislamientos y suelos; d) Calor
generado en el espacio por los ocupantes, luces y equipos; e) Energa transferida como
resultado de la ventilacin o la infiltracin de aire externo; o f) Ganancias varias de calor.
Esta es la tasa a la cual el calor debe ser removido del espacio para mantener
constantes las condiciones de temperatura del aire. La sumatoria de cada una de las
ganancias de calor en cada instante no es necesariamente igual a la carga de refrigeracin
del espacio para el mismo instante.
16
17
qi , = hci (Ta , Ti , ) +
j =1, j i
ij
(T j , Ti , ) Ai + RS i , + RLi , + REi ,
(16)
para i = 1,2,3,4,5,6
dnde:
m=
Ai =
rea de la superficie i
hci =
g ij =
18
RLi , = Tasa de calor irradiado por las luces y absorbido por la superficie i
en el instante
REi , = Tasa de calor irradiado por los equipos y ocupantes, que es absorbida
por la superficie i en el instante
m =1
m =1
m =1
(17)
donde:
in = superficie interna.
k = orden de la funcin de transferencia por conduccin.
19
= temperatura
= tiempo
x = valor exterior de CTF
QL , = hci (t i , t a , ) Ai + CV L , (t o , t a , )
i =1
+ CVv , (t v , t a , ) + RS a , + RLa , + RE a ,
(18)
dnde
VL ,
to ,
Vv ,
tv ,
20
21
de dichos productos, los cuales pueden llevarse en una pequea computadora. Los mismos
conceptos de funcin de transferencia pueden ser aplicados para calcular la ganancia de
calor de los componentes en total.
una inercia trmica reflectiva apropiada de las superficies respectivas. La ganancia de calor
solar a travs de los vidrios y las variadas formas de ganancia de calor internas se calculan
directamente de la carga horaria de inters. A continuacin el mtodo aplica una segunda
serie de factores significativos o coeficientes de funcin de transferencia de la habitacin
(FTH), a la ganancia de calor y los valores de carga de refrigeracin de todos los elementos
de carga que tienen componentes radiantes, para considerar los efectos de almacenamiento
trmicos en la conversin de ganancias de calor en cargas de refrigeracin. Ambas series de
evaluacin consideran datos de varias horas previas as como la de evaluacin. Los
coeficientes de funcin de transferencia de la habitacin se relacionan especficamente a la
geometra espacial, la configuracin, la masa y otras caractersticas del espacio as como un
reflejo de las variaciones de almacenamiento trmico que sean significativas en tiempos
especficos por encima de los efectos observados en un promedio especfico de tiempo.
Funciones de Transferencia.
23
24
5. MTODOS Y PROCEDIMIENTOS
El programa de clculo de Cargas Trmicas que se desarrolla a partir de la
investigacin realizada, se fundamenta en el mtodo de la Diferencia de Temperatura Total
Equivalente promediada en el tiempo que se encuentra descrito en el Manual ASHRAE
25
I DT R
ho 24 ho
paredes y vidrios externos de los ambientes, los cuales permitirn una ganancia de calor del
ambiente a travs de ellas, por la accin de la energa solar.
Las variables de estas ecuaciones son y se obtienen de acuerdo a como se explica a
continuacin:
Te . La temperatura sol-aire
To . La temperatura de cada hora, considerada en funcin de la temperatura mxima
y corregida para las dems horas segn el rango de temperatura de bulbo seco de la regin,
que para Venezuela se identifica como 7 C. Para el caso de esta investigacin se cuenta
con datos de temperaturas medias Tm de las ciudades importantes de Venezuela, por lo que
se considerar la temperatura mxima TMax a la suma de la promedio ms 3,5 C. Esta
correccin para ser ms precisa se debe especificar junto con el rango especfico de
variacin de temperaturas de cada una de las ciudades.
Se calcula adems la temperatura en cada hora asumiendo la hora de temperatura
mxima como las 15:00, y a partir de ese dato comienza a restarse a la variacin el rango
multiplicado por un factor porcentual de disminucin indicado a continuacin en la tabla de
Porcentaje de Rango Diario.
26
27
Variables a usar:
Ecuacin
de tiempo,
Declinacin,
min
1416
1401
1381
1356
1336
1336
1336
1338
1359
1380
1405
1417
grados
-11,2
-13,9
-7,5
1,1
3,3
-1,4
-6,2
-2,4
7,5
15,4
13,8
1,6
W/m
-20,0
-10,8
0,0
11,6
20,0
23,45
20,6
12,3
0,0
-10,5
-19,8
-23,45
0,142
0,144
0,156
0,180
0,196
0,205
0,207
0,201
0,201
0,177
0,149
0,142
0,058
0,060
0,071
0,097
0,121
0,134
0,136
0,122
0,092
0,073
0,063
0,057
1230
1215
1186
1136
1104
1088
1085
1107
1151
1192
1221
1233
aj
tj
0
1
2
3
4
5
0,01154
0,77674
-3,94657
8,57881
-8,38135
3,01188
-0,00885
2,71235
-0,62062
-7,07329
9,75995
-3,89922
28
D = a j cos j
(47)
j =0
5
D = t j cos j
(48)
j =0
Altitud Solar
Acimut Solar
(49)
(50)
cos =
(51)
Irradiacin Normal
Directa EDN
(52)
(53)
E DN = A exp( B / sin )
(54)
Irradiacin Directa
ED = EDN cos
si cos > 0
ED
ED = 0
en otro caso
(55)
29
verticales y en
superficies
(56)
horizontales Y
Irradiacin Difusa Ed
(57)
Ed = Eds + Edg
donde,
Superficies
Verticales
Otras que no son
Verticales
Eds = C Y EDN
(58)
1 + cos
Eds = C EDN
(59)
1 cos
Edg = EDN (C sin ) g
y,
(60)
Ganancia de Calor
Solar
Componente
Transmitida
Componente
Absorbida
Factor de Ganancia
de Calor
j =0
j =0
j =0
j =0
= ED t j cos j + 2 Ed
= ED a j cos j + 2 Ed
tj
j+2
aj
j+2
(61)
(62)
(63)
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 ,
multiplicando al factor por 1,15 tal y como se indica anteriormente.
30
31
(64)
32
Propiedades Trmicas Tpicas para Edificios Comunes (Apndice A5, tabla A5.1), para
luego sumarlos a los coeficientes interno hi y externo ho respectivamente, los cuales se
obtienen de la tabla de Resistencias al Aire en Superficies (Apndice A5, tabla A5.2), y
obtener el inverso de esa sumatoria.
U=
1
n
hi + R j + ho
(65)
j =0
(66)
(67)
33
Las cargas de luces, a menos que no sean alimentadas por energa elctrica,
producen nicamente ganancia de calor sensible. Dicha ganancia se produce tambin a
travs de los fenmenos de radiacin y conveccin, y variar el porcentaje de contribucin
de cada uno de stos de acuerdo a la temperatura en que trabaje la lmpara, a mayor
temperatura superficial, mayor es la contribucin por radiacin.
El calor generado por las lmparas se obtiene, segn se observa en la ecuacin (31),
de la potencia nominal W del conjunto de lmparas, del factor de uso Ful , que es la
proporcin en que el total de lmparas se encuentran encendidas y el factor de balasto Fsa ,
que es un elemento de contribucin del tipo de luces al ambiente. Fsa =1 para luces
incandescentes y Fsa =1,2 para luces fluorescentes.
34
Se considera, segn la tabla (Apndice A4, Tabla A4.4), que la contribucin por
radiacin de las luces incandescentes es de un 80% del calor generado, mientras que para
las luces fluorescentes el aporte ser de 50%. La distribucin en el tiempo de la
contribucin se realiza de modo similar a como se indica anteriormente en la Ganancia de
Calor de Personas, de modo gradual en un perodo 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.
Los equipos de potencia, que son motores que accionan a otros dispositivos,
generan mayor o menor calor al ambiente de acuerdo al modo en que sean colocados. Un
motor puede estar dentro o fuera del espacio refrigerado, as como el dispositivo al cual est
accionando. La combinacin de estas configuraciones, nos da cuatro colocaciones posibles
del sistema motor-equipo. Las contribuciones que stas aportan al ambiente, se encuentran
representadas en la tabla de Ganancias de Calor de Motores Elctricos Comunes (Apndice
A4, Tabla A4.5) o pueden estimarse en funcin de lo que indique el fabricante del motor en
la placa.
El calor sensible total que aporta un equipo de potencia al ambiente refrigerado,
puede calcularse del modo siguiente:
q p = P EF
(68)
donde
EF
35
qsensible = qentrada FU FR
(69)
donde
36
FU
= factor de uso
FR
= factor de Radiacin
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 informacin de ganancias de calor
respectivas.
(43)
(44)
donde,
t o , ti
37
38
su latitud, altura sobre el nivel del mar, temperaturas mximas 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 cul se complementan los datos
proporcionados por la entidad Oficial del clima en Caracas.
Partiendo de estos datos caractersticos de las ciudades y sus respectivos climas, se
realizan los clculos recomendados del factor de ganancia de calor solar, el cual permite
despus 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 clculo de las ganancias de calor
externas, pero no son de relevancia para el conocimiento del usuario, no se exhiben en
ningn momento, pero s son calculadas las filas requeridas en funcin 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 Climticos de las Ciudades ms Importantes de Venezuela (Apndice
A6, tabla A6.1) se requerir por parte del usuario proporcionar los datos de latitud, altura,
temperatura mxima y humedad mensual y/o anual y la variacin estndar de temperatura
en el da. En caso que se proporcione nicamente el promedio anual para las temperaturas,
se requiere adicionalmente que se indique el mes ms caliente y la variacin estndar entre
los meses, para poder establecer un patrn de comportamiento mensual y as estimar
posteriormente el comportamiento diario dentro de cada mes.
39
6. DESARROLLO
El fundamento de este trabajo de investigacin es desarrollar un programa
computarizado de clculo de cargas trmicas que se apalanque en el procedimiento
programable ms actualizado, eficaz y eficiente que pueda proporcionar un perfil diario de
ganancia de calor, para establecer los requerimientos mnimos que debe cumplir un sistema
de aire acondicionado para mantener la temperatura de diseo dentro de un ambiente a
refrigerar.
Se requiere que el programa realice de modo automtico los procedimientos
establecidos en las normas ASHRAE de ventilacin y aires acondicionados, que
simplifique el trabajo del usuario reducindole la necesidad de clculos 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 clculos respectivos.
6.1. Procedimiento
En el proceso de investigacin y desarrollo del programa que se obtiene como
resultado de este trabajo, se parti de un programa de clculo de cargas trmicas y
psicrometra realizado por estudiantes y profesores de la Universidad Simn Bolvar en la
dcada de los ochenta y que an en da 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 ms interactivo cualquier software.
Se parte entonces con el estudio del programa anterior, realizado en lenguaje Basic,
y se determinan las rutinas de clculo que estn divididas en 20 subrutinas, 10 de ellas de
40
41
42
caractersticas pertinentes; tambin permite asimilar las rutinas para lograr la presentacin
de las diferentes listas de datos en pantalla, para poder observar las caractersticas de cada
variable, que en nuestro caso ser una unidad de manejo de aire, un ambiente o un elemento
de carga.
Private Sub CargUMA_Click()
If txtnombuma.Text = "" Or txtcantumaigual.Text = "" Or txtTextd.Text = "" Or txtHrext.Text = "" Or txtTintd.Text = "" Or
txtTme.Text = "" Or txtHintd.Text = "" Or txtBpf.Text = "" Or txtChmin.Text = "" Then
MsgBox "Faltan datos, verifique que llen todas las casillas", vbExclamation
Else
Dim n_uma As Long
n_uma = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt")
If n_uma - 1 = 0 Then n_uma = n_uma + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random As #1 Len = Len(datos)
Get #1, n_uma, datos
Close #1
If n_uma > 2 Then
MsgBox " No se pueden agregar ms de dos (2) Unidades de Manejo de Aire para esta versin del programa"
Else
datos.TVar = "UMA"
datos.Uma = "UMA"
datos.nombuma = txtnombuma.Text
datos.cantumaig = txtcantumaigual.Text
datos.Tmext = txtTme.Text
datos.Textd = txtTextd.Text
datos.Hrext = txtHrext.Text
datos.Tintd = txtTintd.Text
datos.Hrint = txtHintd.Text
datos.bpf = txtBpf.Text
datos.chmin = txtChmin.Text
datos.retorno = cboRetorno.Text
datos.Flujo = cboFlujo.Text
datos.Agua = cboAgua.Text
datos.borrado = 1
datos.id = datos.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random As #1 Len = Len(datos)
Put #1, n_uma, datos
Close #1
txtnombuma.Text = ""
txtcantumaigual.Text = ""
txtTintd.Text = ""
txtHintd.Text = ""
txtBpf.Text = ""
txtChmin.Text = ""
End If
End If
Call Form_Load
End Sub
En la figura 6.1 se extrae el cdigo de la instruccin del programa que permite crear
y/o almacenar las caractersticas de cada unidad de manejo de aire en el archivo
correspondiente para tal fin. Este procedimiento se ejecuta una vez que se hace clic en el
botn de Cargar Uma de la seccin respectiva y como se observa en sus lneas, slo
proceder a almacenar los datos s existen datos introducidos en cada una de las casillas,
43
para evitar as que se introduzcan datos incompletos para las unidades de manejo de aire.
De igual modo se realiza para las caractersticas de oficinas y para las caractersticas de
cargas de ganancia de calor.
Private Sub Form_Load()
Directorio = DatosGenerales.txtTituloProyecto.Text
TabStrip1.Tabs.Item(4).Selected = True
'Encabezados Lista UMAs
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "Nomb", "Nombre UMA", 2300, 2
ListView1.ColumnHeaders.Add , "tempm", "Temp. Ext. Med.", 1500, 2
ListView1.ColumnHeaders.Add , "temp", "Temp. Ext.", 1000, 2
ListView1.ColumnHeaders.Add , "Hrext", "Hr Ext.", 700, 2
ListView1.ColumnHeaders.Add , "tint", "Temp. Int.", 1000, 2
ListView1.ColumnHeaders.Add , "hrint", "Hr Int.", 700, 2
ListView1.ColumnHeaders.Add , "agua", "Agua", 700, 2
ListView1.ColumnHeaders.Add , "bpf", "By Pass", 800, 2
ListView1.ColumnHeaders.Add , "flujo", "Flujo", 700, 2
ListView1.ColumnHeaders.Add , "reto", "Retorno", 800, 2
'Actualiza la tabla de UMAs
ListView1.ListItems.Clear
Dim itmX As ListItem
i=0
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.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.Uma, 1)) = "U" And datos.borrado = 1 Then
Set itmX = ListView1.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.nombuma)
itmX.SubItems(3) = Trim(datos.Tmext)
itmX.SubItems(4) = Trim(datos.Textd)
itmX.SubItems(5) = Trim(datos.Hrext)
itmX.SubItems(6) = Trim(datos.Tintd)
itmX.SubItems(7) = Trim(datos.Hrint)
itmX.SubItems(8) = Trim(datos.Agua)
itmX.SubItems(9) = Trim(datos.bpf)
itmX.SubItems(10) = Trim(datos.Flujo)
itmX.SubItems(11) = Trim(datos.retorno)
Set itmX = Nothing
End If
Loop
Close #1
txtTextd.Text = CondicionesExteriores.txtTexts.Text
txtHrext.Text = CondicionesExteriores.txtHrextg.Text
txtTme.Text = CondicionesExteriores.txtTextpromg.Text
End Sub
Figura 6.2. Cdigo principal de la subrutina de cargar el mdulo de las unidades de manejo de
aire
aire. Esta subrutina es tambin invocada cada vez que se realiza otra de las acciones del
mdulo, de modo que se mantenga actualizada la visualizacin de los datos como se puede
ver al final de la figura 6.1, donde est la instruccin Call Form_Load. Se observa en el
cdigo que se asocia directamente a la carpeta cuyo nombre sea igual al ttulo del proyecto,
ya que al asignarle el ttulo 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.
La opcin de creacin de la carpeta donde se almacenarn los datos respectivos de
cada uno de los proyectos que sean analizados con el programa desarrollado en este trabajo,
requiere que se analice primero la existencia o no un nombre similar al proyecto, de modo
de permitir que sean borrados los datos anteriores o simplemente que se cree la carpeta
nueva. Esto se logra con un procedimiento verifique inicialmente si existe alguna carpeta
con el nombre que se introduce como ttulo del proyecto y que en caso de no existir, la cree
y se cree una carpeta de resultados en su interior. Este procedimiento se observa en el
cdigo descrito dentro de la figura 6.3.
Private Sub Command1_Click()
On Error Resume Next
Dim datos As techo
Dim Directorio As String
Directorio = txtTituloProyecto.Text
If ExisteDir(App.Path & "/" & Trim(Directorio)) = True Then
DlgReemplazar.Show
Else
MkDir (App.Path & "/" & Trim(Directorio))
MkDir (App.Path & "/" & Trim(Directorio) & "/Datos")
MkDir (App.Path & "/" & Trim(Directorio) & "/Resultados")
n_proc = lenfile(App.Path & "/Tablas/InfoGeneral.dat")
Open App.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos)
Get #1, n_proc, datos
Close #1
datos.Titulo = txtTituloProyecto.Text
datos.Nombre = txtNombreEmpresa.Text
datos.Encargado = txtEncargadoProyecto.Text
datos.Fecha = txtFecha.Text
datos.id = datos.id + 1
datos.O = "N"
datos.salto = vbCrLf
Open App.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos)
Put #1, n_proc, datos
Close #1
TabStrip1.Enabled = True
End If
End Sub
Figura 6.3. Comando ejecutado con el botn de Crear el entorno para guardar los datos y
resultados
45
46
Para lograr la modificacin de los datos parciales o totales de una lista completa,
debe ser seleccionada la misma en pantalla y hacer doble clic en ella. Una vez que se haga
esto, se tomar del archivo la lista correspondiente al elemento seleccionado y se colocarn
todas sus caractersticas en las casillas pertinentes dentro del entorno del programa. El
cdigo de seleccin de la lista de caractersticas se ejemplifica en la figura 6.5 a
continuacin, dnde se extrae el comando de esta operacin para las cargas.
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
Figura 6.5. Extracto del cdigo de seleccin especfica de las carctersticas de una carga
La seleccin de este modo de los datos especficos de una lista de datos, permite a
su vez guardarla en el espacio espefco que se reservaba para ella, de modo que el archivo
no incrementa su tamao ni se modifica su orden. Se aade tambin la opcin de suprimir
un elemento, evento que si modifica el tamao del archivo, ya que se elimina un espacio
reservado para datos y se reordenan los datos que seguirn en existencia. Esta opcin se
logra asignndole un valor de verificacin que ser 1 si el dato debe permanecer y 0 si el
dato debe ser eliminado. Al momento de almacenar un dato corregido o eliminado se corre
una subrutina variada del almacenamiento de datos, donde se crea un archivo virtual con
los datos que permanecern y luego sustituye al archivo original, tal como se puede
observar en la figura 6.6, que es el extracto de esta rutina para el caso de la modificacin de
los datos de unidades de manejo de aire.
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.txt" For Random As #2 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_uma = n_uma + 1
datos.id = n_uma
Put #2, n_uma, datos
End If
Loop
Close #1
Close #2
On Error Resume Next
Kill App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt"
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.txt", App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.txt"
47
48
rutina normal de clculo, con la finalidad de agilizar los procedimientos y evitar que se
haga pesada la ejecucin de los procedimientos.
6.3. El Programa
El programa se desarrolla en el lenguaje Visual Basic 6.0 soportado en interfaces de
Visual Studio 6.0, lo cual permite la utilizacin de una interfaz grfica que no distorsiona
50
51
veces nada ms si el tipo de anlisis es de un solo mes o 288 veces (24x12), si la opcin de
clculo seleccionada as lo requiere.
Open App.Path & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Qequipos(0, j) = 0 + Qequipos(0, j)
End If
If j >= ini And j <= fin Then
Qequipos(0, j) = 0 + Qequipos(0, j)
End If
totalEq = totalEq + Qequipos(0, j)
Next j
End If
End If
Loop
Close #1
Next nOfi
52
53
La suma de los totales por unidades de manejo de aire, multiplicados por la cantidad
de ellas que sea pertinente realizar, proporcionar el aporte que se requiere de la unidad
enfriadora por parte de cada una y la suma de todas, ser el resultado global de calor que se
debe extraer del edificio en total, por lo que el sistema de aire acondicionado se
confecciona de acuerdo a ello. El esquema simplificado el procedimiento es el reseado en
la figura 6.9.
Bajo el mismo principio, se realiza el procedimiento de clculo psicromtrico por
cada una de las unidades de manejo de aire, para obtener as los requerimientos de
recalentamiento o no de la unidad.
El principio de secuencia de los clculos y determinacin del recalentamiento, si
fuere necesario, se realiza de un modo similar al que se obtiene del programa Cargas
realizado en Basic, con la ventaja que ahora los datos se leen por lista completa y no dato
por dato, resultando ms dinmico y simplificando la etapa de llenado de datos en memoria
dinmica del computador, como lo realiza el programa de la dcada de los ochenta.
54
55
En caso de observarse algn error en alguno de los datos listados, el programa est
en la capacidad de permitir al usuario hacer el llamado de los datos de la lnea especfica de
carga para as ver los datos en las casillas de texto correspondientes a cada elemento y
corregir aquel error que existiere, almacenndolo una vez corregido.
Tambin se incluye la opcin de borrar alguna carga, unidad de manejo de aire u
ambiente si fuere necesario, ya que en las listas de datos se abre entre las variables una
opcin invisible para el usuario de validacin para borrar, como se puede observar en la
Figura 6.11. Una vez que el usuario hace el llamado desde la tabla a alguna lista de datos,
selecciona la opcin borrar y acepta, la presente carga queda eliminada permanentemente
de los datos.
56
almacenar los datos y lista de resultados pertenecientes al proyecto que se elabore, para
posteriormente poder acceder a ellos si as fuese requerido.
Posterior a que se ha asignado un nombre al proyecto y se ha creado la carpeta para
guardar los resultados, los siguientes procedimientos de guardado sern automticos, salvo
que el usuario decida tomar la opcin de Guardar y Salir presente en la pantalla del
programa.
A Pesar que se encuentran en un mismo nivel aparente la inclusin de datos de las
Unidades de Manejo de Aire, las de Oficina o Ambiente y las Cargas, teniendo un carcter
de dependencia entre ellas, se da la opcin al usuario de colocar a qu Ambiente pertenece
la Carga que se introduzca, as como se indica a qu Unidad de Manejo de Aire pertenece
cada uno de los Ambientes. 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. Un diagrama ideal de funcionamiento del programa es el que se observa entre
los siguientes esquemas (Figura 6.12 y Figura 6.13)
57
El usuario slo puede asignar por cada tipo de ambiente una UMA que ya haya sido
caracterizada previamente, para as evitar incongruencias en la lectura de los datos.
Igualmente ocurre para las cargas, que slo podrn compatibilizarse con un ambiente que
haya sido previamente descrito en el segmento respectivo.
Las cargas, se introducen por tipo, seleccionando inicialmente el tipo de carga que
se quiere aadir y luego especificando tanto las condiciones como el ambiente al que
pertenecen.
Una vez que el usuario ha introducido las respectivas unidades de manejo de aire,
ambientes refrigerados y cargas con todas sus caractersticas, se puede revisar cada una o ir
a la opcin de ver el listado completo, donde se especifica la correspondencia de cada una
de las UMAs, los ambientes y las cargas dentro de ellas.
Una vez que se ha comprobado que las cargas corresponden a los ambientes
respectivas y a su vez, stos corresponden a las UMAs pertinentes, el usuario puede
solicitar el clculo de las cargas.
El procedimiento de clculo en que se fundamenta el programa se rige bajo el
esquema planteado en los Procedimientos de Clculo explicados en el captulo de Mtodos
58
y Procedimientos. Permitiendo que se generen los clculos para cada una de las 24 horas de
operacin en el rango anual o mensual que haya sido seleccionado para el clculo
respectivo.
Automticamente una vez que se realiza el clculo de las ganancias de calor de cada
carga, se almacenan en un archivo de texto que puede ser fcil de consultar por cualquier
usuario y simultneamente se imprime en pantalla el mismo listado de las cargas por horas
de acuerdo a cada ambiente y tambin el clculo global por UMAs.
Se hace imperativo que el programa sea alimentado con nmero de acuerdo al
estndar numrico de cada regin (uso de comas en Latinoamrica para separar los
decimales) de modo que no ocurra error en el clculo de las cargas.
Inicio
59
Datos Generales
Condiciones Exteriores
60
exterior sern las mismas que las que se introducen en la seccin de Condiciones
Condiciones de Ambiente(s)
Cada ambiente debe ser dependiente de una UMA, por lo tanto se exige que se
especifique una de las que han sido previamente guardadas en la seccin correspondiente
para poder contar con datos de temperatura y humedad interior. Se obliga de este modo a
que la temperatura de todas los espacios refrigerados correspondientes a una unidad de
manejo de aire sea igual, aunque en la realidad se pueden hacer variaciones de temperatura
por control de flujo de salida del aire, pero son suposiciones que no se pueden estimar de un
modo sencillo.
Se permite insertar los datos del nombre con que se identifica al ambiente,
seleccionar la unidad de manejo de aire, la cantidad de ambientes con similares condiciones
(de carga inclusive), el rea superficial, la altura global de pared (al techo o cielo raso) y el
nmero mximo de personas que se estime habr en el local en un instante determinado.
61
Cargas
Techos
62
Pared
Vidrio
63
64
Luces
La carga de luces depende del total instalado por cada tipo de luz,
incandescente o fluorescente, en el ambiente ya que se requieren slo el total de
potencia nominal instalada y la especificacin del tipo de luces, adems del tiempo
en que permanecen encendidas y la hora de inicio.
Aparatos
Para dar los valores requeridos de ganancias de calor sensible y latente de los
aparatos, 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 segn ellas los valores respectivos de
cargas. Se debe indicar en este momento si el aparato se encuentra en un sistema
con o sin campana de extraccin, ya que ste es un factor que reduce la ganancia de
calor latente en su totalidad y parcialmente la sensible.
65
Equipos de Potencia
Personas
66
En esta seccin del programa se presenta una lista resumida de los datos
introducidos anteriormente. Se muestra una recopilacin simplificada de los nombres de
unidad de manejo de aire, de ambiente y de tipo de carga, en una estructura similar a la de
un rbol, donde se establecen y comprueban los vnculos precisos de las cargas respecto a
las UMAs.
Los datos sern recopilados en un archivo *.dat, que puede ser de fcil acceso por
cualquier usuario, pero no debe ser modificado directamente en el archivo, porque no deja
de ser comprendido por el programa; por lo tanto, se permite que el programa cargue en
esta etapa el archivo compilado de cargas, unidades de manejo de aire, ambientes y
condiciones iniciales, permitiendo que sean modificadas cada una de ellas por el usuario de
un modo simple, pero dentro de la ejecucin del Software.
Resultados
67
programa para la efectiva determinacin de cargas por espacio y por unidad de manejo de
aire en el tiempo que sea indicado el anlisis.
Se presenta una lista de datos general, para indicar las condiciones de temperatura
soleada que se necesit calcular, los factores de ganancia de calor requeridos por el estudio
y los coeficientes de temperatura total equivalente TETD en cada direccin necesaria.
Luego una opcin de pestaas donde se presentan los resultados por cada ambiente,
que se muestran en tres listas de datos, una para indicar las Ganancias de Calor Sensible de
los ambientes, otra para indicar las Ganancias de Calor Latente y la tercera para indicar las
Ganancias Totales de cada carga presente.
En la misma opcin de pestaas se permite ver tambin los resultados por UMAs
donde se listan las cargas totales de las mismas en cada mes, si corresponde el tipo de
anlisis y en la parte inferior de la seccin de pestaas, para este caso, se observa la
determinacin del pico de carga.
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 ms desfavorable de energa y la potencia
de un equipo de refrigeracin mnima para cubrir las necesidades del ambiente.
De forma simultnea que se van realizando los clculos y obteniendo los resultados,
el programa almacena de un modo tabulado los mismos, para que sean de fcil acceso para
documentacin de proyectos relativos al clculo de las cargas de refrigeracin.
68
7. RESULTADOS
El programa de clculo de cargas de refrigeracin para edificios realizado permite, a
diferencia de muchos otros, considerar la situacin geogrfica especfica de Venezuela sin
tener que invocar a aproximaciones en funcin de tablas que no corresponden de modo
preciso a las latitudes presentes en este espacio geogrfico.
Tambin est en capacidad de soportar latitudes de todo el hemisferio norte, 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 clculo para
Venezuela y los datos de comparacin disponibles para comprobar la efectividad del
clculo estn todos basados en el hemisferio norte.
Se evita finalmente la dependencia de tablas de factores de ganancia que son
calculados y aproximados por terceras personas, que a su vez pueden tener muchos detalles
al transcribirse, tanto en la publicacin de los mtodos, como en la elaboracin de las
referencias programadas de un software. En este programa slo se hace referencias a tablas
de caractersticas, que pueden ser aceptadas por el usuario as como puede tener algunas
consideraciones que disten de lo incorporado en el mismo.
La precisin de de los clculos se considera aceptable al compararla con datos
especficos de cargas de los ejemplos del manual ASHRAE Fundamentals 1997, ya que no
realiza redondeos de variables sino al final, cuando se hace la conversin del tipo de
variable numrica a un formato de cadena de caracteres, que es el formato impreso en los
archivos de resultados y que se visualiza en las listas de la seccin correspondiente.
El trabajo con listas de datos en vez de con base de datos, libera al programador y al
usuario final de tener que cancelar usos de licencias para el soporte de las mismas, ya que el
uso de stas requiere de libreras y software adicional, que hace ms pesado el programa de
69
clculo y requiere un costo adicional. Al realizarlo de este modo, se permite que sea
aplicable como proyecto de investigacin y no como proyecto de lucro.
Adems el trabajo con listas en Visual Basic, permite la asociacin de las variables
completas de una carga, ambiente o unidad de manejo de aire, permitiendo as el manejo
ms dinmico de los procedimientos de bsqueda datos y posterior clculo de resultados, a
diferencia de cmo ocurra con el programa en Basic, que se deba prever la disposicin de
los datos para considerar su lectura del archivo.
La compatibilidad del programa con cualquier mquina que cumpla los
requerimientos mnimos indicados, est comprobada y su velocidad de clculo incrementa
con la velocidad del procesador del computador en que sea utilizado el programa. Esto es
debido a que fue probado el programa en varias mquinas que cumplan las
especificaciones indicadas y sin necesidad de tener instalado el programa base de
programacin, corri sin problemas y arroj los resultados esperados. Esto se realiz
aunque no era requisito de la investigacin.
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, correr en un tiempo prudencial para el
sentir humano, cuya interfaz permite la correccin dinmica de los datos que se van
aadiendo y el cual a su vez, aporta muchas de las listas de materiales y cargas que se
consiguen en las oficinas e instalaciones industriales. Esto debido a que no se realizan
tantos saltos en la lnea de operacin de los clculos.
La interfaz adems, permite la comprensin de las situaciones que requiere el
clculo para aquellas personas que no se encuentran totalmente familiarizadas con el
proceso de clculo de cargas trmicas para dimensionar algn sistema de aire
acondicionado, ya que va exigiendo variables importantes y proporcionando otras que
quizs alguien con poca experiencia pueda pasar por alto en muchos casos.
70
8. CONCLUSIONES Y RECOMENDACIONES
1.
tiempo (TETD/TA), es una herramienta muy verstil para el clculo de cargas trmicas. Se
complementa de los dems mtodos de clculo de cargas, y se obtienen resultados
similares, en un proceso que requiere un menor nmero de consideraciones y clculos.
4.
en las rutinas de clculo y programacin, ya que a pesar de lograr los objetivos previstos,
siempre existen mtodos de reduccin de lneas de programacin que el autor pudo haber
omitido durante el desarrollo. La reduccin de instrucciones incrementa la velocidad de
proceso y por lo tanto mejora el rendimiento del programa.
71
9. BIBLIOGRAFA
Referencias
ASHRAE. 1999 Ventilation for Aceptable Indoor Air Quality. ANSI/ASHRAE Standard
62-1999
ASHRAE Fundamentals 1981 Psychrometrics, Chapter 6. American Society of Heating,
Refrigerant and Air-Conditioning Engineers, Inc., Atlanta, 1981
ASHRAE Fundamentals 1989 Psychrometrics, Chapter 6. American Society of Heating,
Refrigerant and Air-Conditioning Engineers, Inc., Atlanta, 1989
ASHRAE Fundamentals 1997. Climatic Design Information, Chapter 26. American
Society of Heating, Refrigerant and Air-Conditioning Engineers, Inc., Atlanta, 1997
ASHRAE Fundamentals 1997. Fenestration, Chapter 29. American Society of Heating,
Refrigerant and Air-Conditioning Engineers, Inc., Atlanta, 1997
ASHRAE Fundamentals 1997. Nonresidential Cooling and Heating Load Calculations,
Chapter 28. American Society of Heating, Refrigerant and Air-Conditioning Engineers,
Inc., Atlanta, 1997
ASHRAE Fundamentals 1997. Thermal and Water Vapor Transmission Data, Chapter
24. American Society of Heating, Refrigerant and Air-Conditioning Engineers, Inc.,
Atlanta, 1997
ASHRAE Fundamentals 1997. Ventilation and Infiltration, Chapter 25. American
Society of Heating, Refrigerant and Air-Conditioning Engineers, Inc., Atlanta, 1997
Balena, F, Programacin avanzada con Microsoft Visual Basic 6.0, McGraw Hill, 1
edicin en espaol, Madrid, 2000, pp.200-1155.
Carrier Corporation 1960, Load Estimating, Carrier Air Conditioning Company,
Siracusa, Nueva York, 1972, pp 160
Lpez, M, Apuntes de clase de Instalaciones Mecnicas USB, Caracas, 2006, 1-36
Rey F.J., J.A. Franco, E. Velasco, F. Varela, M.J. Molina y J.M. Bartolom, Estudio
comparativo de mtodos de clculo de cargas trmicas en edificios, Energa,
Climatizacin pp.99-108 (S.F.)
72
10. APNDICES
Apndice A. Tablas
Apndice A1
Tabla A1.1 de requerimientos de aire por ventilacin.2
73
Apndice A1(Cont)
Tabla A1.2 de requerimientos de aire por ventilacin.3
74
Apndice A1 (Cont.)
Tabla A1.3 de requerimientos de aire por ventilacin.4
75
Apndice A2
Tabla A2.1 Nmero mnimo de cambios de aire por hora requeridos por las
normas del M.S.A.S segn uso del local5
76
Apndice A3
Tabla A3.1. Irradiacin Solar y Coeficiente de Ganancia de Calor para Latitud 16 N6
77
Apndice A3(Cont.)
Tabla A3.2. Reflectividad de superficies exteriores
78
Apndice A3 (Cont.)
Tabla A3.3. Factores U para varios elementos con vidrios en W/(m2*K)
79
Apndice A3 (Cont.)
Tabla A3.4. Factores U para varios elementos con vidrios en W/(m2*K) (cont.)
80
Apndice A3 (Cont.)
Tabla A3.5 Transmisin Visible (VT) y Coeficientes
de Sombra (SC) para vidrios solos y aislados
81
Apndice A4
Tabla A4.1. Coeficiente de funcin de transferencia para Techos
82
Apndice A4 (Cont.)
Tabla A4.2 Coeficiente de funcin de transferencia para Paredes
83
Apndice A4 (Cont.)
84
Apndice A4 (Cont.)
85
Apndice A5
Tabla A5.1 Tabla de propiedades trmicas para materiales comunes de edificios y aislantes
86
Apndice A5 (Cont.)
87
Apndice A6
Tabla A6.1. Datos Climticos de las Ciudades ms importantes de Venezuela
88
89
90
91
92
93
Apndice C
Resultados.
Cdigos de Procedimiento:
'Dimensionamiento de Matrices para el clculo de cargas
Dim i As Integer
Dim Qtecho(11, 23) As Long
Dim Qpared(11, 23) As Long
Dim Qvidrio(11, 23) As Long
Dim Qluces(0, 24), QCluces(0, 24) As Long
Dim QRluces(0, 24) As Long
Dim Qpersonas(0, 24) As Long
Dim QLpersonas(0, 24), QSRpersonas(0, 24) As Long
Dim QSpersonas(0, 24), QSCpersonas(0, 24) As Long
Dim Qequipos(0, 24) As Long
Dim Qaparatos(0, 24), QLaparatos(0, 24), QSaparatos(0, 24) As Long
Dim CargaTotalUE(12, 24), SensibleUE(12, 24), LatenteUE(12, 24) As Long
Dim TotalUMA(12, 24, 100), LatenteUMA(12, 24, 100), SensibleUMA(12, 24, 100) As Long
Dim TotalSensible(11, 23), TotalLatente(11, 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.Path & "/Nombre de proyecto?"
'Clculo de Cargas de personas
Dim datos As techo
Dim lhg, shg, ini, dur, cantp, fin As Double
Dim k, l, m, n, nOfi As Integer
Dim Tabs As Integer
i=0
k=0
u=0
Open App.Path & "/Datos/UMAs.text" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i=i+1
If UCase(Left(datos.TVar, 1)) = "U" Then
Uma(u) = datos.nombuma
u=u+1
End If
Loop
n_uma = u
Close #1
94
n_ofi = k
Close #1
'DETERMINACIN 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, A) = 0
QLpersonas(0, A) = 0
QSCpersonas(0, A) = 0
QSRpersonas(0, A) = 0
Qequipos(0, A) = 0
QRluces(0, A) = 0
QCluces(0, A) = 0
Qluces(0, A) = 0
QLaparatos(0, A) = 0
QSaparatos(0, A) = 0
Qaparatos(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.Path & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i=i+1
If Ofi((nOfi - 1)) = datos.Ofcorr Then 'Revisar que pasa aqui con el id del dato
If UCase(Left(datos.tcarga, 13)) = "PERSONAS " Then
lhg = Trim(datos.lhg)
'Personas
shg = Trim(datos.shg)
'Personas
ini = Trim(datos.Inicio)
'Personas
dur = Trim(datos.duracion)
'Personas
cantp = Trim(datos.cantpersonas)
'Personas
ini = ini * 1
'Personas
dur = dur * 1 - 1
'Personas
fin = ini + dur
For j = 1 To 24
If j < ini Then
QSpersonas(0, j) = 0 + QSpersonas(0, j)
QLpersonas(0, j) = 0 + QLpersonas(0, j)
QSCpersonas(0, j) = 0 + QSCpersonas(0, j)
QSRpersonas(0, j) = 0 + QSRpersonas(0, j)
n=n+1
End If
If j >= ini And j <= fin Then
QSpersonas(0, j) = shg * cantp + QSpersonas(0, j)
QLpersonas(0, j) = lhg * cantp + QLpersonas(0, j)
QSCpersonas(0, j) = shg * cantp * 0.67 + QSCpersonas(0, j)
'QSRpersonas(0, j) = shg * cantp * 0.33 + QSRpersonas(0, j)
m=m+1
End If
If j >= ini + 4 And j <= fin Then
QSRpersonas(0, j) = shg * cantp * 0.33 + QSRpersonas(0, j)
End If
If j > fin Then
QSpersonas(0, j) = 0 + QSpersonas(0, j)
QLpersonas(0, j) = 0 + QLpersonas(0, j)
QSCpersonas(0, j) = 0 + QSCpersonas(0, j)
QSRpersonas(0, j) = 0 + QSRpersonas(0, j)
l=l+1
End If
If j = ini Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.2 * 0.33 * shg * cantp
If j = ini + 1 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.4 * 0.33 * shg * cantp
If j = ini + 2 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.6 * 0.33 * shg * cantp
If j = ini + 3 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.8 * 0.33 * shg * cantp
95
96
n=n+1
End If
totalrluc = totalrluc + QRluces(0, j)
totalcluc = totalcluc + QCluces(0, j)
Qluces(0, j) = QRluces(0, j) + QCluces(0, j)
Next j
totalluces = totalrluc + totalcluc
End If
If UCase(Left(datos.tcarga, 13)) = "APARATOS " Then
sensible = Trim(datos.shg)
'Aparatos
Latente = Trim(datos.lhg)
'Aparatos
Ig = Trim(datos.Igaparatos)
'Aparatos
Campana = Trim(datos.Campana)
'Aparatos
ini = Trim(datos.Inicio)
'Aparatos
dur = Trim(datos.duracion)
'Aparatos
ini = ini * 1
dur = dur * 1 - 1
fin = ini + dur
For j = 1 To 24
If j < ini Then
QLaparatos(0, j) = 0 + QLaparatos(0, j)
QSaparatos(0, j) = 0 + QSaparatos(0, j)
q=q+1
End If
If j >= ini And j <= fin Then
QSaparatos(0, j) = sensible * 1 + QSaparatos(0, j)
If Campana = "SIN" Then
QLaparatos(0, j) = QLaparatos(0, j) + Latente * 1
m=m+1
Else
QLaparatos(0, j) = 0 + QLaparatos(0, j)
l=l+1
End If
End If
If j > fin Then
QLaparatos(0, j) = 0 + QLaparatos(0, j)
QSaparatos(0, j) = 0 + QSaparatos(0, j)
n=n+1
End If
totallapara = totallapara + QLaparatos(0, j)
totalsapara = totalsapara + QSaparatos(0, j)
Qaparatos(0, j) = QLaparatos(0, j) + QSaparatos(0, j)
Next j
totalapara = totallapara + totalsapara
End If
If UCase(Left(datos.tcarga, 13)) = "PARTICION
" Or UCase(Left(datos.tcarga, 13)) = "TECHO INTERNO" Or
UCase(Left(datos.tcarga, 13)) = "PISO
" Then
Nombre = Trim(datos.tcarga)
'Particion,Piso,Techo Interno
Ucoef = Trim(datos.Ucoef)
'Particion,Piso,Techo Interno
area = Trim(datos.area)
'Particion,Piso,Techo Interno
tady = Trim(datos.TAdyacente)
'Particion,Piso,Techo Interno
tofi = Trim(datos.Tso)
'Particion,Piso,Techo Interno
iguales = Trim(datos.IgPart)
If Nombre = "PARTICION" Then
particion = iguales * area * Ucoef * (tady * 1 - tofi * 1)
Tparticion = particion * 24
q=q+1
End If
If Nombre = "PISO" Then
Piso = iguales * area * Ucoef * (tady * 1 - tofi * 1)
Tpiso = Piso * 24
End If
If Nombre = "TECHO INTERNO" Then
TechoInt = iguales * area * Ucoef * (tady * 1 - tofi * 1)
TTechoInt = TechoInt * 24
n=n+1
End If
End If
End If
Loop
97
Close #1
'CLCULO DE LAS CARGAS DE PERSONAS^^
'Intento por hacer el archivo de resultados>>
Dim n_carg As Long
Dim nombrearchivo As String
nombrearchivo = App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst"
If ExisteArch(nombrearchivo) = True Then Kill App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst"
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Get #1, n_carg, result
Close #1
result.Comp = "T"
result.Nombre = "Sensible Personas"
result.t1 = QSpersonas(0, 1)
result.t2 = QSpersonas(0, 2)
result.t3 = QSpersonas(0, 3)
result.t4 = QSpersonas(0, 4)
result.t5 = QSpersonas(0, 5)
result.t6 = QSpersonas(0, 6)
result.t7 = QSpersonas(0, 7)
result.t8 = QSpersonas(0, 8)
result.t9 = QSpersonas(0, 9)
result.t10 = QSpersonas(0, 10)
result.t11 = QSpersonas(0, 11)
result.t12 = QSpersonas(0, 12)
result.t13 = QSpersonas(0, 13)
result.t14 = QSpersonas(0, 14)
result.t15 = QSpersonas(0, 15)
result.t16 = QSpersonas(0, 16)
result.t17 = QSpersonas(0, 17)
result.t18 = QSpersonas(0, 18)
result.t19 = QSpersonas(0, 19)
result.t20 = QSpersonas(0, 20)
result.t21 = QSpersonas(0, 21)
result.t22 = QSpersonas(0, 22)
result.t23 = QSpersonas(0, 23)
result.t24 = QSpersonas(0, 24)
result.tTotal = totalS
result.salto = vbCrLf
result.id = 0
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "L"
result.Nombre = "Latente Personas"
result.t1 = QLpersonas(0, 1)
result.t2 = QLpersonas(0, 2)
result.t3 = QLpersonas(0, 3)
result.t4 = QLpersonas(0, 4)
result.t5 = QLpersonas(0, 5)
result.t6 = QLpersonas(0, 6)
result.t7 = QLpersonas(0, 7)
result.t8 = QLpersonas(0, 8)
result.t9 = QLpersonas(0, 9)
result.t10 = QLpersonas(0, 10)
result.t11 = QLpersonas(0, 11)
result.t12 = QLpersonas(0, 12)
result.t13 = QLpersonas(0, 13)
result.t14 = QLpersonas(0, 14)
result.t15 = QLpersonas(0, 15)
result.t16 = QLpersonas(0, 16)
result.t17 = QLpersonas(0, 17)
result.t18 = QLpersonas(0, 18)
result.t19 = QLpersonas(0, 19)
result.t20 = QLpersonas(0, 20)
result.t21 = QLpersonas(0, 21)
result.t22 = QLpersonas(0, 22)
result.t23 = QLpersonas(0, 23)
98
99
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Equipos de Potencia"
result.t1 = Qequipos(0, 1)
result.t2 = Qequipos(0, 2)
result.t3 = Qequipos(0, 3)
result.t4 = Qequipos(0, 4)
result.t5 = Qequipos(0, 5)
result.t6 = Qequipos(0, 6)
result.t7 = Qequipos(0, 7)
result.t8 = Qequipos(0, 8)
result.t9 = Qequipos(0, 9)
result.t10 = Qequipos(0, 10)
result.t11 = Qequipos(0, 11)
result.t12 = Qequipos(0, 12)
result.t13 = Qequipos(0, 13)
result.t14 = Qequipos(0, 14)
result.t15 = Qequipos(0, 15)
result.t16 = Qequipos(0, 16)
result.t17 = Qequipos(0, 17)
result.t18 = Qequipos(0, 18)
result.t19 = Qequipos(0, 19)
result.t20 = Qequipos(0, 20)
result.t21 = Qequipos(0, 21)
result.t22 = Qequipos(0, 22)
result.t23 = Qequipos(0, 23)
result.t24 = Qequipos(0, 24)
result.tTotal = totalEq
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Luces Convectivas"
result.t1 = QCluces(0, 1)
result.t2 = QCluces(0, 2)
result.t3 = QCluces(0, 3)
result.t4 = QCluces(0, 4)
result.t5 = QCluces(0, 5)
result.t6 = QCluces(0, 6)
result.t7 = QCluces(0, 7)
result.t8 = QCluces(0, 8)
result.t9 = QCluces(0, 9)
result.t10 = QCluces(0, 10)
result.t11 = QCluces(0, 11)
result.t12 = QCluces(0, 12)
result.t13 = QCluces(0, 13)
result.t14 = QCluces(0, 14)
result.t15 = QCluces(0, 15)
result.t16 = QCluces(0, 16)
result.t17 = QCluces(0, 17)
result.t18 = QCluces(0, 18)
result.t19 = QCluces(0, 19)
result.t20 = QCluces(0, 20)
result.t21 = QCluces(0, 21)
result.t22 = QCluces(0, 22)
result.t23 = QCluces(0, 23)
result.t24 = QCluces(0, 24)
result.tTotal = totalcluc
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
100
result.Comp = "S"
result.Nombre = "Luces-Radiacin"
result.t1 = QRluces(0, 1)
result.t2 = QRluces(0, 2)
result.t3 = QRluces(0, 3)
result.t4 = QRluces(0, 4)
result.t5 = QRluces(0, 5)
result.t6 = QRluces(0, 6)
result.t7 = QRluces(0, 7)
result.t8 = QRluces(0, 8)
result.t9 = QRluces(0, 9)
result.t10 = QRluces(0, 10)
result.t11 = QRluces(0, 11)
result.t12 = QRluces(0, 12)
result.t13 = QRluces(0, 13)
result.t14 = QRluces(0, 14)
result.t15 = QRluces(0, 15)
result.t16 = QRluces(0, 16)
result.t17 = QRluces(0, 17)
result.t18 = QRluces(0, 18)
result.t19 = QRluces(0, 19)
result.t20 = QRluces(0, 20)
result.t21 = QRluces(0, 21)
result.t22 = QRluces(0, 22)
result.t23 = QRluces(0, 23)
result.t24 = QRluces(0, 24)
result.tTotal = totalrluc
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "T"
result.Nombre = "Luces"
result.t1 = Qluces(0, 1)
result.t2 = Qluces(0, 2)
result.t3 = Qluces(0, 3)
result.t4 = Qluces(0, 4)
result.t5 = Qluces(0, 5)
result.t6 = Qluces(0, 6)
result.t7 = Qluces(0, 7)
result.t8 = Qluces(0, 8)
result.t9 = Qluces(0, 9)
result.t10 = Qluces(0, 10)
result.t11 = Qluces(0, 11)
result.t12 = Qluces(0, 12)
result.t13 = Qluces(0, 13)
result.t14 = Qluces(0, 14)
result.t15 = Qluces(0, 15)
result.t16 = Qluces(0, 16)
result.t17 = Qluces(0, 17)
result.t18 = Qluces(0, 18)
result.t19 = Qluces(0, 19)
result.t20 = Qluces(0, 20)
result.t21 = Qluces(0, 21)
result.t22 = Qluces(0, 22)
result.t23 = Qluces(0, 23)
result.t24 = Qluces(0, 24)
result.tTotal = totalluces
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "L"
result.Nombre = "Aparatos-Latente"
result.t1 = QLaparatos(0, 1)
result.t2 = QLaparatos(0, 2)
101
result.t3 = QLaparatos(0, 3)
result.t4 = QLaparatos(0, 4)
result.t5 = QLaparatos(0, 5)
result.t6 = QLaparatos(0, 6)
result.t7 = QLaparatos(0, 7)
result.t8 = QLaparatos(0, 8)
result.t9 = QLaparatos(0, 9)
result.t10 = QLaparatos(0, 10)
result.t11 = QLaparatos(0, 11)
result.t12 = QLaparatos(0, 12)
result.t13 = QLaparatos(0, 13)
result.t14 = QLaparatos(0, 14)
result.t15 = QLaparatos(0, 15)
result.t16 = QLaparatos(0, 16)
result.t17 = QLaparatos(0, 17)
result.t18 = QLaparatos(0, 18)
result.t19 = QLaparatos(0, 19)
result.t20 = QLaparatos(0, 20)
result.t21 = QLaparatos(0, 21)
result.t22 = QLaparatos(0, 22)
result.t23 = QLaparatos(0, 23)
result.t24 = QLaparatos(0, 24)
result.tTotal = totallapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Aparatos-Sensible"
result.t1 = QSaparatos(0, 1)
result.t2 = QSaparatos(0, 2)
result.t3 = QSaparatos(0, 3)
result.t4 = QSaparatos(0, 4)
result.t5 = QSaparatos(0, 5)
result.t6 = QSaparatos(0, 6)
result.t7 = QSaparatos(0, 7)
result.t8 = QSaparatos(0, 8)
result.t9 = QSaparatos(0, 9)
result.t10 = QSaparatos(0, 10)
result.t11 = QSaparatos(0, 11)
result.t12 = QSaparatos(0, 12)
result.t13 = QSaparatos(0, 13)
result.t14 = QSaparatos(0, 14)
result.t15 = QSaparatos(0, 15)
result.t16 = QSaparatos(0, 16)
result.t17 = QSaparatos(0, 17)
result.t18 = QSaparatos(0, 18)
result.t19 = QSaparatos(0, 19)
result.t20 = QSaparatos(0, 20)
result.t21 = QSaparatos(0, 21)
result.t22 = QSaparatos(0, 22)
result.t23 = QSaparatos(0, 23)
result.t24 = QSaparatos(0, 24)
result.tTotal = totalsapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "T"
result.Nombre = "Aparatos-Total"
result.t1 = Qaparatos(0, 1)
result.t2 = Qaparatos(0, 2)
result.t3 = Qaparatos(0, 3)
result.t4 = Qaparatos(0, 4)
result.t5 = Qaparatos(0, 5)
result.t6 = Qaparatos(0, 6)
102
result.t7 = Qaparatos(0, 7)
result.t8 = Qaparatos(0, 8)
result.t9 = Qaparatos(0, 9)
result.t10 = Qaparatos(0, 10)
result.t11 = Qaparatos(0, 11)
result.t12 = Qaparatos(0, 12)
result.t13 = Qaparatos(0, 13)
result.t14 = Qaparatos(0, 14)
result.t15 = Qaparatos(0, 15)
result.t16 = Qaparatos(0, 16)
result.t17 = Qaparatos(0, 17)
result.t18 = Qaparatos(0, 18)
result.t19 = Qaparatos(0, 19)
result.t20 = Qaparatos(0, 20)
result.t21 = Qaparatos(0, 21)
result.t22 = Qaparatos(0, 22)
result.t23 = Qaparatos(0, 23)
result.t24 = Qaparatos(0, 24)
result.tTotal = totalapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-Particin"
result.t1 = particion
result.t2 = particion
result.t3 = particion
result.t4 = particion
result.t5 = particion
result.t6 = particion
result.t7 = particion
result.t8 = particion
result.t9 = particion
result.t10 = particion
result.t11 = particion
result.t12 = particion
result.t13 = particion
result.t14 = particion
result.t15 = particion
result.t16 = particion
result.t17 = particion
result.t18 = particion
result.t19 = particion
result.t20 = particion
result.t21 = particion
result.t22 = particion
result.t23 = particion
result.t24 = particion
result.tTotal = Tparticion
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-Piso"
result.t1 = Piso
result.t2 = Piso
result.t3 = Piso
result.t4 = Piso
result.t5 = Piso
result.t6 = Piso
result.t7 = Piso
result.t8 = Piso
result.t9 = Piso
result.t10 = Piso
103
result.t11 = Piso
result.t12 = Piso
result.t13 = Piso
result.t14 = Piso
result.t15 = Piso
result.t16 = Piso
result.t17 = Piso
result.t18 = Piso
result.t19 = Piso
result.t20 = Piso
result.t21 = Piso
result.t22 = Piso
result.t23 = Piso
result.t24 = Piso
result.tTotal = Tpiso
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-TechoInterno"
result.t1 = TechoInt
result.t2 = TechoInt
result.t3 = TechoInt
result.t4 = TechoInt
result.t5 = TechoInt
result.t6 = TechoInt
result.t7 = TechoInt
result.t8 = TechoInt
result.t9 = TechoInt
result.t10 = TechoInt
result.t11 = TechoInt
result.t12 = TechoInt
result.t13 = TechoInt
result.t14 = TechoInt
result.t15 = TechoInt
result.t16 = TechoInt
result.t17 = TechoInt
result.t18 = TechoInt
result.t19 = TechoInt
result.t20 = TechoInt
result.t21 = TechoInt
result.t22 = TechoInt
result.t23 = TechoInt
result.t24 = TechoInt
result.tTotal = TTechoInt
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
Next nOfi
'FIN DE "ARCHIVO DE RESULTADOS"^^
'TabStrip2.Tabs.Clear
'For tabs2 = 1 To numa
' TabStrip2.Tabs.Add(tabs2, , , 0) = Trim(Uma(tabs2 - 1))
TabStrip1.Tabs.Clear
For Tabs = 1 To n_ofi
TabStrip1.Tabs.Add(Tabs, , , 0) = "Ofic" & Trim(Ofi((Tabs - 1)))
Next Tabs
'Next tabs2
ListView1.ListItems.Clear
Dim itmX As ListItem
Dim Total As Double
ListView1.ColumnHeaders.Clear
104
105
106
itmX.SubItems(18) = Trim(result.t16)
itmX.SubItems(19) = Trim(result.t17)
itmX.SubItems(20) = Trim(result.t18)
itmX.SubItems(21) = Trim(result.t19)
itmX.SubItems(22) = Trim(result.t20)
itmX.SubItems(23) = Trim(result.t21)
itmX.SubItems(24) = Trim(result.t22)
itmX.SubItems(25) = Trim(result.t23)
itmX.SubItems(26) = Trim(result.t24)
itmX.SubItems(27) = Trim(result.tTotal)
Set itmX = Nothing
End If
Loop
Close #1
k=0
Open App.Path & "/Resultados/" + Trim(Prueba) + ".rst" For Random Access Read As #1 Len = Len(result)
Do While Not EOF(1)
Get #1, , result
k=k+1
If UCase(Left(result.Comp, 1)) = "L" Then
Set itmx2 = ListView2.ListItems.Add(1, , result.id)
itmx2.SubItems(1) = k - 1
itmx2.SubItems(2) = Trim(result.Nombre)
itmx2.SubItems(3) = Trim(result.t1)
itmx2.SubItems(4) = Trim(result.t2)
itmx2.SubItems(5) = Trim(result.t3)
itmx2.SubItems(6) = Trim(result.t4)
itmx2.SubItems(7) = Trim(result.t5)
itmx2.SubItems(8) = Trim(result.t6)
itmx2.SubItems(9) = Trim(result.t7)
itmx2.SubItems(10) = Trim(result.t8)
itmx2.SubItems(11) = Trim(result.t9)
itmx2.SubItems(12) = Trim(result.t10)
itmx2.SubItems(13) = Trim(result.t11)
itmx2.SubItems(14) = Trim(result.t12)
itmx2.SubItems(15) = Trim(result.t13)
itmx2.SubItems(16) = Trim(result.t14)
itmx2.SubItems(17) = Trim(result.t15)
itmx2.SubItems(18) = Trim(result.t16)
itmx2.SubItems(19) = Trim(result.t17)
itmx2.SubItems(20) = Trim(result.t18)
itmx2.SubItems(21) = Trim(result.t19)
itmx2.SubItems(22) = Trim(result.t20)
itmx2.SubItems(23) = Trim(result.t21)
itmx2.SubItems(24) = Trim(result.t22)
itmx2.SubItems(25) = Trim(result.t23)
itmx2.SubItems(26) = Trim(result.t24)
itmx2.SubItems(27) = Trim(result.tTotal)
Set itmx2 = Nothing
End If
Loop
Close #1
l=0
Open App.Path & "/Resultados/" + Trim(Prueba) + ".rst" For Random Access Read As #1 Len = Len(result)
Do While Not EOF(1)
Get #1, , result
l=l+1
If UCase(Left(result.Comp, 1)) = "T" Then
Set itmX3 = ListView3.ListItems.Add(1, , result.id)
itmX3.SubItems(1) = l - 1
itmX3.SubItems(2) = Trim(result.Nombre)
itmX3.SubItems(3) = Trim(result.t1)
itmX3.SubItems(4) = Trim(result.t2)
itmX3.SubItems(5) = Trim(result.t3)
itmX3.SubItems(6) = Trim(result.t4)
itmX3.SubItems(7) = Trim(result.t5)
itmX3.SubItems(8) = Trim(result.t6)
itmX3.SubItems(9) = Trim(result.t7)
itmX3.SubItems(10) = Trim(result.t8)
itmX3.SubItems(11) = Trim(result.t9)
107
itmX3.SubItems(12) = Trim(result.t10)
itmX3.SubItems(13) = Trim(result.t11)
itmX3.SubItems(14) = Trim(result.t12)
itmX3.SubItems(15) = Trim(result.t13)
itmX3.SubItems(16) = Trim(result.t14)
itmX3.SubItems(17) = Trim(result.t15)
itmX3.SubItems(18) = Trim(result.t16)
itmX3.SubItems(19) = Trim(result.t17)
itmX3.SubItems(20) = Trim(result.t18)
itmX3.SubItems(21) = Trim(result.t19)
itmX3.SubItems(22) = Trim(result.t20)
itmX3.SubItems(23) = Trim(result.t21)
itmX3.SubItems(24) = Trim(result.t22)
itmX3.SubItems(25) = Trim(result.t23)
itmX3.SubItems(26) = Trim(result.t24)
itmX3.SubItems(27) = 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
Directorio Parentesco
Tiempo de ejecucin
Se denomina de este modo al momento en que un programa est en uso, es decir que
se realizan las operaciones que fueron diseadas por el programador y quien est operando
en ese instante el software, ser llamado en ese momento el usuario.
Tiempo de diseo
109
Usuario
Es todo aquel que haga uso del programa con cualquier fin, ya sea de evaluacin, de
trabajo o por conocimiento del mismo. El usuario es para quien se realiza el programa y,
dependiendo de la complejidad del mismo, tendr un mayor o menor alcance dentro de los
consumidores.
Archivo de datos
Lista de datos
Es un tipo de datos que posee una o ms variables. Se llama lista por la capacidad
de almacenar ms de un dato dentro de si. Se asemeja a un vector, con la diferencia que sus
elementos no poseen identificacin de posicin, por lo tanto no pueden ser buscados por
coordenadas sino por diversos criterios de seleccin.
Vectores
110
Tipos
de
datos
multivariables
multidimensionales,
que
permiten
el
Libreras
Base de datos
111
112
113
Apndice E.
E.1. Conceptos de Clculo de Ganancia de Calor
E.1.1. Ganancia de Calor a travs de reas Ventanales
La principal variable climtica que influye en la carga de refrigeracin de una
edificacin es la radiacin solar. El efecto de la radiacin solar es ms pronunciado y su
impacto se hace inmediato en superficies no opacas expuestas.
114
q / A = I t + ho (To Ts ) R
(19)
dnde:
It
ho
To
Ts
= temperatura de superficie, C
q / A = ho (Te Ts )
(20)
Te = To + I t / ho R / ho
(21)
115
Superficies Horizontales.
Superficies Verticales.
Debido a que las superficies verticales perciben la reverberacin del suelo y las
dems edificaciones a su alrededor, as como tambin radiacin solar directa, se hace difcil
determinar los valores de R . Cuando la radiacin solar es intensa, las superficies de los
objetos en la tierra tienen una temperatura superior a la temperatura del aire externo; an
as, la radiacin compensa las bajas emisiones extendidas del cielo. Sin embargo, es una
prctica comn asumir R =0 para superficies verticales.
Las temperaturas sol-aire tabuladas (Tabla 4.1) han sido calculados en base a
Colores de Superficie.
116
El ciclo de la temperatura del aire utilizado para el clculo de las temperaturas solaire est dado en la columna 2 (Tabla E.1). Las temperaturas sol-aire pueden ser ajustadas a
cualquier otro ciclo de temperaturas simplemente aadiendo 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.1).
NE
SE
SO
NO
HOR
Temp.
Aire
Hora To,C
NE
SE
SO
NO
HOR
25,4
25,4 25,4
25,4
25,4
25,4
25,4
25,4
25,4
21,5
25,4
25,4
25,4
25,4
25,4
25,4
25,4
25,4
25,4
21,5
24,9
24,9 24,9
24,9
24,9
24,9
24,9
24,9
24,9
21,0
24,9
24,9
24,9
24,9
24,9
24,9
24,9
24,9
24,9
21,0
24,4
24,4 24,4
24,4
24,4
24,4
24,4
24,4
24,4
20,5
24,4
24,4
24,4
24,4
24,4
24,4
24,4
24,4
24,4
20,5
24,1
24,1 24,1
24,1
24,1
24,1
24,1
24,1
24,1
20,2
24,1
24,1
24,1
24,1
24,1
24,1
24,1
24,1
24,1
20,2
24,0
24,1 24,2
24,2
24,1
24,0
24,0
24,0
24,0
20,1
24,0
24,2
24,4
24,3
24,1
24,0
24,0
24,0
24,0
20,2
24,2
27,2 34,5
35,5
29,8
25,1
25,1
25,1
25,1
22,9
24,2
30,2
44,7
46,7
35,4
26,0
26,0
26,0
26,0
25,5
24,8
27,3 38,1
41,5
35,2
26,5
26,4
26,4
26,4
28,1
24,8
29,7
51,5
58,2
45,6
28,2
28,0
28,0
28,0
35,4
25,8
28,1 38,0
43,5
38,9
28,2
28,0
28,0
28,0
33,8
25,8
30,5
50,1
61,2
52,1
30,7
30,1
30,1
30,1
45,8
27,2
29,9 35,9
43,1
41,2
31,5
29,8
29,8
29,8
39,2
27,2
32,5
44,5
58,9
55,1
35,8
32,3
32,3
32,3
55,1
10
28,8
31,7 33,4
40,8
41,8
35,4
31,8
31,7
31,7
43,9
10
28,8
34,5
38,0
52,8
54,9
42,0
34,7
34,5
34,5
62,8
11
30,7
33,7 34,0
37,4
41,1
39,0
34,2
33,7
33,7
47,7
11
30,7
36,8
37,2
44,0
51,5
47,4
37,7
36,8
36,8
68,5
12
32,5
35,6 35,6
35,9
39,1
41,4
39,1
35,9
35,6
50,1
12
32,5
38,7
38,7
39,3
45,7
50,4
45,7
39,3
38,7
71,6
13
33,8
36,8 36,8
36,8
37,3
42,1
44,2
40,5
37,1
50,8
13
33,8
39,9
39,9
39,9
40,8
50,5
54,6
47,1
40,3
71,6
14
34,7
37,6 37,6
37,6
37,7
41,3
47,7
46,7
39,3
49,8
14
34,7
40,4
40,4
40,4
40,6
47,9
60,8
58,7
43,9
68,7
15
35,0
37,7 37,6
37,6
37,6
39,3
49,0
50,9
43,7
47,0
15
35,0
40,3
40,1
40,1
40,1
43,6
62,9
66,7
52,3
62,9
16
34,7
37,0 36,9
36,9
36,9
37,1
47,8
52,4
46,9
42,7
16
34,7
39,4
39,0
39,0
39,0
39,6
61,0
70,1
59,0
54,7
17
33,9
36,4 35,5
35,5
35,5
35,6
44,3
50,6
47,2
37,2
17
33,9
38,8
37,1
37,1
37,1
37,3
54,7
67,3
60,6
44,5
18
32,7
35,7 33,6
33,6
33,6
33,6
38,3
44,0
43,0
31,4
18
32,7
38,7
34,5
34,5
34,5
34,5
43,9
55,2
53,2
34,0
19
31,3
31,4 31,3
31,3
31,3
31,3
31,4
31,5
31,5
27,4
19
31,3
31,5
31,3
31,3
31,3
31,3
31,4
31,6
31,7
27,5
20
29,8
29,8 29,8
29,8
29,8
29,8
29,8
29,8
29,8
25,9
20
29,8
29,8
29,8
29,8
29,8
29,8
29,8
29,8
29,8
25,9
21
28,6
28,6 28,6
28,6
28,6
28,6
28,6
28,6
28,6
24,7
21
28,6
28,6
28,6
28,6
28,6
28,6
28,6
28,6
28,6
24,7
22
27,5
27,5 27,5
27,5
27,5
27,5
27,5
27,5
27,5
23,6
22
27,5
27,5
27,5
27,5
27,5
27,5
27,5
27,5
27,5
23,6
23
26,6
26,6 26,6
26,6
26,6
26,6
26,6
26,6
26,6
22,7
23
26,6
26,6
26,6
26,6
26,6
26,6
26,6
26,6
26,6
22,7
24
26,0
26,0 26,0
26,0
26,0
26,0
26,0
26,0
26,0
22,1
24
26,0
26,0
26,0
26,0
26,0
26,0
26,0
26,0
26,0
22,1
Prom. 29,0
30,0 32,0
33,0
32,0
31,0
32,0
33,0
32,0
32,0
35,0
37,0
37,0
34,0
37,0
37,0
35,0
40,0
117
El promedio diario de temperatura sol-aire Tea puede ser calculado para cualquier
situacin 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
orientacin requeridos, en W/m2.
En cualquier instante el balance de calor entre una superficie de ventana exterior y
su entorno trmico ambiental, tal y como se muestra en la figura (Figura 4.2) es
(23)
118
Figura E.1. Balance de Calor en un instante para material cristalino expuesto al sol.
Calor total
Radiacin
admitido a
transmitida a
(24)
Calor total
admitido a travs
del vidrio
Radiacin
=
transmitida a
travs del vidrio
Flujo absorbido
+
de radiacin solar
que incide.
119
q A = Et + N i (Et ) + U (to ti )
(25)
En los casos de doble cristal, la transmitancia a travs de ambos vidrios puede ser
calculada por
( o i )
(26)
(1 2 3 )
Ganancia de
Calor Solar
(27)
Ganancia de calor
por conduccin
q A = CGCS Et + U (t o t i )
(28)
donde
qA
(29)
120
Sombreado Externo.
Los sombreados no uniformes causados por los voladizos de los techos, extensiones
laterales o proyecciones de los edificios, hacen requerir de un clculo separado de las partes
sombreadas y las no sombreadas de las ventanas a cada hora. Las reas, sombreadas y no
sombreadas, dependen de la localizacin de la lnea de sombra en el plano del vidrio. Se
han elaborado mtodos aproximados para hacer las consideraciones del movimiento de la
lnea de sombra en funcin de la hora, as como mtodos 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, aplicando un factor de carga negativo que corrige la imprecisin.
Consideraciones de Temperatura.
(30)
donde
q
= calor transferido, W
121
Tb
Ti
Los valores de U
transferencia de calor por conduccin. La temperatura tb puede alejarse mucho del rango
de la temperatura del espacio acondicionado. La temperatura en una cocina o sala de
calderas, por ejemplo, puede estar como mucho entre 8 y 28K sobre la temperatura externa
del aire. La temperatura actual de los espacios adyacentes debera ser medida siempre que
sea posible. Donde no se conoce nada, excepto que el espacio adyacente es de construccin
convencional, no contiene fuentes de calor y no recibe directamente una ganancia
significativa de calor del sol, Tb - Ti , puede ser considerada la diferencia entre la
temperatura externa del aire y 2,8K menos que la temperatura de bulbo seco del espacio
acondicionado. En algunos casos, la temperatura del aire en el espacio adyacente
corresponde a la temperatura externa del aire o superior.
122
Tipo de actividad
Ajustado,
H/M
Calor
Sensible,
W
Calor
Latente,
W
Bajo V
Sentado en un teatro
Teatro, matine
115
95
65
30
Teatro, noche
115
105
70
35
130
115
70
45
140
130
75
55
160
130
75
55
Farmacia, Banco
160
145
75
70
Trabajo sedentario
Restaurante
145
160
80
80
Fbrica
235
220
80
140
Baile moderado
Saln de danza
265
250
90
160
Fabrica
295
295
110
185
Cancha de Bowling
440
425
170
255
Trabajo pesado
Fabrica
440
425
170
255
Fabrica
470
470
185
285
Atletismo, Ejercicios
Gimnasio
585
525
210
Alta V
60
27
58
38
49
35
54
19
315
Iluminacin
123
quedando an presente una fraccin de esta energa irradindose incluso despus de apagar
las luces.
Siempre existe un retraso entre el tiempo en que se encienden las luces y el
momento en que la energa irradiada por la luz equipara a la energa que se acumula
instantneamente. Este retraso debe ser considerado cuando se realizan los clculos de
carga de refrigeracin, ya que desde el momento en que es percibida por el espacio, que es
an ms baja que la ganancia instantnea generada e incluso en el momento de pico de
carga, afecta significativamente la carga del espacio.
La fuente principal de calor de las luces proviene de los elementos que emiten la luz
o bombillo, sin embargo, una fuente significante de calor puede ser generada en diversos
accesorios en los arreglos de luces o lmparas. Generalmente la ganancia de calor de la
iluminacin elctrica se calcula de la forma:
qel = WFul Fsa
(31)
donde
qel
= ganancia de calor, W
Ful
= factor de uso
Fsa
= factor de balasto
124
El factor de balasto se aplica en el caso que las luces sean fluorescentes y arreglos
de luces, que estn ventilados o instalados de un modo en el cual no todo el calor que
producen es percibido en el rea acondicionada. En las instalaciones de luces fluorescentes,
el factor de las prdidas en el balasto se considera como un factor mximo de 2,19 para
lmparas sencillas de 32W. Para lmparas de encendido rpido de 40W el factor varia entre
1,18 y 1,30 de acuerdo a si son dos o una las lmparas que estn en uso, pero para la
mayora de las aplicaciones se recomienda el uso de un factor de 1,20. Para algunas
instalaciones industriales, con lmparas de sodio, se pueden considerar valores que oscilan
entre 1,04 y 1,37, dependiendo del fabricante, por lo cual deben ser evaluados
individualmente.
En los casos de las lmparas ventiladas, se debe determinar la fraccin que se espera
que sea percibida directamente por el rea acondicionada directamente.
125
Balance Energtico.
En los locales donde sea utilizado el espacio sobre el cielo raso como plnum para
el aire de retorno, ocurre un intercambio de energa 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
refrigeracin del aire de retorno (representada por la temperatura a la que alcanza el aire de
retorno mientras atraviesa el espacio encerrado), b) se transfiere parcialmente de vuelta al
espacio refrigerado a travs de las lminas del cielo raso y c) puede perderse parcialmente a
travs de las superficies superiores, que suelen ser suelos de niveles superiores. En los
edificios con placas intermedias, los espacios refrigerados frecuentemente tienen ganancia
de calor a travs del suelo, de forma similar a si tuvieran un plnum inferior, considerando
las perdidas mencionadas. El componente de calor por radiacin que se desprende de las
superficies de este plnum es por lo general despreciable, por lo tanto para efectos de
clculo se consideran todos los efectos de transferencia de calor como convectivos.
La figura (Figura E.2) muestra un diagrama esquemtico de cmo es un plnum de
aire de retorno. Las ecuaciones de la (32) a la (36), utilizando signos de convencin de
acuerdo a los utilizados en la representacin del Balance de Calor de un Retorno por
Plnum (Figura E.2), representan el balance de energa de diseo de un plnum de aire de
retorno para el interior de un edificio de placas intermedias.
126
q1 = U c Ac (T p Tr )
(32)
q 2 = U f A f (T p T fa )
(33)
q3 = 1,23Q(T p Tr )
(34)
qlp q 2 q1 q3 = 0
(35)
Q=
q r + q1
1,23(Tr Ts )
(36)
dnde
q1
q2
q3
qlp
qlr
qf
qw
qr
Tp
= temperatura en el plnum, C
Tr
T fa
Ts
127
El aire externo debe ser introducido por ventilacin a los espacios acondicionados.
Aquellos lugares donde se quiere lograr un mximo de economa en espacio y carga de
refrigeracin, como en los submarinos o en otras reas restringidas, una cantidad de 0,5 L/s
de aire del exterior por persona es suficiente, siempre y cuando se garantice que el aire de
recirculacin est descontaminado de un modo apropiado.
Segn la norma estndar 62 de ASHRAE se recomienda una frecuencia de
ventilacin mnima para distintas aplicaciones comunes. Como uso general, as como en
oficinas, se recomienda un flujo de 10 L/s por persona. De igual forma, se puede consultar
la tabla completa de los flujos recomendados en la mencionada norma para los distintos
tipos de espacios acondicionados. (Ver Apndice A1)
Los cambios de aire, que viene siendo la cantidad de veces que en promedio se ha
llenado la habitacin con aire nuevo, se recomienda segn normas que sean entre 6 a 8 por
hora. (Ver Apndice A2)
El aire de ventilacin, por lo general se introduce al sistema de modo directo del
ambiente, necesitando preenfriar el aire por intercambiadores. Esto introduce un factor de
ganancia de calor adicional, que a pesar de ser pequeo es influyente.
Para reducir las ganancias de calor externas del aire de ventilacin, se han
desarrollado aplicaciones de recirculacin y filtrado del aire interno, combinndolo con aire
externo. El aire de recirculacin debe ser tratado para controlar los olores.
128
Infiltracin
129
130
E.2. El Mtodo
E.2.1. Procedimiento de Clculo 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 anlisis de preclculos
similar a los usados en el mtodo de la funcin de transferencia (MFT), por lo cual se
requiere del uso de muchas tablas y procedimientos condensados que representan el sentido
de una funcin de transferencia, pero que se simplifica su manejo para la fcil
manipulacin de aquel que calcule las cargas trmicas y de enfriamiento.
(37)
Por otro lado la Radiacin tambin tiene un efecto significativo sobre la ganancia de
calor a travs de las superficies cristalinas, que para el mtodo de clculo actual se realiza
como una funcin de factores de sombreado y de ganancia de calor solar por orientacin,
131
latitud, hora y mes, que permiten obtener la magnitud de la cantidad de energa que se
inserta a travs de este fenmeno de transferencia a los ambientes cerrados y refrigerados.
El coeficiente de sombreado, es un factor que depende de la capacidad que tengan
los materiales vidriosos de absorber o reflejar la luz y calor, ya que esto permitir que sea
mayor o menor la incidencia del sol en las cargas del ambiente.
El factor de ganancia de calor solar, es la fraccin de irradiacin que penetra los
cristales y se convierte en ganancia de calor para el ambiente. Este factor permite
determinar la ganancia de calor por radiacin a travs de los sistemas de ventanas. Para la
obtencin del factor se debe considerar la orientacin de los sistemas cristalinos, para
predecir la porcin de exposicin que tendrn al astro solar. Estos factores han sido
calculados y tabulados para varias latitudes y todos los meses, como se observa en el
ejemplo anexo. (Ver Apndice A3, Tabla A3.1).
En tal forma, queda simplificado el clculo de la ganancia de calor por efecto de la
radiacin solar como:
qi = A FS FGCS
(38)
donde,
= rea de Vidrio, m2
FS
= Factor de Sombra
132
)
d (q
qe , = A bn (Te , n ) n e , n Trc cn
A
n =1
n =0
n =0
(39)
donde
qe ,
= hora de clculo
= intervalo de tiempo
= ndice de suma
133
(40)
donde
A
= rea, m2
Tb
b ,c,d
(41)
134
(42)
(43)
(44)
(45)
donde
q
= ganancia de calor, W
= rea de superficie, m2
136
transferencia correspondiente del elemento que corresponda. Los errores que se manejan
con esta aproximacin dependen de la diferencia entre los materiales de construccin
utilizados y los considerados para el clculo de las DTTEs.
(46)
donde
Tea
Ti
Te
138
con los obtenidos por la aplicacin rigurosa del mtodo de la funcin de transferencia, los
que se pueden obtener por el mtodo de las diferencias de temperaturas totales equivalentes
en un promedio de tiempo (DTTE/PT) se obtienen con mucho menos esfuerzo de cmputo.
La habilidad adecuada de variar el perodo 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 aproximacin depende de la eficacia con que la ganancia de calor de
los componentes se maneja como porcentajes de conveccin y radiacin, as como del
nmero de horas en que estos son utilizados dentro del lapso que es estudiado. La debilidad
de esta aproximacin 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 mtodos MFT o DTTE/PT son
esencialmente idnticos para todos los componentes de carga. Los valores de carga de
refrigeracin derivados de la aplicacin adecuada de las tcnicas de promediar, se asemejan
a los obtenidos por el mtodo MFT para ganancia de calor por fuentes externas. La carga de
refrigeracin causada por la ganancia de calor interna, sin embargo, al promediarse en el
mismo perodo de tiempo que los componentes externos, alcanza picos en un lapso menor y
con mayores amplitudes que las generadas por el mtodo MFT. Esta diferencia radica
bsicamente en que el nivel casi constante de radiacin aadida en los perodos de
ocupacin y tambin a la resultante del aplastamiento de las curvas de carga de
refrigeracin que se realiza en el mtodo 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
CalculoU - 1
Dim datos As Us
Private Sub Calcular_Click()
Dim resistenciasum As Double
Dim rpeq As Double
Dim ucef As Double
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.conf, 1)) = "R" Then
rpeq = Trim(datos.Resistencia)
rpeq = rpeq * 1
resistenciasum = resistenciasum + rpeq
End If
Loop
Close #1
If Not resistenciasum = 0 Then
ucef = 1 / resistenciasum
Ucoef.Text = ucef
End If
End Sub
CalculoU - 2
End If
Text1.Text = n_res
End Sub
Private Sub Form_Load()
Espesor.Enabled = False
Espesor.BackColor = &H80000011
Espesor.Text = ""
resistividad.Text = ""
Nombre.Text = ""
Resistencia.Text = ""
Ucoef.Text = ""
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "c", "Material", 2800, 2
ListView1.ColumnHeaders.Add , "d", "Resistencia", 1000, 2
ListView1.ListItems.Clear
i = 0
Open App.Path & "/Datos/Resistencias.cfl" For Random As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.conf, 1)) = "R" Then
Set itmx1 = ListView1.ListItems.Add(1, , datos.id)
itmx1.SubItems(1) = i - 1
itmx1.SubItems(2) = Trim(datos.Descripcion)
itmx1.SubItems(3) = Trim(datos.Resistencia)
Set itmx1 = Nothing
End If
Loop
Close #1
ListView2.ColumnHeaders.Clear
ListView2.ColumnHeaders.Add , "ID", "ID", 0
ListView2.ColumnHeaders.Add , "PK", "PK", 0
ListView2.ColumnHeaders.Add , "c", "Material", 3000, 0
ListView2.ColumnHeaders.Add , "d", "Densidad", 1000, 2
ListView2.ColumnHeaders.Add , "l", "Resistencia", 1000, 2
ListView2.ListItems.Clear
Dim itmX As ListItem
i = 0
Open App.Path & "/Tablas/Tabla24_4.cfl" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If Not UCase(Left(datos.Descripcion, 2)) = " " Then
If UCase(Left(datos.conf, 1)) = "N" Then
Set itmX = ListView2.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Descripcion)
itmX.SubItems(3) = Trim(datos.Densidad)
itmX.SubItems(4) = Trim(datos.Resistencia)
Set itmX = Nothing
End If
End If
Loop
ListView2.SortKey = 2
ListView2.Sorted = True
Close #1
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "c", "Material", 3000, 0
ListView3.ColumnHeaders.Add , "d", "Densidad", 1000, 2
ListView3.ColumnHeaders.Add , "l", "Resistencia", 1000, 2
ListView3.ListItems.Clear
Dim itmx2 As ListItem
i = 0
Open App.Path & "/Tablas/Tabla24_4.cfl" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
CalculoU - 3
i = i + 1
If Not UCase(Left(datos.Descripcion, 2)) = " " Then
If UCase(Left(datos.conf, 1)) = "L" Then
Set itmx2 = ListView3.ListItems.Add(1, , datos.id)
itmx2.SubItems(1) = i - 1
itmx2.SubItems(2) = Trim(datos.Descripcion)
itmx2.SubItems(3) = Trim(datos.Densidad)
itmx2.SubItems(4) = Trim(datos.Resistencia)
Set itmx2 = Nothing
End If
End If
Loop
Close #1
End Sub
Private Sub ListView2_Dblclick()
Open App.Path & "/Tablas/Tabla24_4.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView2.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
largo = Len(Trim(datos.Resistencia))
If largo > 6 Then
MsgBox "este elemento requiere que usted decida cul valor poner del rango"
Else
AgrResistencia.Text1.Text = Trim(datos.Descripcion)
AgrResistencia.Text2.Text = Trim(datos.Resistencia)
AgrResistencia.Show
End If
End Sub
Private Sub ListView3_dblclick()
Open App.Path & "/Tablas/Tabla24_4.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView3.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
largo = Len(Trim(datos.Resistencia))
If largo > 6 Then
MsgBox "este elemento requiere que usted decida cul valor poner del rango"
Else
AgrResistividad.Text1.Text = Trim(datos.Descripcion)
AgrResistividad.Text2.Text = Trim(datos.Resistencia)
AgrResistividad.Show
End If
End Sub
Private Sub resistividad_Change()
Espesor.BackColor = &H80000005
Espesor.Enabled = True
End Sub
Private Sub TabStrip1_Click()
If tabstrip1.SelectedItem = "Resistencias" Then
Frame1.Visible = True
Frame2.Visible = False
End If
If tabstrip1.SelectedItem = "Resistividades" Then
Frame1.Visible = False
Frame2.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
Resistencia [K*m^2/W]
- DE SER EL CASO Resistividad [K*m/W]
Espesor
[m]
Coeficiente de Tansferencia de
Calor [W/(m^2*K)]
CalorPersona - 1
Private Sub Form_Load()
Dim datos As CalorPersonas
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "ta", "Tipo de Actividad", 3500, 2
ListView1.ColumnHeaders.Add , "", "Lugar Tpico", 2400, 2
ListView1.ColumnHeaders.Add , "Ch", "Calor Adulto Hombre", 1900, 2
ListView1.ColumnHeaders.Add , "Chm", "Calor Ajustado H/M", 1900, 2
ListView1.ColumnHeaders.Add , "CS", "Calor Sensible", 1200, 2
ListView1.ColumnHeaders.Add , "CL", "Calor Latente", 1200, 2
ListView1.ColumnHeaders.Add , "IrrB", "% Calor sensible Irr., Bajo V", 2300, 2
ListView1.ColumnHeaders.Add , "IrrA", "% Calor sensible Irr., Bajo V", 2300, 2
ListView1.ListItems.Clear
Dim itmX As ListItem
Open App.Path & "/Tablas/CPer.cfl" For Random Access Read As #1 Len = Len(datos)
i = 0
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.nomb, 1)) = "P" Then
Set itmX = ListView1.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.actividad)
itmX.SubItems(3) = Trim(datos.Tipo)
itmX.SubItems(4) = Trim(datos.hombre)
itmX.SubItems(5) = Trim(datos.ajustado)
itmX.SubItems(6) = Trim(datos.sensible)
itmX.SubItems(7) = Trim(datos.Latente)
itmX.SubItems(8) = Trim(datos.Bajo)
itmX.SubItems(9) = Trim(datos.Alto)
Set itmX = Nothing
End If
Loop
Close #1
End Sub
Private Sub ListView1_dblclick()
Dim datos As CalorPersonas
Open App.Path & "/Tablas/CPer.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView1.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
Cargas.txtshgpersonas.Text = Trim(datos.sensible)
Cargas.txtlhgpersonas.Text = Trim(datos.Latente)
Me.Hide
Cargas.Show
End Sub
CambiosAireHora - 1
Dim datos As ventilac
Dim itmX As ListItem
Private Sub Command1_Click()
n_camb = lenfile6(App.Path & "/Tablas/CambiosHora.cfl")
Open App.Path & "/Tablas/CambiosHora.cfl" For Random As #1 Len = Len(datos)
Get #1, n_camb, datos
Close #1
datos.Aplicacion = Text1.Text
datos.lps = Text2.Text
datos.Sup = "S"
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/Tablas/CambiosHora.cfl" For Random As #1 Len = Len(datos)
Put #1, n_camb, datos
Close #1
Call Form_Load
End Sub
Private Sub Form_Load()
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "Uso", "Local Destinado A:", 2500, 0
ListView1.ColumnHeaders.Add , "chm", "Cambios Mnimos Aire/hora", 1500, 0
ListView1.ListItems.Clear
i = 0
Open App.Path & "/Tablas/CambiosHora.cfl" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.Sup, 1)) = "S" Then
Set itmX = ListView1.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Aplicacion)
itmX.SubItems(3) = Trim(datos.lps)
Set itmX = Nothing
End If
Loop
Close #1
End Sub
Cargas - 1
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
clmx As ColumnHeader
itmx1 As ListItem
itmx2 As ListItem
i As Integer
canttech, cantpared, cantvid, cantpart, cantpiso, canttechint As Integer
cantapara, cantluces, cantequipos, cantpersonas As Integer
ofper As String
datos As techo
Directorio As String
n_tech, colocacion As Long
Cargas - 2
Loop
Close #1
End Sub
Private Sub cboLuces_Click()
If cboLuces.Text = "Fluorescente" Then
txtCoefDiseoluces.Text = "1,2"
Else
txtCoefDiseoluces.Text = 1
End If
End Sub
Private Sub cboLucesCorr_dropdown()
cboLucesCorr.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
cboLucesCorr.AddItem (datos.nombamb)
End If
Loop
Close #1
End Sub
Private Sub cboParedCorr_dropdown()
cboParedCorr.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
cboParedCorr.AddItem (datos.nombamb)
End If
Loop
Close #1
End Sub
Private Sub cboParticionCorr_dropdown()
cboParticionCorr.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
cboParticionCorr.AddItem (datos.nombamb)
End If
Loop
Close #1
End Sub
Private Sub cboPersonCorr_dropdown()
cboPersonCorr.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
cboPersonCorr.AddItem (datos.nombamb)
End If
Loop
Close #1
End Sub
Cargas - 3
Private Sub cboVidrioCorr_dropdown()
cboVidrioCorr.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
cboVidrioCorr.AddItem (datos.nombamb)
End If
Loop
Close #1
End Sub
Private Sub cboVidrioCorr_click()
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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, 7)) = UCase(Left(cboVidrioCorr.Text, 7)) Then
Text1.Text = datos.Tso
Text2.Text = datos.Textd
End If
Loop
Close #1
End Sub
Cargas - 4
Close #1
cboAparatosCorr.Text = "-Elegir Oficina-"
txtIgAparatos.Text = ""
txtshg.Text = ""
txtlhg.Text = ""
End If
End If
Call Form_Load
End Sub
Cargas - 5
MsgBox "Faltan datos, verifique que llen todas las casillas", vbExclamation
Else
Oficina = cboAparatosCorr.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_apa As Long
n_apa = lenfile(App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt")
If n_apa - 1 = 0 Then n_apa = n_apa + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random As #1 Len = Len(datos)
Get #1, n_apa - 1, datos
Close #1
datos.TVar = "CARGA"
datos.tcarga = "APARATOS"
datos.UmaAt = Uma
datos.Ofcorr = cboAparatosCorr.Text
datos.Igaparatos = txtIgAparatos.Text
datos.shg = txtshg.Text
datos.lhg = txtlhg.Text
datos.inicio = cboinicioaparatos.Text
datos.duracion = cboduracionaparatos.Text
datos.Campana = cbocampanaaparatos.Text
datos.borrado = Check6.Value
datos.id = ListView3.SelectedItem.SubItems(1)
Open App.Path & "/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"
cboAparatosCorr.Text = "-Elegir Oficina-"
txtIgAparatos.Text = ""
txtshg.Text = ""
txtlhg.Text = ""
End If
Call Form_Load
End Sub
Cargas - 6
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 = txtCoefDiseoluces.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 = ""
txtCoefDiseoluces.Text = ""
End If
Call Form_Load
End Sub
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
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 = "Particin" Then
datos.tcarga = "PARTICION"
End If
If TabStrip3.SelectedItem = "Piso" Then
datos.tcarga = "PISO"
End If
Cargas - 10
End Sub
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()
Cargas - 12
Cargas - 13
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 = Check3.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"
'Limpia las casillas de Texto
cboVidrioCorr.Text = "-Elegir Oficina-"
txtIgvid.Text = ""
txtucoefvid.Text = ""
txtareavidrio.Text = ""
txtcoefaten.Text = ""
txtconstamb.Text = ""
Text1.Text = ""
Text2.Text = ""
End If
Call Form_Load
End Sub
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 ms de cinco (30) Cargas para esta versin 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 = txtCoefDiseoluces.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 = ""
txtCoefDiseoluces.Text = ""
End If
End If
Call Form_Load
End Sub
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
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
Cargas - 17
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 ms de cinco (30) Cargas para esta versin 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)
Cargas - 19
txtarea.Text = Trim(datos.area)
txttechcoef.Text = Trim(datos.color)
txtfte.Text = Trim(datos.fte)
txtdf.Text = Trim(datos.inercia)
cbocielo.Text = Trim(datos.cielo)
txtTitech.Text = Trim(datos.titech)
Text1.Text = Trim(datos.Tso)
Text2.Text = Trim(datos.Textd)
End If
If TabStrip3.SelectedItem = "Pared" Then
cmdGuardarPared.Visible = True
Check2.Visible = True
cmdPared.Visible = False
Check2.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
cboParedCorr.Text = Trim(datos.Ofcorr)
txtIgPared.Text = Trim(datos.IgPar)
txtUcoefPar.Text = Trim(datos.Ucoef)
txtareapared.Text = Trim(datos.area)
txtcoefcolor.Text = Trim(datos.color)
txtgrupo.Text = Trim(datos.Grupo)
cboOrientacion.Text = Trim(datos.orientacion)
Text1.Text = Trim(datos.Tso)
Text2.Text = Trim(datos.Textd)
txtdecfact.Text = Trim(datos.inercia)
txtTimeLag.Text = Trim(datos.fte)
End If
If TabStrip3.SelectedItem = "Vidrio" Then
cmdGuardarVidrio.Visible = True
Check3.Visible = True
cmdVidrio.Visible = False
Check3.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
cboVidrioCorr.Text = Trim(datos.Ofcorr)
txtIgvid.Text = Trim(datos.igvid)
txtucoefvid.Text = Trim(datos.Ucoef)
txtareavidrio.Text = Trim(datos.area)
txtcoefaten.Text = Trim(datos.Atenuacion)
cboorientacionvidrio.Text = Trim(datos.orientacion)
Text1.Text = Trim(datos.Tso)
Text2.Text = Trim(datos.Textd)
End If
Cargas - 20
Check5.Visible = True
cmdLuces.Visible = False
Check5.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
cboLucesCorr.Text = Trim(datos.Ofcorr)
txtPotLuces.Text = Trim(datos.Potluces)
txtporcionluces.Text = Trim(datos.uso)
cboLuces.Text = Trim(datos.tipoluces)
cboinicioluces.Text = Trim(datos.inicio)
cboDuracionluces.Text = Trim(datos.duracion)
txtCoefDiseoluces.Text = Trim(datos.coefdis)
End If
If TabStrip3.SelectedItem = "Aparatos" Then
cmdGuardarAparatos.Visible = True
Check6.Visible = True
cmdAparato.Visible = False
Check6.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
cboAparatosCorr.Text = Trim(datos.Ofcorr)
txtIgAparatos.Text = Trim(datos.Igaparatos)
txtshg.Text = Trim(datos.shg)
txtlhg.Text = Trim(datos.lhg)
cboinicioaparatos.Text = Trim(datos.inicio)
cboduracionaparatos.Text = Trim(datos.duracion)
cbocampanaaparatos.Text = Trim(datos.Campana)
End If
If TabStrip3.SelectedItem = "Equipos de Potencia" Then
cmdGuardarEquipos.Visible = True
Check7.Visible = True
Check7.Value = 1
cmdEquipos.Visible = False
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
cboEquiposCorr.Text = Trim(datos.Ofcorr)
txtPotenciaEquipos.Text = Trim(datos.potencia)
txtEficienciaEquipos.Text = Trim(datos.eficiencia)
txtusoEquipo.Text = Trim(datos.uso)
cboColocacion.Text = Trim(datos.colocacion)
txtTcolocacion.Text = Trim(datos.Tcolocacion)
cboInicioEquipos.Text = Trim(datos.inicio)
cboDuracionEquipos.Text = Trim(datos.duracion)
txtIgEquipos.Text = Trim(datos.IgEquipos)
End If
If TabStrip3.SelectedItem = "Personas" Then
cmdGuardarPersonas.Visible = True
Check8.Visible = True
cmdPersonas.Visible = False
Check8.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
txtnropersonas.Text = Trim(datos.cantpersonas)
txtshgpersonas.Text = Trim(datos.shg)
txtlhgpersonas.Text = Trim(datos.lhg)
cboentrada.Text = Trim(datos.inicio)
cbopermanencia.Text = Trim(datos.duracion)
cboPersonCorr.Text = Trim(datos.Ofcorr)
End If
End Sub
Cargas - 21
Private Sub TabStrip1_Click()
If tabstrip1.SelectedItem = "Inicio" Then
inicio.Show
Me.Hide
tabstrip1.Tabs.Item(6).Selected = False
End If
If tabstrip1.SelectedItem = "Datos Generales" Then
DatosGenerales.Show
Me.Hide
tabstrip1.Tabs.Item(6).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones Exteriores" Then
CondicionesExteriores.Show
Me.Hide
tabstrip1.Tabs.Item(6).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then
CondicionesUma.Show
Me.Hide
tabstrip1.Tabs.Item(6).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de Ambiente(s)" Then
CondicionesOficina.Show
Me.Hide
tabstrip1.Tabs.Item(6).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.ListItems.Clear
frmTipos.Visible = False
txtCoefDiseoluces.Locked = True
txtCoefDiseoluces.BackColor = &H80000011
If TabStrip3.SelectedItem = "Techo" Then
techo.Visible = True
pared.Visible = False
vidrio.Visible = False
particion.Visible = False
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardartecho.Visible = False
Check1.Visible = False
cmdTecho.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Tcar", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "U", "Coef. Transf.", 1300, 2
ListView3.ColumnHeaders.Add , "Area", "rea", 700, 2
ListView3.ColumnHeaders.Add , "Ctech", "Coef. Techo", 1200, 2
ListView3.ColumnHeaders.Add , "fte", "TL [h]", 700, 2
ListView3.ColumnHeaders.Add , "cielo", "Cielo Raso", 1200, 2
ListView3.ColumnHeaders.Add , "tipo", "Tipo Techo", 1200, 2
ListView3.ColumnHeaders.Add , "Perte", "Oficina", 2300, 2
Cargas - 22
Dim itmX As ListItem
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "TECHO
" And datos.borrado = 1 Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.color)
itmX.SubItems(6) = Trim(datos.fte)
itmX.SubItems(7) = Trim(datos.cielo)
itmX.SubItems(8) = Trim(datos.titech)
itmX.SubItems(9) = Trim(datos.Ofcorr)
Set itmX = Nothing
canttech = canttech + 1
End If
Loop
Close #1
txtcanttech.Text = canttech
End If
If TabStrip3.SelectedItem = "Pared" Then
techo.Visible = False
pared.Visible = True
vidrio.Visible = False
particion.Visible = False
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarPared.Visible = False
Check2.Visible = False
cmdPared.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "tcar", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "Coef", "Coef. Transf.", 1300, 2
ListView3.ColumnHeaders.Add , "area", "rea Pared", 1100, 2
ListView3.ColumnHeaders.Add , "coefcol", "Coef. Color", 1200, 2
ListView3.ColumnHeaders.Add , "grupo", "Grupo", 800, 2
ListView3.ColumnHeaders.Add , "orien", "Orientacion", 1100, 2
ListView3.ColumnHeaders.Add , "corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "ig", "Iguales", 800, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "PARED
" And datos.borrado = 1 Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.color)
itmX.SubItems(6) = Trim(datos.Grupo)
itmX.SubItems(7) = Trim(datos.orientacion)
itmX.SubItems(8) = Trim(datos.Ofcorr)
itmX.SubItems(9) = Trim(datos.IgPar)
Set itmX = Nothing
cantpared = cantpared + 1
End If
Loop
Close #1
Cargas - 23
txtcantpared.Text = cantpared
End If
If TabStrip3.SelectedItem = "Vidrio" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = True
particion.Visible = False
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarVidrio.Visible = False
Check3.Visible = False
cmdVidrio.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "ucoef", "Coef. Transf.", 1300, 2
ListView3.ColumnHeaders.Add , "area", "rea Vidrio", 1100, 2
ListView3.ColumnHeaders.Add , "coefat", "Atenuacin", 1100, 2
ListView3.ColumnHeaders.Add , "Orien", "Orientacin", 1100, 2
ListView3.ColumnHeaders.Add , "corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "ig", "Iguales", 800, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "VIDRIO
" And datos.borrado = 1 Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.Atenuacion)
itmX.SubItems(6) = Trim(datos.orientacion)
itmX.SubItems(7) = Trim(datos.Ofcorr)
itmX.SubItems(8) = Trim(datos.igvid)
Set itmX = Nothing
cantvid = cantvid + 1
End If
Loop
Close #1
txtcantvidrio.Text = cantvid
End If
If TabStrip3.SelectedItem = "Particin" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = True
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarParticion.Visible = False
Check4.Visible = False
cmdParticion.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "ucoef", "Coef. Transf.", 1200, 2
ListView3.ColumnHeaders.Add , "area", "rea", 700, 2
ListView3.ColumnHeaders.Add , "to", "Temp. Ofic", 1000, 2
ListView3.ColumnHeaders.Add , "coefat", "Temp. Adyacente", 1500, 2
ListView3.ColumnHeaders.Add , "corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "ig", "Iguales", 900, 2
Cargas - 24
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "PARTICION
" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.Tso)
itmX.SubItems(6) = Trim(datos.TAdyacente)
itmX.SubItems(7) = Trim(datos.Ofcorr)
itmX.SubItems(8) = Trim(datos.IgPart)
Set itmX = Nothing
cantpart = cantpart + 1
End If
Loop
Close #1
txtcantparticion.Text = cantpart
End If
If TabStrip3.SelectedItem = "Piso" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = True
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarParticion.Visible = False
Check4.Visible = False
cmdParticion.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "ucoef", "Coef. Transf.", 1200, 2
ListView3.ColumnHeaders.Add , "area", "rea", 700, 2
ListView3.ColumnHeaders.Add , "to", "Temp. Ofic", 1000, 2
ListView3.ColumnHeaders.Add , "coefat", "Temp. Adyacente", 1500, 2
ListView3.ColumnHeaders.Add , "corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "ig", "Iguales", 900, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "PISO
" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.Tso)
itmX.SubItems(6) = Trim(datos.TAdyacente)
itmX.SubItems(7) = Trim(datos.Ofcorr)
itmX.SubItems(8) = Trim(datos.IgPart)
Set itmX = Nothing
cantpiso = cantpiso + 1
End If
Loop
Close #1
txtcantparticion.Text = cantpiso
End If
If TabStrip3.SelectedItem = "Luces" Then
Cargas - 25
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = False
luces.Visible = True
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarLuces.Visible = False
Check5.Visible = False
cmdLuces.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "potencia", "Potencia", 1000, 2
ListView3.ColumnHeaders.Add , "uso", "% de uso", 1000, 2
ListView3.ColumnHeaders.Add , "tipo", "Tipo de Luces", 1500, 2
ListView3.ColumnHeaders.Add , "ini", "Inicio", 700, 2
ListView3.ColumnHeaders.Add , "dur", "Duracin", 900, 2
ListView3.ColumnHeaders.Add , "Coef", "Factor de Balasto", 1600, 2
ListView3.ColumnHeaders.Add , "Corr", "Oficina", 2300, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "LUCES
" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Potluces)
itmX.SubItems(4) = Trim(datos.uso)
itmX.SubItems(5) = Trim(datos.tipoluces)
itmX.SubItems(6) = Trim(datos.inicio)
itmX.SubItems(7) = Trim(datos.duracion)
itmX.SubItems(8) = Trim(datos.coefdis)
itmX.SubItems(9) = Trim(datos.Ofcorr)
Set itmX = Nothing
cantluces = cantluces + 1
End If
Loop
Close #1
txtcantLuces.Text = cantluces
End If
If TabStrip3.SelectedItem = "Aparatos" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = False
luces.Visible = False
aparatos.Visible = True
equipoten.Visible = False
personas.Visible = False
cmdGuardarAparatos.Visible = False
Check6.Visible = False
cmdAparato.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "SGH", "Calor Sensible", 1300, 2
ListView3.ColumnHeaders.Add , "LGH", "Calor Latente", 1300, 2
ListView3.ColumnHeaders.Add , "ini", "Inicio", 800, 2
ListView3.ColumnHeaders.Add , "dur", "Duracin", 900, 2
ListView3.ColumnHeaders.Add , "Camp", "Campana", 900, 2
ListView3.ColumnHeaders.Add , "Corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "Cant", "Cantidad", 900, 2
i = 0
Cargas - 26
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "APARATOS
" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.shg)
itmX.SubItems(4) = Trim(datos.lhg)
itmX.SubItems(5) = Trim(datos.inicio)
itmX.SubItems(6) = Trim(datos.duracion)
itmX.SubItems(7) = Trim(datos.Campana)
itmX.SubItems(8) = Trim(datos.Ofcorr)
itmX.SubItems(9) = Trim(datos.Igaparatos)
Set itmX = Nothing
cantapara = cantapara + 1
End If
Loop
Close #1
txtcantapara.Text = cantapara
End If
If TabStrip3.SelectedItem = "Equipos de Potencia" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = False
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = True
personas.Visible = False
cmdGuardarEquipos.Visible = False
Check7.Visible = False
cmdEquipos.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "potencia", "Potencia", 1100, 2
ListView3.ColumnHeaders.Add , "Efi", "Eficiencia", 1100, 2
ListView3.ColumnHeaders.Add , "uso", "Porcion en Uso", 1400, 2
ListView3.ColumnHeaders.Add , "col", "Colocacin", 1200, 2
ListView3.ColumnHeaders.Add , "ini", "Inicio", 700, 2
ListView3.ColumnHeaders.Add , "dur", "Duracin", 900, 2
ListView3.ColumnHeaders.Add , "Corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "cant", "Cantidad", 900, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "EQUIPOTENCIA " Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.potencia)
itmX.SubItems(4) = Trim(datos.eficiencia)
itmX.SubItems(5) = Trim(datos.uso)
itmX.SubItems(6) = Trim(datos.colocacion)
itmX.SubItems(7) = Trim(datos.inicio)
itmX.SubItems(8) = Trim(datos.duracion)
itmX.SubItems(9) = Trim(datos.Ofcorr)
itmX.SubItems(10) = Trim(datos.IgEquipos)
Set itmX = Nothing
cantequipos = cantequipos + 1
End If
Loop
Close #1
Cargas - 27
txtCantEquipos.Text = cantequipos
Call cboColocacion_click
End If
If TabStrip3.SelectedItem = "Personas" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = False
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = True
cmdGuardarPersonas.Visible = False
Check8.Visible = False
cmdPersonas.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "SGH", "Calor Sensible", 1300, 2
ListView3.ColumnHeaders.Add , "LGH", "Calor Latente", 1300, 2
ListView3.ColumnHeaders.Add , "ini", "Entrada", 900, 2
ListView3.ColumnHeaders.Add , "dur", "Permanencia", 1300, 2
ListView3.ColumnHeaders.Add , "Corr", "Oficina", 2300, 2
ListView3.ColumnHeaders.Add , "cant", "Cantidad", 900, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "PERSONAS
" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.shg)
itmX.SubItems(4) = Trim(datos.lhg)
itmX.SubItems(5) = Trim(datos.inicio)
itmX.SubItems(6) = Trim(datos.duracion)
itmX.SubItems(7) = Trim(datos.Ofcorr)
itmX.SubItems(8) = Trim(datos.cantpersonas)
Set itmX = Nothing
cantpersonas = cantpersonas + 1
End If
Loop
Close #1
txtcantpersonas.Text = cantpersonas
End If
If TabStrip3.SelectedItem = "Techo Interno" Then
techo.Visible = False
pared.Visible = False
vidrio.Visible = False
particion.Visible = True
luces.Visible = False
aparatos.Visible = False
equipoten.Visible = False
personas.Visible = False
cmdGuardarParticion.Visible = False
Check4.Visible = False
cmdParticion.Visible = True
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add , "ID", "ID", 0
ListView3.ColumnHeaders.Add , "PK", "PK", 0
ListView3.ColumnHeaders.Add , "Carga", "Tipo de Carga", 1700, 2
ListView3.ColumnHeaders.Add , "ucoef", "Coef. Transf.", 1200, 2
ListView3.ColumnHeaders.Add , "area", "rea", 700, 2
ListView3.ColumnHeaders.Add , "to", "Temp. Ofic", 1000, 2
ListView3.ColumnHeaders.Add , "coefat", "Temp. Adyacente", 1500, 2
ListView3.ColumnHeaders.Add , "corr", "Oficina", 2300, 2
Cargas - 28
ListView3.ColumnHeaders.Add , "ig", "Iguales", 900, 2
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.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.tcarga, 13)) = "TECHO INTERNO" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.tcarga)
itmX.SubItems(3) = Trim(datos.Ucoef)
itmX.SubItems(4) = Trim(datos.area)
itmX.SubItems(5) = Trim(datos.Tso)
itmX.SubItems(6) = Trim(datos.TAdyacente)
itmX.SubItems(7) = Trim(datos.Ofcorr)
itmX.SubItems(8) = Trim(datos.IgPart)
Set itmX = Nothing
canttechint = canttechint + 1
End If
Loop
Close #1
txtcantparticion.Text = canttechint
End If
End Sub
Private Sub txtCoefDiseoluces_Dblclick()
txtCoefDiseoluces.Locked = False
txtCoefDiseoluces.BackColor = &H80000005
End Sub
Private Sub txtlhg_Click()
Call txtshg_click
End Sub
Private Sub txtPotenciaEquipos_click()
MotoresElectricos.Show
cboColocacion.Text = ""
End Sub
Private Sub txtshg_click()
GananciaAparatos.Show
End Sub
Private Sub txtshgpersonas_dblClick()
CalorPersona.Show
End Sub
Cargas - 29
CoefsPared.Show
End Sub
Private Sub txtUcoefPartic_click()
CalculoU.Show
CalculoU.Text1.Text = 0
txtUcoefPartic.BackColor = &H80000005
End Sub
Cantidad
Coeficiente
Nro.
Potencia
de equipos
Vidrios
Personas
Instalada
de transferencia
Iguales
similares
[W]
Nro. de Aparatos
elementos
Paredes
Iguales
Iguales
iguales
de Calor [W/(kg K)]
Coeficiente
Ganancia
Porcin
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
reduccin
de
la calor
potencia
de Particin
Latente
en
Techo
[W]
Coeficiente
por
[m^2]
(de
uso
balasto)(tpico
de [m^2]
0 a[W]
1)
Coeficiente
de Atenuacin
Color
de
la
Pared
Tipo de Techo
CoefsPared - 1
Dim datos As Tabla11
Dim datos2 As Tabla14
CoefsPared - 2
If tabstrip1.SelectedItem = "Seleccin de una Pared Similar" Then
frmTabla11.Visible = True
frmTabla19.Visible = False
End If
If tabstrip1.SelectedItem = "Eleccin de una Pared Establecida" Then
frmTabla19.Visible = True
frmTabla11.Visible = False
End If
End Sub
Si el tipo de pared por capas suyo esta dentro de los de la lista, seleccionelo
haciendo doble clic
CoefsTecho - 1
Dim datos As Tabla11
Dim datos2 As Tabla14
CoefsTecho - 2
Private Sub TabStrip1_Click()
If tabstrip1.SelectedItem = "Seleccin de un Techo Similar" Then
frmTabla11.Visible = True
frmTabla14.Visible = False
End If
If tabstrip1.SelectedItem = "Eleccin de un Techo Establecido" Then
frmTabla14.Visible = True
frmTabla11.Visible = False
End If
End Sub
Si el tipo de techo por capas suyo esta dentro de los de la lista, seleccionelo
haciendo doble clic
CondicionesExteriores - 1
Dim datos As techo
Dim Directorio As String
Private Sub cboAnalisis_click()
Dim datos2 As climas
txtTexts.Text = ""
txtHrextg.Text = ""
txtTextpromg.Text = ""
If cboAnalisis.ListIndex = 0 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
txtHrextg.Text = Trim(datos2.HrAnual)
txtTexts.Text = Trim(datos2.TempAnual)
txtTextpromg.Text = Trim(datos2.TempAnual) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 1 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr1) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr1)
End If
txtTexts.Text = Trim(datos2.Temp1)
txtTextpromg.Text = Trim(datos2.Temp1) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 2 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr2) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr2)
End If
txtTexts.Text = Trim(datos2.Temp2)
txtTextpromg.Text = Trim(datos2.Temp2) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 3 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr3) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr3)
End If
txtTexts.Text = Trim(datos2.Temp3)
txtTextpromg.Text = Trim(datos2.Temp3) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 4 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
CondicionesExteriores - 2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr4) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr4)
End If
txtTexts.Text = Trim(datos2.Temp4)
txtTextpromg.Text = Trim(datos2.Temp4) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 5 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr5) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr5)
End If
txtTexts.Text = Trim(datos2.Temp5)
txtTextpromg.Text = Trim(datos2.Temp5) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 6 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr6) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr6)
End If
txtTexts.Text = Trim(datos2.Temp6)
txtTextpromg.Text = Trim(datos2.Temp6) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 7 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr7) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr5)
End If
txtTexts.Text = Trim(datos2.Temp7)
txtTextpromg.Text = Trim(datos2.Temp7) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 8 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr8) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr8)
End If
txtTexts.Text = Trim(datos2.Temp8)
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
CondicionesExteriores - 3
txtTextpromg.Text = Trim(datos2.Temp8) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 9 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr9) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr9)
End If
txtTexts.Text = Trim(datos2.Temp9)
txtTextpromg.Text = Trim(datos2.Temp9) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 10 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr10) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr10)
End If
txtTexts.Text = Trim(datos2.Temp10)
txtTextpromg.Text = Trim(datos2.Temp10) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 11 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr11) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr11)
End If
txtTexts.Text = Trim(datos2.Temp11)
txtTextpromg.Text = Trim(datos2.Temp11) - 4
End If
Loop
Close #1
End If
If cboAnalisis.ListIndex = 12 Then
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1
Do While Not EOF(1)
Get #1, , datos2
If Trim(datos2.Ciudad) = Trim(txtUbicacion.Text) Then
If Trim(datos2.Hr12) = "" Then
txtHrextg.Text = Trim(datos2.HrAnual)
Else
txtHrextg.Text = Trim(datos2.Hr12)
End If
txtTexts.Text = Trim(datos2.Temp12)
txtTextpromg.Text = Trim(datos2.Temp12) - 4
End If
Loop
Close #1
End If
CondicionesUma.txtTextd.Text = txtTexts.Text
CondicionesUma.txtHrext.Text = txtHrextg.Text
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
Len = Len(datos2)
CondicionesExteriores - 4
CondicionesUma.txtTme.Text = txtTextpromg.Text
End Sub
Private Sub cmdCiudDB_Click()
DatosClimticos.Show
End Sub
Private Sub cmdGuardarTodo_Click()
Dim n_cont As Integer
n_uma = lenfile(App.Path & "/Datos/UMAs.txt")
n_ofi = lenfile(App.Path & "/Datos/Oficinas.txt")
n_carg = lenfile(App.Path & "/Datos/Cargas.txt")
Open App.Path & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Len(datos)
Open App.Path & "/Datos/General.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
Open App.Path & "/Datos/Oficinas.txt" For Random Access Read As #1 Len = Len(datos)
Open App.Path & "/Datos/General.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
Open App.Path & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Len(datos)
Open App.Path & "/Datos/General.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
End
End Sub
Private Sub cmdSalir_Click()
End
End Sub
CondicionesExteriores - 5
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Len =
Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random As #2 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_contg = n_contg + 1
datos.id = n_contg
Put #2, n_contg, 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.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random As #2 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_contg = n_contg + 1
datos.id = n_contg
Put #2, n_contg, datos
End If
Loop
Close #1
Close #2
VistaPreviaDatos.Show
End Sub
Private Sub Form_Load()
tabstrip1.Tabs.Item(3).Selected = True
Directorio = DatosGenerales.txtTituloProyecto.Text
End Sub
Ciudad de Ubicacin
[ ]
Turbiedad de la Atmsfera
Temperatura Seca Exterior
[C]
[%]
[C]
Tipo de Anlisis
Variacin Diaria Promedio de Temperaturas
[C]
CondicionesOficina - 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
CondicionesOficina - 2
datos.id = datos.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random As #1 Len = Len(dato
s)
Put #1, n_ofi, datos
Close #1
txtnombamb.Text = ""
txtIgOf.Text = ""
txtTso.Text = ""
txtHro.Text = ""
txtAreaof.Text = ""
txtHpared.Text = ""
txtMaxPers.Text = ""
txtInfil.Text = ""
txtVentof.Text = ""
txtmetpers.Text = ""
Text2.Text = ""
Text1.Text = ""
End If
End If
Call Form_Load
End Sub
CondicionesOficina - 3
MsgBox "Para poder hacer automtico el proceso de clculo de las normas de ventilacin se requiere
tener el valor del rea del ambiente y el mximo de personas en el mismo"
Else
NormasVent.Show
NormasVent.Text1.Text = txtMaxPers.Text
NormasVent.Text2.Text = txtAreaof.Text
End If
End Sub
CondicionesOficina - 4
End If
Call Form_Load
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load()
Directorio = DatosGenerales.txtTituloProyecto.Text
tabstrip1.Tabs.Item(5).Selected = True
ListView2.ColumnHeaders.Clear
ListView2.ColumnHeaders.Add , "ID", "ID", 0
ListView2.ColumnHeaders.Add , "PK", "PK", 0
ListView2.ColumnHeaders.Add , "nombre", "Ambiente", 2300, 2
ListView2.ColumnHeaders.Add , "uma", "UMA", 2300, 2
ListView2.ColumnHeaders.Add , "cant", "Locales Iguales", 1300, 2
ListView2.ColumnHeaders.Add , "Temp", "Temp. seca", 1200, 2
ListView2.ColumnHeaders.Add , "Hr", "Humedad", 1000, 2
ListView2.ColumnHeaders.Add , "area", "rea", 800, 2
ListView2.ColumnHeaders.Add , "altura", "Altura Pared", 1200, 2
ListView2.ColumnHeaders.Add , "max", "Max. Pers.", 1100, 2
ListView2.ColumnHeaders.Add , "ven", "Ventilacin", 1100, 2
ListView2.ColumnHeaders.Add , "infil", "Infil.", 800, 2
ListView2.ListItems.Clear
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" And datos.borrado = 1 Then
Set itmX = ListView2.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.nombamb)
itmX.SubItems(3) = Trim(datos.UmaAt)
itmX.SubItems(4) = Trim(datos.IgOfi)
itmX.SubItems(5) = Trim(datos.Tso)
itmX.SubItems(6) = Trim(datos.Hro)
itmX.SubItems(7) = Trim(datos.areaof)
itmX.SubItems(8) = Trim(datos.Hpared)
itmX.SubItems(9) = Trim(datos.maxperso)
itmX.SubItems(10) = Trim(datos.Ventof)
itmX.SubItems(11) = Trim(datos.InfIl)
Set itmX = Nothing
End If
Loop
Close #1
End Sub
Private Sub ListView2_Dblclick()
cmdOfiCorregida.Visible = True
Check1.Visible = True
cmdCargOfi.Visible = False
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Binary Access Read As #1 Len =
Len(datos)
Get #1, (ListView2.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
txtnombamb.Text = Trim(datos.nombamb)
cboUmaAt.Text = Trim(datos.UmaAt)
txtIgOf.Text = Trim(datos.IgOfi)
txtTso.Text = Trim(datos.Tso)
txtHro.Text = Trim(datos.Hro)
txtAreaof.Text = Trim(datos.areaof)
txtHpared.Text = Trim(datos.Hpared)
txtMaxPers.Text = Trim(datos.maxperso)
txtInfil.Text = Trim(datos.InfIl)
txtVentof.Text = Trim(datos.Ventof)
txtmetpers.Text = Trim(datos.Metperso)
Text2.Text = Trim(datos.Hrext)
Text1.Text = Trim(datos.Textd)
CondicionesOficina - 5
End Sub
Private Sub TabStrip1_Click()
If tabstrip1.SelectedItem = "Inicio" Then
inicio.Show
Me.Hide
tabstrip1.Tabs.Item(5).Selected = False
End If
If tabstrip1.SelectedItem = "Datos Generales" Then
DatosGenerales.Show
Me.Hide
tabstrip1.Tabs.Item(5).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones Exteriores" Then
CondicionesExteriores.Show
Me.Hide
tabstrip1.Tabs.Item(5).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then
CondicionesUma.Show
Me.Hide
tabstrip1.Tabs.Item(5).Selected = False
End If
If tabstrip1.SelectedItem = "Cargas" Then
Cargas.Show
Me.Hide
tabstrip1.Tabs.Item(5).Selected = False
End If
End Sub
Private Sub txtAreaof_Change()
If Not txtAreaof.Text = "" Then
Call txtmaxpers_Change
End If
txtVentof.Text = ""
txtInfil.Text = ""
End Sub
Private Sub txtmaxpers_Change()
Dim maxperso2, areaof2 As Long
If Not txtMaxPers.Text = "" Then
If Not txtAreaof.Text = "" Then
maxperso2 = txtMaxPers.Text
areaof2 = txtAreaof.Text
txtmetpers.Text = areaof2 / maxperso2
End If
Else
txtmetpers.Text = ""
End If
txtVentof.Text = ""
txtInfil.Text = ""
End Sub
Ambientes Iguales
m^2/personas
Ventilacin [L/s]
Infiltraciones [L/s]
CondicionesUma - 1
CondicionesUma - 2
Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/General.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
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Le
n(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/General.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
End
End Sub
CondicionesUma - 3
FileCopy App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.txt", App.Path & "/" & Trim(Directo
rio) & "/Datos/UMAs.txt"
Kill App.Path & "/" & Trim(Directorio) & "/Datos/nUMAs.txt"
txtnombuma.Text = ""
txtcantumaigual.Text = ""
txtTintd.Text = ""
txtHintd.Text = ""
txtBpf.Text = ""
txtChmin.Text = ""
Check2.Visible = False
cmdGuardUma.Visible = False
CargUMA.Visible = True
End If
Call Form_Load
End Sub
Private Sub cmdNormas_Click()
CambiosAireHora.Show
End Sub
Private Sub cmdSalir_Click()
End
End Sub
CondicionesUma - 4
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Binary Access Read As #1 Len = Len(
datos)
Get #1, (ListView1.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
txtnombuma.Text = Trim(datos.nombuma)
txtcantumaigual.Text = Trim(datos.cantumaig)
txtTme.Text = Trim(datos.Tmext)
txtTextd.Text = Trim(datos.Textd)
txtHrext.Text = Trim(datos.Hrext)
txtTintd.Text = Trim(datos.Tintd)
txtHintd.Text = Trim(datos.Hrint)
txtBpf.Text = Trim(datos.bpf)
txtChmin.Text = Trim(datos.chmin)
cboRetorno.Text = Trim(datos.retorno)
cboFlujo.Text = Trim(datos.Flujo)
cboAgua.Text = Trim(datos.Agua)
End Sub
Private Sub TabStrip1_Click()
If tabstrip1.SelectedItem = "Inicio" Then
inicio.Show
Me.Hide
tabstrip1.Tabs.Item(4).Selected = False
End If
If tabstrip1.SelectedItem = "Datos Generales" Then
DatosGenerales.Show
Me.Hide
tabstrip1.Tabs.Item(4).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones Exteriores" Then
CondicionesExteriores.Show
Me.Hide
tabstrip1.Tabs.Item(4).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de Ambiente(s)" Then
CondicionesOficina.Show
Me.Hide
tabstrip1.Tabs.Item(4).Selected = False
End If
If tabstrip1.SelectedItem = "Cargas" Then
Cargas.Show
Me.Hide
tabstrip1.Tabs.Item(4).Selected = False
End If
End Sub
Nombre de la UMA
Cantidad de UMAs iguales
Temperatura Exterior de Diseo
Temperatura Interior de Diseo
Temperatura Media Exterior
[C]
[C]
[C]
[%
Cambios de Aire/h mn
Retorno
Flujo
Agua
[%]
DatosClimticos - 1
Dim datos As climas
Private Sub CiudadAgregar_Click()
Dim n_ciud As Long
n_ciud = lenfile2(App.Path & "/Tablas/Climaticas.cfl")
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1 Len = Len(datos)
Get #1, n_ciud, datos
Close #1
datos.code = "O"
datos.Ciudad = Text1.Text
datos.Temp1 = Text2.Text
datos.Temp2 = Text3.Text
datos.Temp3 = Text4.Text
datos.Temp4 = Text5.Text
datos.Temp5 = Text6.Text
datos.Temp6 = Text7.Text
datos.Temp7 = Text8.Text
datos.Temp8 = Text9.Text
datos.Temp9 = Text10.Text
datos.Temp10 = Text11.Text
datos.Temp11 = Text12.Text
datos.Temp12 = Text13.Text
datos.TempAnual = Text14.Text
datos.Hr1 = Text15.Text
datos.Hr2 = Text16.Text
datos.Hr3 = Text17.Text
datos.Hr4 = Text18.Text
datos.Hr5 = Text19.Text
datos.Hr6 = Text20.Text
datos.Hr7 = Text21.Text
datos.Hr8 = Text22.Text
datos.Hr9 = Text23.Text
datos.Hr10 = Text24.Text
datos.Hr11 = Text25.Text
datos.Hr12 = Text26.Text
datos.HrAnual = Text27.Text
datos.Latitud = Text28.Text
datos.Altitud = Text29.Text
datos.id = datos.id + 1
datos.salto = vbCrLf
Open App.Path & "/Tablas/Climaticas.cfl" For Random As #1 Len = Len(datos)
Put #1, n_ciud, datos
Close #1
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
Text14.Text = ""
Text15.Text = ""
Text16.Text = ""
Text17.Text = ""
Text18.Text = ""
Text19.Text = ""
Text20.Text = ""
Text21.Text = ""
Text22.Text = ""
Text23.Text = ""
Text24.Text = ""
Text25.Text = ""
Text26.Text = ""
Text27.Text = ""
Call Form_Load
End Sub
DatosClimticos - 2
Private Sub Form_Load()
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "ciu", "Ciudad", 2000, 0
ListView1.ColumnHeaders.Add , "alt", "Altitud [m]", 1100, 2
ListView1.ColumnHeaders.Add , "lat", "Latitud []", 1100, 2
ListView1.ColumnHeaders.Add , "en", "Temp. ENE", 1100, 2
ListView1.ColumnHeaders.Add , "fe", "Temp. FEB", 1100, 2
ListView1.ColumnHeaders.Add , "ma", "Temp. MAR", 1100, 2
ListView1.ColumnHeaders.Add , "ab", "Temp. ABR", 1100, 2
ListView1.ColumnHeaders.Add , "may", "Temp. MAY", 1100, 2
ListView1.ColumnHeaders.Add , "ju", "Temp. JUN", 1100, 2
ListView1.ColumnHeaders.Add , "jul", "Temp. JUL", 1100, 2
ListView1.ColumnHeaders.Add , "ag", "Temp. AGO", 1100, 2
ListView1.ColumnHeaders.Add , "se", "Temp. SEP", 1100, 2
ListView1.ColumnHeaders.Add , "oc", "Temp. OCT", 1100, 2
ListView1.ColumnHeaders.Add , "no", "Temp. NOV", 1100, 2
ListView1.ColumnHeaders.Add , "di", "Temp. DIC", 1100, 2
ListView1.ColumnHeaders.Add , "a", "Temp. AO", 1100, 2
ListView1.ColumnHeaders.Add , "ene", "Hr. ENE", 900, 2
ListView1.ColumnHeaders.Add , "feb", "Hr. FEB", 900, 2
ListView1.ColumnHeaders.Add , "mar", "Hr. MAR", 900, 2
ListView1.ColumnHeaders.Add , "abr", "Hr. ABR", 900, 2
ListView1.ColumnHeaders.Add , "mayo", "Hr. MAY", 900, 2
ListView1.ColumnHeaders.Add , "jun", "Hr. JUN", 900, 2
ListView1.ColumnHeaders.Add , "juli", "Hr. JUL", 900, 2
ListView1.ColumnHeaders.Add , "ago", "Hr. AGO", 900, 2
ListView1.ColumnHeaders.Add , "sep", "Hr. SEP", 900, 2
ListView1.ColumnHeaders.Add , "oct", "Hr. OCT", 900, 2
ListView1.ColumnHeaders.Add , "nov", "Hr. NOV", 900, 2
ListView1.ColumnHeaders.Add , "dic", "Hr. DIC", 900, 2
ListView1.ColumnHeaders.Add , "ao", "Hr. AO", 900, 2
ListView1.ListItems.Clear
Dim itmX As ListItem
i = 0
Open App.Path & "/Tablas/Climaticas.cfl" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.code, 1)) = "O" Then
Set itmX = ListView1.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Ciudad)
itmX.SubItems(3) = Trim(datos.Altitud)
itmX.SubItems(4) = Trim(datos.Latitud)
itmX.SubItems(5) = Trim(datos.Temp1)
itmX.SubItems(6) = Trim(datos.Temp2)
itmX.SubItems(7) = Trim(datos.Temp3)
itmX.SubItems(8) = Trim(datos.Temp4)
itmX.SubItems(9) = Trim(datos.Temp5)
itmX.SubItems(10) = Trim(datos.Temp6)
itmX.SubItems(11) = Trim(datos.Temp7)
itmX.SubItems(12) = Trim(datos.Temp8)
itmX.SubItems(13) = Trim(datos.Temp9)
itmX.SubItems(14) = Trim(datos.Temp10)
itmX.SubItems(15) = Trim(datos.Temp11)
itmX.SubItems(16) = Trim(datos.Temp12)
itmX.SubItems(17) = Trim(datos.TempAnual)
itmX.SubItems(18) = Trim(datos.Hr1)
itmX.SubItems(19) = Trim(datos.Hr2)
itmX.SubItems(20) = Trim(datos.Hr3)
itmX.SubItems(21) = Trim(datos.Hr4)
itmX.SubItems(22) = Trim(datos.Hr5)
itmX.SubItems(23) = Trim(datos.Hr6)
itmX.SubItems(24) = Trim(datos.Hr7)
itmX.SubItems(25) = Trim(datos.Hr8)
itmX.SubItems(26) = Trim(datos.Hr9)
itmX.SubItems(27) = Trim(datos.Hr10)
itmX.SubItems(28) = Trim(datos.Hr11)
DatosClimticos - 3
itmX.SubItems(29) = Trim(datos.Hr12)
itmX.SubItems(30) = Trim(datos.HrAnual)
Set itmX = Nothing
End If
Loop
ListView1.SortKey = 2
ListView1.Sorted = True
Close #1
End Sub
Private Sub ListView1_dblclick()
Me.Hide
Open App.Path & "/Tablas/Climaticas.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView1.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
CondicionesExteriores.cboAnalisis.Enabled = True
CondicionesExteriores.txtUbicacion.Text = Trim(datos.Ciudad)
CondicionesExteriores.txtAltitud.Text = Trim(datos.Altitud)
CondicionesExteriores.txtlatitud.Text = Trim(datos.Latitud)
MsgBox "Considere colocar un tipo de anlisis para que puedan proporcionrsele los dems valores"
End Sub
Private Sub Option1_Click()
Option1.Value = True
Option2.Value = False
Text2.Enabled = False: Text3.Enabled = False: Text4.Enabled = False
Text5.Enabled = False: Text6.Enabled = False: Text7.Enabled = False: Text8.Enabled = False
Text9.Enabled = False: Text10.Enabled = False: Text11.Enabled = False: Text12.Enabled = False
Text13.Enabled = False: Text14.Enabled = True: Text15.Enabled = False: Text16.Enabled = False
Text17.Enabled = False: Text18.Enabled = False: Text19.Enabled = False: Text20.Enabled = False
Text21.Enabled = False: Text22.Enabled = False: Text23.Enabled = False: Text24.Enabled = False
Text25.Enabled = False: Text26.Enabled = False: Text27.Enabled = True
End Sub
Private Sub Option2_Click()
Option2.Value = True
Option1.Value = False
Text2.Enabled = True: Text3.Enabled = True: Text4.Enabled = True
Text5.Enabled = True: Text6.Enabled = True: Text7.Enabled = True: Text8.Enabled = True
Text9.Enabled = True: Text10.Enabled = True: Text11.Enabled = True: Text12.Enabled = True
Text13.Enabled = True: Text14.Enabled = False: Text15.Enabled = True: Text16.Enabled = True
Text17.Enabled = True: Text18.Enabled = True: Text19.Enabled = True: Text20.Enabled = True
Text21.Enabled = True: Text22.Enabled = True: Text23.Enabled = True: Text24.Enabled = True
Text25.Enabled = True: Text26.Enabled = True: Text27.Enabled = False
End Sub
Private Sub Option3_Click()
Option3.Value = True
Option4.Value = False
Text1.Enabled = True
Text28.Enabled = True
Text29.Enabled = True
Text30.Enabled = True
Option2.Enabled = True
Option1.Enabled = True
Label1.Enabled = True
Label30.Enabled = True
Label31.Enabled = True
Label34.Enabled = True
CiudadAgregar.Enabled = True
End Sub
Private Sub Option4_Click()
CiudadAgregar.Enabled = False
Option3.Value = False
Option4.Value = True
Text1.Enabled = False: Text2.Enabled = False: Text3.Enabled = False: Text4.Enabled = False
Text5.Enabled = False: Text6.Enabled = False: Text7.Enabled = False: Text8.Enabled = False
Text9.Enabled = False: Text10.Enabled = False: Text11.Enabled = False: Text12.Enabled = False
Text13.Enabled = False: Text14.Enabled = False: Text15.Enabled = False: Text16.Enabled = False
Text17.Enabled = False: Text18.Enabled = False: Text19.Enabled = False: Text20.Enabled = False
DatosClimticos - 4
Text21.Enabled
Text25.Enabled
Text29.Enabled
Label1.Enabled
Label2.Enabled
End Sub
=
=
=
=
=
Latitud
Altitud
Variacin Estndar
en un da
MAY
JUN
JUL
AGO
SEP
OCT
NOV
DIC
Anual
Humedad Relativa
ENE
FEB
MAY
JUN
JUL
AGO
SEP
OCT
NOV
DIC
Anual
MAR
ABR
DatosGenerales - 1
Dim datos As techo
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Le
n(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/General.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
End
End Sub
Private Sub cmdSalir_Click()
End
End Sub
DatosGenerales - 2
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_contg = n_contg + 1
datos.id = n_contg
Put #2, n_contg, 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.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random As #2 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
If datos.borrado = 1 Then
n_contg = n_contg + 1
datos.id = n_contg
Put #2, n_contg, datos
End If
Loop
Close #1
Close #2
VistaPreviaDatos.Show
End Sub
Private Sub Command1_Click()
On Error Resume Next
Dim datos As techo
Dim Directorio As String
Directorio = txtTituloProyecto.Text
If ExisteDir(App.Path & "/" & Trim(Directorio)) = True Then
DlgReemplazar.Show
Else
MkDir (App.Path & "/" & Trim(Directorio))
MkDir (App.Path & "/" & Trim(Directorio) & "/Datos")
MkDir (App.Path & "/" & Trim(Directorio) & "/Resultados")
n_proc = lenfile(App.Path & "/Tablas/InfoGeneral.dat")
Open App.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos)
Get #1, n_proc, datos
Close #1
datos.Titulo = txtTituloProyecto.Text
datos.Nombre = txtNombreEmpresa.Text
datos.Encargado = txtEncargadoProyecto.Text
datos.Fecha = txtFecha.Text
datos.id = datos.id + 1
datos.O = "N"
datos.salto = vbCrLf
Open App.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos)
Put #1, n_proc, datos
Close #1
tabstrip1.Enabled = True
End If
End Sub
Private Sub Form_Load()
tabstrip1.Tabs.Item(2).Selected = True
End Sub
Private Sub TabStrip1_Click()
DatosGenerales - 3
tabstrip1.Tabs.Item(2).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones Exteriores" Then
CondicionesExteriores.Show
Me.Hide
tabstrip1.Tabs.Item(2).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then
CondicionesUma.Show
Me.Hide
tabstrip1.Tabs.Item(2).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de Ambiente(s)" Then
CondicionesOficina.Show
Me.Hide
tabstrip1.Tabs.Item(2).Selected = False
End If
If tabstrip1.SelectedItem = "Cargas" Then
Cargas.Show
Me.Hide
tabstrip1.Tabs.Item(2).Selected = False
End If
txtFecha.Text = Date
proyecto = txtTituloProyecto.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.Enabled = True
txtTituloProyecto.Clear
i = 0
Open App.Path & "/Tablas/InfoGeneral.dat" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.O, 1)) = "N" Then
txtTituloProyecto.AddItem (datos.Titulo)
txtNombreEmpresa.Text = datos.Nombre
txtEncargadoProyecto.Text = datos.Encargado
txtFecha.Text = datos.Fecha
End If
Loop
Close #1
End Sub
Nombre de la Empresa
Ttulo del Proyecto
Encargado del Proyecto
Fecha de Realizacin
DlgReemplazar - 1
Dim n_proc As Long
Dim datos As techo
Option Explicit
Private Sub CancelButton_Click()
Me.Hide
End Sub
Private Sub OKButton_Click()
Dim Directorio As String
MkDir (App.Path & "/" & Directorio)
MkDir (App.Path & "/" & Directorio & "/Datos")
MkDir (App.Path & "/" & Directorio & "/Resultados")
n_proc = lenfile(App.Path & "/Tablas/Info General.dat")
Open App.Path & "/Tablas/Info General.dat" For Random As #1 Len = Len(datos)
Get #1, n_proc, datos
Close #1
datos.Titulo = txtTituloProyecto.Text
datos.Nombre = txtNombreEmpresa.Text
datos.Encargado = txtEncargadoProyecto.Text
datos.Fecha = txtFecha.Text
datos.id = datos.id + 1
datos.O = "N"
datos.salto = vbCrLf
Open App.Path & "/Tablas/InfoGeneral.dat" For Random As #1 Len = Len(datos)
Put #1, n_proc, datos
Close #1
tabstrip1.Enabled = True
Directorio = DatosGenerales.txtTituloProyecto.Text
Kill App.Path & "/" & Directorio & "/*.*"
Kill App.Path & "/" & Directorio & "/Datos/*.*"
Kill App.Path & "/" & Directorio & "/Resultados/*.*"
End Sub
GananciaAparatos - 1
Private
Dim
Dim
Dim
Sub Command1_Click()
datos As aparatos2
i As Integer
n_list As Long
"ID",
"PK",
"ta",
"fu",
"fr",
"fl",
"ID", 0
"PK", 0
"Aparatos", 2500, 2
"Fu", 500, 2
"Fr", 500, 2
"Fl", 500, 2
GananciaAparatos - 2
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView2.ListItems.Clear
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ListItems.Clear
"ID",
"PK",
"ta",
"fu",
"fr",
"fl",
"ID", 0
"PK", 0
"Aparatos", 2500, 2
"Fu", 500, 2
"Fr", 500, 2
"Fl", 500, 2
"ID",
"PK",
"ta",
"fu",
"fr",
"fl",
"fm",
"fo",
"fp",
"fq",
"ID", 0
"PK", 0
"
Aparatos", 2500, 0
"Factor", 1700, 2
"Tamao", 900, 2
"Potencia", 800, 2
"Sensible", 700, 2
"Latente", 700, 2
"Total", 700, 2
"Sensible", 700, 2
End Sub
Private Sub TabStrip1_Click()
Dim itmX As ListItem
Frame1.Visible = True
If tabstrip1.SelectedItem = "Condiciones" Then
Frame1.Visible = False
Frame2.Visible = False
End If
If tabstrip1.SelectedItem = "Aparatos de Cocina 1" Then
Dim datos2 As aparatos1
Frame1.Visible = True
Frame2.Visible = False
Open App.Path & "/Tablas/Tabla1Aparatos.cfl" For Random Access Read As #1 Len = Len(datos2)
i = 0
Do While Not EOF(1)
Get #1, , datos2
i = i + 1
If UCase(Left(datos2.Comb, 1)) = "E" Then
Set itmX = ListView1.ListItems.Add(1, , datos2.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos2.Aparato)
itmX.SubItems(3) = Trim(datos2.Fu)
itmX.SubItems(4) = Trim(datos2.Fr)
itmX.SubItems(5) = Trim(datos2.Fl)
Set itmX = Nothing
End If
Loop
Close #1
Open App.Path & "/Tablas/Tabla1Aparatos.cfl" For Random Access Read As #1 Len = Len(datos2)
i = 0
Do While Not EOF(1)
Get #1, , datos2
i = i + 1
If UCase(Left(datos2.Comb, 1)) = "G" Then
Set itmX = ListView2.ListItems.Add(1, , datos2.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos2.Aparato)
itmX.SubItems(3) = Trim(datos2.Fu)
itmX.SubItems(4) = Trim(datos2.Fr)
itmX.SubItems(5) = Trim(datos2.Fl)
Set itmX = Nothing
End If
Loop
Close #1
End If
If tabstrip1.SelectedItem = "Aparatos de Cocina 2" Then
GananciaAparatos - 3
Dim datos As aparatos2
Frame2.Visible = True
Frame1.Visible = False
Open App.Path & "/Tablas/Tabla2Aparatos.cfl" For Random Access Read As #1 Len = Len(datos)
i = 0
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.O, 1)) = "O" Then
Set itmX = ListView3.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Aparato)
itmX.SubItems(3) = Trim(datos.Factor)
itmX.SubItems(4) = Trim(datos.Tamao)
itmX.SubItems(5) = Trim(datos.Tasa)
itmX.SubItems(6) = Trim(datos.sensAp)
itmX.SubItems(7) = Trim(datos.Latente)
itmX.SubItems(8) = Trim(datos.Total)
itmX.SubItems(9) = Trim(datos.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.Text = "" Or Text10.Text = "" Or Text11.Text = "" Then
Text12.Text = ""
Else
Text12.Text = Text9.Text * Text10.Text * Text11.Text
Text13.Text = Text9.Text - Text12.Text
End If
End Sub
Campana
Inicio - 1
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load()
tabstrip1.Tabs.Item(1).Selected = True
End Sub
Private Sub TabStrip1_Click()
Dim Seleccion As String
If tabstrip1.SelectedItem = "Datos Generales" Then
DatosGenerales.Show
Me.Hide
tabstrip1.Tabs.Item(1).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones Exteriores" Then
CondicionesExteriores.Show
Me.Hide
tabstrip1.Tabs.Item(1).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de la(s) UMA(s)" Then
CondicionesUma.Show
Me.Hide
tabstrip1.Tabs.Item(1).Selected = False
End If
If tabstrip1.SelectedItem = "Condiciones de Ambiente(s)" Then
CondicionesOficina.Show
Me.Hide
tabstrip1.Tabs.Item(1).Selected = False
End If
If tabstrip1.SelectedItem = "Cargas" Then
Cargas.Show
Me.Hide
tabstrip1.Tabs.Item(1).Selected = False
End If
End Sub
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
Module1 - 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
Tamao 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, , 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, , datos
i = i + 1
Loop
Close #1
Module1 - 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, , 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, , 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, , 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, , 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
lenfile7 = i
End Function
Public Function lenfile8(ruta) As Long
Dim result As Us
Module1 - 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, , result
i = i + 1
Loop
Close #1
lenfile8 = i
End Function
Public Function Log10(numero As Double) As Double
Log10 = Log(numero) / 2.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
MotoresElectricos - 1
Private
Dim
Dim
Dim
Sub Command1_Click()
datos As Motores
i As Integer
n_list As Long
MotoresElectricos - 2
Close #1
End Sub
Private Sub ListView1_dblclick()
Dim datos As Motores
Open App.Path & "/Tablas/TablaMotores.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView1.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
Cargas.txtPotenciaEquipos.Text = Trim(datos.kW) * 1000
Cargas.txtEficienciaEquipos.Text = Trim(datos.eficiencia)
A = Trim(datos.A)
B = Trim(datos.B)
C = Trim(datos.C)
Me.Hide
Cargas.Show
End Sub
NormasVent - 1
Dim datos As ventilac
Private Sub Form_Load()
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "ciu", "Aplicacion", 2000, 2
ListView1.ColumnHeaders.Add , "en", "Ocupacin", 1100, 2
ListView1.ColumnHeaders.Add , "fe", "L/(s*persona)", 1100, 2
ListView2.ColumnHeaders.Clear
ListView2.ColumnHeaders.Add , "ID", "ID", 0
ListView2.ColumnHeaders.Add , "PK", "PK", 0
ListView2.ColumnHeaders.Add , "ciu", "Aplicacion", 2000, 2
ListView2.ColumnHeaders.Add , "en", "Ocupacin", 1100, 2
ListView2.ColumnHeaders.Add , "fe", "L/(s*m^2)", 1100, 2
ListView1.ListItems.Clear
ListView2.ListItems.Clear
i = 0
Open App.Path & "/Tablas/TablaVentilac.cfl" For Random Access Read As #1 Len = Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.Sup, 1)) = "N" Then
Set itmX = ListView1.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Aplicacion)
itmX.SubItems(3) = Trim(datos.Ocupacion)
itmX.SubItems(4) = Trim(datos.lps)
Set itmX = Nothing
End If
Loop
Close #1
Open App.Path & "/Tablas/TablaVentilac.cfl" For Random Access Read As #1 Len = Len(datos)
i = 0
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.Sup, 1)) = "C" Then
Set itmX = ListView2.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.Aplicacion)
itmX.SubItems(3) = Trim(datos.Ocupacion)
itmX.SubItems(4) = Trim(datos.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.Path & "/Tablas/TablaVentilac.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView1.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
ventilac = Trim(datos.lps) * Text1.Text
InfIl = ventilac * 0.15
CondicionesOficina.txtVentof.Text = ventilac
CondicionesOficina.txtInfil.Text = InfIl
Me.Hide
End Sub
Private Sub ListView2_Dblclick()
Dim ventilac As Double
Dim InfIl As Double
Open App.Path & "/Tablas/TablaVentilac.cfl" For Binary Access Read As #1 Len = Len(datos)
Get #1, (ListView2.SelectedItem.SubItems(1) * Len(datos)) + 1, datos
Close #1
ventilac = Trim(datos.lps) * Text2.Text
InfIl = ventilac * 0.1
CondicionesOficina.txtVentof.Text = ventilac
NormasVent - 2
CondicionesOficina.txtInfil.Text = InfIl
Me.Hide
End Sub
Resultados - 1
Resultados - 2
u = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len = Len(dato
s)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If UCase(Left(datos.TVar, 1)) = "U" Then
Uma(u) = Trim(datos.nombuma)
UmaIgual(u) = datos.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, Meses, 9) * 1
varequismas1 = SHGFhm(siguiente, Meses, 9) * 1
If varequis > varequismas1 Then
inicios(Meses) = horas + 1
End If
Next horas
Next Meses
If ExisteArch(App.Path & "/Tablas/SHGF/SHGF_LAT" + Trim(L) + ".shg") = False Then Call TablasSHGF
Dim Porcentaje(1 To 24) As Double
Porcentaje(1) = 0.87: Porcentaje(2) = 0.92: Porcentaje(3) = 0.96: Porcentaje(4) = 0.99
Porcentaje(5) = 1: Porcentaje(6) = 0.98: Porcentaje(7) = 0.93: Porcentaje(8) = 0.84
Porcentaje(9) = 0.71: Porcentaje(10) = 0.56: Porcentaje(11) = 0.39: Porcentaje(12) = 0.23
Porcentaje(13) = 0.11: Porcentaje(14) = 0.03: Porcentaje(15) = 0: Porcentaje(16) = 0.03
Porcentaje(17) = 0.1: Porcentaje(18) = 0.21: Porcentaje(19) = 0.34: Porcentaje(20) = 0.47
Porcentaje(21) = 0.58: Porcentaje(22) = 0.48: Porcentaje(23) = 0.76: Porcentaje(24) = 0.82
Variac = CondicionesExteriores.Text1.Text
TempMax = CondicionesExteriores.txtTexts.Text
For Mes = 1 To 12
For Hora = 1 To 24
TempMaxExternasAnual(Hora, Mes) = TempMax - Porcentaje(Hora) * Variac
Next Hora
Next Mes
Resultados - 3
For Meses = 1 To 12
comienzo = inicios(Meses)
finali = 24 - comienzo
previa = comienzo - 1
posti = finali + 1
For orient = 1 To 9
IDT(Meses, orient) = 0
Temp = 0
If orient = 9 Then i = 3.9 Else i = 0
For Hora = 1 To previa
SolTempCl(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + i
SolTempOs(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + i
Temp = Temp + TempMaxExternasAnual(Hora, Meses)
Next Hora
For Hora = comienzo To finali
SolTempCl(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + 0.026 * SHGFh
m(Hora, Meses, orient) * 1.15 + i
SolTempOs(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + 0.052 * SHGFh
m(Hora, Meses, orient) * 1.15 + i
IDT(Meses, orient) = IDT(Meses, orient) + SHGFhm(Hora, Meses, orient)
Temp = Temp + TempMaxExternasAnual(Hora, Meses)
Next Hora
For Hora = posti To 24
SolTempCl(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + i
SolTempOs(Hora, Meses, orient) = TempMaxExternasAnual(Hora, Meses) + i
Temp = Temp + TempMaxExternasAnual(Hora, Meses)
Next Hora
AvgSolCl(Meses, orient) = (Temp / 24) + 0.026 * (IDT(Meses, orient) / 24) + i
AvgSolOs(Meses, orient) = (Temp / 24) + 0.052 * (IDT(Meses, orient) / 24) + i
Next orient
Next Meses
i = 0
k = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.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.TVar, 1)) = "O" Then
Ofi(k) = datos.nombamb
UmaOfi(k) = Trim(datos.UmaAt)
OficinasIgual(k) = datos.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.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi 1))) + ".rst"
If ExisteArch(nombrearchivo) = True Then Kill App.Path & "/" & Trim(Directorio) & "/Resultados
/" + "Ofic" + Trim(Ofi((nOfi - 1))) + ".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, L) = 0
QLpersonas(0, L) = 0
QSCpersonas(0, L) = 0
QSRpersonas(0, L) = 0
Qequipos(0, L) = 0
QRluces(0, L) = 0
QCluces(0, L) = 0
Qluces(0, L) = 0
QLaparatos(0, L) = 0
QSaparatos(0, L) = 0
Qaparatos(0, L) = 0
Resultados - 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.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len
= Len(datos)
Do While Not EOF(1)
Get #1, , datos
i = i + 1
If Ofi((nOfi - 1)) = datos.Ofcorr Then
If UCase(Left(datos.tcarga, 13)) = "PERSONAS
" Then
CarPersonas = 1
lhg = Trim(datos.lhg)
shg = Trim(datos.shg)
ini = Trim(datos.inicio)
dur = Trim(datos.duracion)
cantp = Trim(datos.cantpersonas)
ini = ini * 1
dur = dur * 1 - 1
fin = ini + dur
For j = 1 To 24
If j < ini Then
QSpersonas(0, j) = 0 + QSpersonas(0, j)
QLpersonas(0, j) = 0 + QLpersonas(0, j)
QSCpersonas(0, j) = 0 + QSCpersonas(0, j)
QSRpersonas(0, j) = 0 + QSRpersonas(0, j)
N = N + 1
End If
If j >= ini And j <= fin Then
QSpersonas(0, j) = shg * cantp + QSpersonas(0, j)
QLpersonas(0, j) = lhg * cantp + QLpersonas(0, j)
QSCpersonas(0, j) = shg * cantp * 0.67 + QSCpersonas(0, j)
m = m + 1
End If
If j >= ini + 4 And j <= fin Then
QSRpersonas(0, j) = shg * cantp * 0.33 + QSRpersonas(0, j)
End If
If j > fin Then
QSpersonas(0, j) = 0 + QSpersonas(0, j)
QLpersonas(0, j) = 0 + QLpersonas(0, j)
QSCpersonas(0, j) = 0 + QSCpersonas(0, j)
QSRpersonas(0, j) = 0 + QSRpersonas(0, j)
L = L + 1
End If
If j = ini Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.2 * 0.33 * shg * can
tp
If j = ini + 1 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.4 * 0.33 * shg *
cantp
If j = ini + 2 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.6 * 0.33 * shg *
cantp
If j = ini + 3 Then QSRpersonas(0, j) = QSRpersonas(0, j) + 0.8 * 0.33 * shg *
cantp
If j = fin Then QSRpersonas(0, j) = 0.8 * 0.33 * shg * cantp + QSRpersonas(0,
j)
If j = fin + 1 Then QSRpersonas(0, j) = 0.6 * 0.33 * shg * cantp + QSRpersonas
(0, j)
If j = fin + 2 Then QSRpersonas(0, j) = 0.4 * 0.33 * shg * cantp + QSRpersonas
(0, j)
If j = fin + 3 Then QSRpersonas(0, j) = 0.2 * 0.33 * shg * cantp + QSRpersonas
(0, j)
totalS = totalS + QSpersonas(0, j)
totalL = totalL + QLpersonas(0, j)
totalSc = totalSc + QSCpersonas(0, j)
totalSr = totalSr + QSRpersonas(0, j)
Qpersonas(0, j) = Qpersonas(0, j) + QSpersonas(0, j) + QLpersonas(0, j)
Next j
End If
If UCase(Left(datos.tcarga, 13)) = "EQUIPOTENCIA " Then
CarEQuip = 1
Resultados - 5
qequi = Trim(datos.Tcolocacion)
ini = Trim(datos.inicio)
dur = Trim(datos.duracion)
Canteq = Trim(datos.IgEquipos)
uso = Trim(datos.uso)
ini = ini * 1
dur = dur * 1 - 1
fin = ini + dur
qequi = qequi * 1
For j = 1 To 24
If j < ini Then
Qequipos(0, j) = 0 + Qequipos(0, j)
N = N + 1
End If
If j >= ini And j <= fin Then
Qequipos(0, j) = qequi * uso * Canteq + Qequipos(0, j)
m = m + 1
End If
If j > fin Then
Qequipos(0, j) = 0 + Qequipos(0, j)
L = L + 1
End If
totalEq = totalEq + Qequipos(0, j)
Next j
End If
If UCase(Left(datos.tcarga, 13)) = "LUCES
" Then
CarLuces = 1
Facuso = Trim(datos.uso)
poten = Trim(datos.Potluces)
Facbal = Trim(datos.coefdis)
ini = Trim(datos.inicio)
dur = Trim(datos.duracion)
kind = Trim(datos.tipoluces)
ini = ini * 1
dur = dur * 1 - 1
fin = ini + dur
q = 0
m = 0
L = 0
N = 0
For j = 1 To 24
If j < ini Then
QRluces(0, j) = 0 + QRluces(0, j)
QCluces(0, j) = 0 + QCluces(0, j)
q = q + 1
End If
If j >= ini And j <= fin Then
If kind = "Fluorescente" Then
QRluces(0, j) = QRluces(0, j) + (poten * (Facuso / 100) * Facbal * 0.5
)
Resultados - 6
End If
If UCase(Left(datos.tcarga, 13)) = "APARATOS
" Then
CarAparat = 1
sensible = Trim(datos.shg)
Latente = Trim(datos.lhg)
Ig = Trim(datos.Igaparatos)
Campana = Trim(datos.Campana)
ini = Trim(datos.inicio)
dur = Trim(datos.duracion)
ini = ini * 1
dur = dur * 1 - 1
fin = ini + dur
For j = 1 To 24
If j < ini Then
QLaparatos(0, j) = 0 + QLaparatos(0, j)
QSaparatos(0, j) = 0 + QSaparatos(0, j)
q = q + 1
End If
If j >= ini And j <= fin Then
QSaparatos(0, j) = sensible * 1 * Ig + QSaparatos(0, j)
If Campana = "SIN" Then
QLaparatos(0, j) = QLaparatos(0, j) + Latente * 1 * Ig
m = m + 1
Else
QLaparatos(0, j) = 0 + QLaparatos(0, j)
L = L + 1
End If
End If
If j > fin Then
QLaparatos(0, j) = 0 + QLaparatos(0, j)
QSaparatos(0, j) = 0 + QSaparatos(0, j)
N = N + 1
End If
totallapara = totallapara + QLaparatos(0, j)
totalsapara = totalsapara + QSaparatos(0, j)
Qaparatos(0, j) = QLaparatos(0, j) + QSaparatos(0, j)
Next j
totalapara = totallapara + totalsapara
End If
If UCase(Left(datos.tcarga, 13)) = "PARTICION
" Or UCase(Left(datos.tcarga, 13)) =
"TECHO INTERNO" Or UCase(Left(datos.tcarga, 13)) = "PISO
" Then
Nombre = Trim(datos.tcarga)
Ucoef = Trim(datos.Ucoef)
area = Trim(datos.area)
tady = Trim(datos.TAdyacente)
tofi = Trim(datos.Tso)
IGUALES = Trim(datos.IgPart)
If Nombre = "PARTICION" Then
CaRPArtic = 1
particion = IGUALES * area * Ucoef * (tady * 1 - tofi * 1)
Tparticion = particion * 24
q = q + 1
End If
If Nombre = "PISO" Then
CarPiso = 1
Piso = IGUALES * area * Ucoef * (tady * 1 - tofi * 1)
Tpiso = Piso * 24
End If
If Nombre = "TECHO INTERNO" Then
CArTechint = 1
TechoInt = IGUALES * area * Ucoef * (tady * 1 - tofi * 1)
TTechoInt = TechoInt * 24
N = N + 1
End If
End If
If UCase(Left(datos.tcarga, 13)) = "VIDRIO
" Then
CARVid = 1
area = Trim(datos.area)
Ucoef = Trim(datos.Ucoef)
Scoef = Trim(datos.Atenuacion)
Tempof = Trim(datos.Tso)
Resultados - 7
TemExt = Trim(datos.Textd)
OrientacionV = Trim(datos.orientacion)
IgualVid = Trim(datos.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.cboAnalisis.ListIndex = 0 Then
For Meses = 1 To 12
comienzo = inicios(Meses)
finali = 24 - comienzo
previa = comienzo - 1
posti = finali + 1
Tsolar = 0: Tconvid = 0
For horas = 1 To previa
Solar(horas, Meses) = 0
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tsolar = Tsolar + Solar(horas, Meses)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Next horas
For horas = comienzo To finali
Solar(horas, Meses) = IgualVid * area * Scoef * SHGFhm(horas, Meses, o
ri)
Tsolar = Tsolar + Solar(horas, Meses)
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Next horas
For horas = posti To 24
Solar(horas, Meses) = 0
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tsolar = Tsolar + Solar(horas, Meses)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Next horas
Tconvidm(Meses) = Tconvid
TSolarm(Meses) = Tsolar
Next Meses
Else
Meses = CondicionesExteriores.cboAnalisis.ListIndex
comienzo = inicios(Meses)
finali = 24 - comienzo
previa = comienzo - 1
posti = finali + 1
Tsolar = 0: Tconvid = 0
For horas = 1 To previa
Solar(horas, Meses) = 0
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tsolar = Tsolar + Solar(horas, Meses)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Next horas
For horas = comienzo To finali
Solar(horas, Meses) = IgualVid * area * Scoef * SHGFhm(horas, Meses, o
ri)
Tsolar = Tsolar + Solar(horas, Meses)
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Next horas
For horas = posti To 24
Solar(horas, Meses) = 0
ConvectVid(horas, Meses) = IgualVid * Ucoef * area * (TempMaxExternasA
nual(horas, Meses) - Tempof)
Tsolar = Tsolar + Solar(horas, Meses)
Tconvid = Tconvid + ConvectVid(horas, Meses)
Resultados - 8
Next horas
Tconvidm(Meses) = Tconvid
TSolarm(Meses) = Tsolar
End If
End If
If UCase(Left(datos.tcarga, 13)) = "PARED
" Then
CARPared = 1
Ucoef = Trim(datos.Ucoef)
area = Trim(datos.area)
OrientPa = Trim(datos.orientacion)
decrement = Trim(datos.inercia)
Tlag = Trim(datos.fte)
colorP = Trim(datos.color)
TINT = Trim(datos.Tso)
IgualPare = Trim(datos.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.cboAnalisis.ListIndex = 0 Then
For Meses = 1 To 12
QparTotal(Meses) = 0
For Hora = 1 To 24
Delay = Round((Hora - Tlag), 0)
If Delay <= 0 Then Delay = Round(24 + Delay)
If colorP = 0.026 Then
Tdel = SolTempCl(Delay, Meses, orient)
TETD(Hora, Meses) = AvgSolCl(Meses, orient) - TINT + decrement *
AvgSolCl(Meses, orient))
Else
Tdel = SolTempOs(Delay, Meses, orient)
TETD(Hora, Meses) = AvgSolOs(Meses, orient) - TINT + decrement *
AvgSolOs(Meses, orient))
End If
QParedes(Hora, Meses) = Ucoef * TETD(Hora, Meses) * area * IgualPare
QparTotal(Meses) = QparTotal(Meses) + QParedes(Hora, Meses)
Next Hora
Next Meses
Else
Meses = CondicionesExteriores.cboAnalisis.ListIndex
QparTotal(Meses) = 0
For Hora = 1 To 24
Delay = Round((Hora - Tlag), 0)
If Delay <= 0 Then Delay = Round(24 + Delay)
If colorP = 0.026 Then
Tdel = SolTempCl(Delay, Meses, orient)
TETD(Hora, Meses) = AvgSolCl(Meses, orient) - TINT + decrement *
AvgSolCl(Meses, orient))
Else
Tdel = SolTempOs(Delay, Meses, orient)
TETD(Hora, Meses) = AvgSolOs(Meses, orient) - TINT + decrement *
AvgSolOs(Meses, orient))
End If
QParedes(Hora, Meses) = Ucoef * TETD(Hora, Meses) * area * IgualPare
QparTotal(Meses) = QparTotal(Meses) + QParedes(Hora, Meses)
Next Hora
End If
End If
If UCase(Left(datos.tcarga, 13)) = "TECHO
" Then
CARTecho = 1
Ucoef = Trim(datos.Ucoef)
areaT = Trim(datos.area)
techcoef = Trim(datos.color)
TimLag = Trim(datos.fte)
Decrm = Trim(datos.inercia)
cielor = Trim(datos.cielo)
(Tdel
(Tdel
(Tdel
(Tdel
Resultados - 9
Tempi = Trim(datos.Tso)
If CondicionesExteriores.cboAnalisis.ListIndex = 0 Then
For Meses = 1 To 12
QTechTotal(Meses) = 0
For Hora = 1 To 24
Delay = Round((Hora - TimLag), 0)
If Delay <= 0 Then Delay = Round(24 + Delay)
If techcoef = 0.026 Then
TeDelT = SolTempCl(Delay, Meses, 9)
TETDT(Hora, Meses) = AvgSolCl(Meses, 9) - Tempi + Decrm * (TeDelT - Av
gSolCl(Meses, 9))
Else
End If
QTechos(Hora, Meses) = Ucoef * areaT * TETDT(Hora, Meses)
QTechTotal(Meses) = QTechTotal(Meses) + QTechos(Hora, Meses)
Next Hora
Next Meses
Else
Meses = CondicionesExteriores.cboAnalisis.ListIndex
QTechTotal(Meses) = 0
For Hora = 1 To 24
Delay = Round((Hora - TimLag), 0)
If Delay <= 0 Then Delay = Round(24 + Delay)
If techcoef = 0.026 Then
TeDelT = SolTempCl(Delay, Meses, 9)
TETDT(Hora, Meses) = AvgSolCl(Meses, 9) - Tempi + Decrm * (TeDelT - Av
gSolCl(Meses, 9))
Else
Loop
Close #1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Len =
Len(datos)
Do While Not EOF(1)
Get #1, , datos
If Ofi((nOfi - 1)) = datos.nombamb Then
Qvent = Trim(datos.Ventof)
Qinfil = Trim(datos.InfIl)
Tino = Trim(datos.Tso)
Wino = Trim(datos.Hro) / 100
WEXT = Trim(datos.Hrext) / 100
CaudalAireOfi(nOfi) = Qvent * 1 + Qinfil * 1
Hparedof = Trim(datos.Hpared)
arOfi = Trim(datos.areaof)
VolOfi(nOfi) = arOfi * Hparedof
QSSUMOF(nOfi) = 0
If CondicionesExteriores.cboAnalisis.ListIndex = 0 Then
For Mes = 1 To 12
For Hora = 1 To 24
QsensVent(Hora, Mes) = 1.23 * Qvent * (TempMaxExternasAnual(Hora, Mes) - Tino * 1)
QsensInfil(Hora, Mes) = 1.23 * Qinfil * (TempMaxExternasAnual(Hora, Mes) - Tino *
1)
QLatVent(Hora, Mes) = 3010 * Qvent * (WEXT - Wino)
QLatInfil(Hora, Mes) = 3010 * Qinfil * (WEXT - Wino)
QTVent(Hora, Mes) = QsensVent(Hora, Mes) + QLatVent(Hora, Mes)
QTInfil(Hora, Mes) = QsensInfil(Hora, Mes) + QLatInfil(Hora, Mes)
QsensVent(25, Mes) = QsensVent(25, Mes) + QsensVent(Hora, Mes)
QLatVent(25, Mes) = QLatVent(25, Mes) + QLatVent(Hora, Mes)
QsensInfil(25, Mes) = QsensInfil(25, Mes) + QsensInfil(Hora, Mes)
Resultados - 10
Resultados - 11
".rst"
- 1)))
".rst"
- 1)))
result.t2 = QSpersonas(0, 2)
result.t3 = QSpersonas(0, 3)
result.t4 = QSpersonas(0, 4)
result.t5 = QSpersonas(0, 5)
result.t6 = QSpersonas(0, 6)
result.t7 = QSpersonas(0, 7)
result.t8 = QSpersonas(0, 8)
result.t9 = QSpersonas(0, 9)
result.t10 = QSpersonas(0, 10)
result.t11 = QSpersonas(0, 11)
result.t12 = QSpersonas(0, 12)
result.t13 = QSpersonas(0, 13)
result.t14 = QSpersonas(0, 14)
result.t15 = QSpersonas(0, 15)
result.t16 = QSpersonas(0, 16)
result.t17 = QSpersonas(0, 17)
result.t18 = QSpersonas(0, 18)
result.t19 = QSpersonas(0, 19)
result.t20 = QSpersonas(0, 20)
result.t21 = QSpersonas(0, 21)
result.t22 = QSpersonas(0, 22)
result.t23 = QSpersonas(0, 23)
result.t24 = QSpersonas(0, 24)
result.tTotal = totalS
result.salto = vbCrLf
result.id = 0
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "L"
result.Nombre = "Latente Personas"
result.t1 = QLpersonas(0, 1)
result.t2 = QLpersonas(0, 2)
result.t3 = QLpersonas(0, 3)
result.t4 = QLpersonas(0, 4)
result.t5 = QLpersonas(0, 5)
result.t6 = QLpersonas(0, 6)
result.t7 = QLpersonas(0, 7)
result.t8 = QLpersonas(0, 8)
result.t9 = QLpersonas(0, 9)
result.t10 = QLpersonas(0, 10)
result.t11 = QLpersonas(0, 11)
result.t12 = QLpersonas(0, 12)
result.t13 = QLpersonas(0, 13)
result.t14 = QLpersonas(0, 14)
result.t15 = QLpersonas(0, 15)
result.t16 = QLpersonas(0, 16)
result.t17 = QLpersonas(0, 17)
result.t18 = QLpersonas(0, 18)
result.t19 = QLpersonas(0, 19)
result.t20 = QLpersonas(0, 20)
result.t21 = QLpersonas(0, 21)
result.t22 = QLpersonas(0, 22)
result.t23 = QLpersonas(0, 23)
result.t24 = QLpersonas(0, 24)
result.tTotal = totalL
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Sensible Convectiva Personas"
result.t1 = QSCpersonas(0, 1)
result.t2 = QSCpersonas(0, 2)
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 12
".rst"
- 1)))
".rst"
- 1)))
result.t3 = QSCpersonas(0, 3)
result.t4 = QSCpersonas(0, 4)
result.t5 = QSCpersonas(0, 5)
result.t6 = QSCpersonas(0, 6)
result.t7 = QSCpersonas(0, 7)
result.t8 = QSCpersonas(0, 8)
result.t9 = QSCpersonas(0, 9)
result.t10 = QSCpersonas(0, 10)
result.t11 = QSCpersonas(0, 11)
result.t12 = QSCpersonas(0, 12)
result.t13 = QSCpersonas(0, 13)
result.t14 = QSCpersonas(0, 14)
result.t15 = QSCpersonas(0, 15)
result.t16 = QSCpersonas(0, 16)
result.t17 = QSCpersonas(0, 17)
result.t18 = QSCpersonas(0, 18)
result.t19 = QSCpersonas(0, 19)
result.t20 = QSCpersonas(0, 20)
result.t21 = QSCpersonas(0, 21)
result.t22 = QSCpersonas(0, 22)
result.t23 = QSCpersonas(0, 23)
result.t24 = QSCpersonas(0, 24)
result.tTotal = totalSc
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Sensible Radiacin Personas"
result.t1 = QSRpersonas(0, 1)
result.t2 = QSRpersonas(0, 2)
result.t3 = QSRpersonas(0, 3)
result.t4 = QSRpersonas(0, 4)
result.t5 = QSRpersonas(0, 5)
result.t6 = QSRpersonas(0, 6)
result.t7 = QSRpersonas(0, 7)
result.t8 = QSRpersonas(0, 8)
result.t9 = QSRpersonas(0, 9)
result.t10 = QSRpersonas(0, 10)
result.t11 = QSRpersonas(0, 11)
result.t12 = QSRpersonas(0, 12)
result.t13 = QSRpersonas(0, 13)
result.t14 = QSRpersonas(0, 14)
result.t15 = QSRpersonas(0, 15)
result.t16 = QSRpersonas(0, 16)
result.t17 = QSRpersonas(0, 17)
result.t18 = QSRpersonas(0, 18)
result.t19 = QSRpersonas(0, 19)
result.t20 = QSRpersonas(0, 20)
result.t21 = QSRpersonas(0, 21)
result.t22 = QSRpersonas(0, 22)
result.t23 = QSRpersonas(0, 23)
result.t24 = QSRpersonas(0, 24)
result.tTotal = totalSr
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CarEQuip = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Equipos de Potencia"
result.t1 = Qequipos(0, 1)
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 13
".rst"
- 1)))
".rst"
- 1)))
result.t2 = Qequipos(0, 2)
result.t3 = Qequipos(0, 3)
result.t4 = Qequipos(0, 4)
result.t5 = Qequipos(0, 5)
result.t6 = Qequipos(0, 6)
result.t7 = Qequipos(0, 7)
result.t8 = Qequipos(0, 8)
result.t9 = Qequipos(0, 9)
result.t10 = Qequipos(0, 10)
result.t11 = Qequipos(0, 11)
result.t12 = Qequipos(0, 12)
result.t13 = Qequipos(0, 13)
result.t14 = Qequipos(0, 14)
result.t15 = Qequipos(0, 15)
result.t16 = Qequipos(0, 16)
result.t17 = Qequipos(0, 17)
result.t18 = Qequipos(0, 18)
result.t19 = Qequipos(0, 19)
result.t20 = Qequipos(0, 20)
result.t21 = Qequipos(0, 21)
result.t22 = Qequipos(0, 22)
result.t23 = Qequipos(0, 23)
result.t24 = Qequipos(0, 24)
result.tTotal = totalEq
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CarLuces = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Luces Convectivas"
result.t1 = QCluces(0, 1)
result.t2 = QCluces(0, 2)
result.t3 = QCluces(0, 3)
result.t4 = QCluces(0, 4)
result.t5 = QCluces(0, 5)
result.t6 = QCluces(0, 6)
result.t7 = QCluces(0, 7)
result.t8 = QCluces(0, 8)
result.t9 = QCluces(0, 9)
result.t10 = QCluces(0, 10)
result.t11 = QCluces(0, 11)
result.t12 = QCluces(0, 12)
result.t13 = QCluces(0, 13)
result.t14 = QCluces(0, 14)
result.t15 = QCluces(0, 15)
result.t16 = QCluces(0, 16)
result.t17 = QCluces(0, 17)
result.t18 = QCluces(0, 18)
result.t19 = QCluces(0, 19)
result.t20 = QCluces(0, 20)
result.t21 = QCluces(0, 21)
result.t22 = QCluces(0, 22)
result.t23 = QCluces(0, 23)
result.t24 = QCluces(0, 24)
result.tTotal = totalcluc
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Luces-Radiacin"
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 14
".rst"
- 1)))
".rst"
- 1)))
result.t1 = QRluces(0, 1)
result.t2 = QRluces(0, 2)
result.t3 = QRluces(0, 3)
result.t4 = QRluces(0, 4)
result.t5 = QRluces(0, 5)
result.t6 = QRluces(0, 6)
result.t7 = QRluces(0, 7)
result.t8 = QRluces(0, 8)
result.t9 = QRluces(0, 9)
result.t10 = QRluces(0, 10)
result.t11 = QRluces(0, 11)
result.t12 = QRluces(0, 12)
result.t13 = QRluces(0, 13)
result.t14 = QRluces(0, 14)
result.t15 = QRluces(0, 15)
result.t16 = QRluces(0, 16)
result.t17 = QRluces(0, 17)
result.t18 = QRluces(0, 18)
result.t19 = QRluces(0, 19)
result.t20 = QRluces(0, 20)
result.t21 = QRluces(0, 21)
result.t22 = QRluces(0, 22)
result.t23 = QRluces(0, 23)
result.t24 = QRluces(0, 24)
result.tTotal = totalrluc
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "T"
result.Nombre = "Luces"
result.t1 = Qluces(0, 1)
result.t2 = Qluces(0, 2)
result.t3 = Qluces(0, 3)
result.t4 = Qluces(0, 4)
result.t5 = Qluces(0, 5)
result.t6 = Qluces(0, 6)
result.t7 = Qluces(0, 7)
result.t8 = Qluces(0, 8)
result.t9 = Qluces(0, 9)
result.t10 = Qluces(0, 10)
result.t11 = Qluces(0, 11)
result.t12 = Qluces(0, 12)
result.t13 = Qluces(0, 13)
result.t14 = Qluces(0, 14)
result.t15 = Qluces(0, 15)
result.t16 = Qluces(0, 16)
result.t17 = Qluces(0, 17)
result.t18 = Qluces(0, 18)
result.t19 = Qluces(0, 19)
result.t20 = Qluces(0, 20)
result.t21 = Qluces(0, 21)
result.t22 = Qluces(0, 22)
result.t23 = Qluces(0, 23)
result.t24 = Qluces(0, 24)
result.tTotal = totalluces
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CarAparat = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "L"
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 15
".rst"
- 1)))
".rst"
- 1)))
result.Nombre = "Aparatos-Latente"
result.t1 = QLaparatos(0, 1)
result.t2 = QLaparatos(0, 2)
result.t3 = QLaparatos(0, 3)
result.t4 = QLaparatos(0, 4)
result.t5 = QLaparatos(0, 5)
result.t6 = QLaparatos(0, 6)
result.t7 = QLaparatos(0, 7)
result.t8 = QLaparatos(0, 8)
result.t9 = QLaparatos(0, 9)
result.t10 = QLaparatos(0, 10)
result.t11 = QLaparatos(0, 11)
result.t12 = QLaparatos(0, 12)
result.t13 = QLaparatos(0, 13)
result.t14 = QLaparatos(0, 14)
result.t15 = QLaparatos(0, 15)
result.t16 = QLaparatos(0, 16)
result.t17 = QLaparatos(0, 17)
result.t18 = QLaparatos(0, 18)
result.t19 = QLaparatos(0, 19)
result.t20 = QLaparatos(0, 20)
result.t21 = QLaparatos(0, 21)
result.t22 = QLaparatos(0, 22)
result.t23 = QLaparatos(0, 23)
result.t24 = QLaparatos(0, 24)
result.tTotal = totallapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "S"
result.Nombre = "Aparatos-Sensible"
result.t1 = QSaparatos(0, 1)
result.t2 = QSaparatos(0, 2)
result.t3 = QSaparatos(0, 3)
result.t4 = QSaparatos(0, 4)
result.t5 = QSaparatos(0, 5)
result.t6 = QSaparatos(0, 6)
result.t7 = QSaparatos(0, 7)
result.t8 = QSaparatos(0, 8)
result.t9 = QSaparatos(0, 9)
result.t10 = QSaparatos(0, 10)
result.t11 = QSaparatos(0, 11)
result.t12 = QSaparatos(0, 12)
result.t13 = QSaparatos(0, 13)
result.t14 = QSaparatos(0, 14)
result.t15 = QSaparatos(0, 15)
result.t16 = QSaparatos(0, 16)
result.t17 = QSaparatos(0, 17)
result.t18 = QSaparatos(0, 18)
result.t19 = QSaparatos(0, 19)
result.t20 = QSaparatos(0, 20)
result.t21 = QSaparatos(0, 21)
result.t22 = QSaparatos(0, 22)
result.t23 = QSaparatos(0, 23)
result.t24 = QSaparatos(0, 24)
result.tTotal = totalsapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ ".rst")
result.Comp = "T"
result.Nombre = "Aparatos-Total"
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 16
result.t1 = Qaparatos(0, 1)
result.t2 = Qaparatos(0, 2)
result.t3 = Qaparatos(0, 3)
result.t4 = Qaparatos(0, 4)
result.t5 = Qaparatos(0, 5)
result.t6 = Qaparatos(0, 6)
result.t7 = Qaparatos(0, 7)
result.t8 = Qaparatos(0, 8)
result.t9 = Qaparatos(0, 9)
result.t10 = Qaparatos(0, 10)
result.t11 = Qaparatos(0, 11)
result.t12 = Qaparatos(0, 12)
result.t13 = Qaparatos(0, 13)
result.t14 = Qaparatos(0, 14)
result.t15 = Qaparatos(0, 15)
result.t16 = Qaparatos(0, 16)
result.t17 = Qaparatos(0, 17)
result.t18 = Qaparatos(0, 18)
result.t19 = Qaparatos(0, 19)
result.t20 = Qaparatos(0, 20)
result.t21 = Qaparatos(0, 21)
result.t22 = Qaparatos(0, 22)
result.t23 = Qaparatos(0, 23)
result.t24 = Qaparatos(0, 24)
result.tTotal = totalapara
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CaRPArtic = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
- 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-Particin"
result.t1 = particion
result.t2 = particion
result.t3 = particion
result.t4 = particion
result.t5 = particion
result.t6 = particion
result.t7 = particion
result.t8 = particion
result.t9 = particion
result.t10 = particion
result.t11 = particion
result.t12 = particion
result.t13 = particion
result.t14 = particion
result.t15 = particion
result.t16 = particion
result.t17 = particion
result.t18 = particion
result.t19 = particion
result.t20 = particion
result.t21 = particion
result.t22 = particion
result.t23 = particion
result.t24 = particion
result.tTotal = Tparticion
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CarPiso = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
+ Trim(Ofi((nOfi - 1))) +
+ "Ofic" + Trim(Ofi((nOfi
Resultados - 17
- 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-Piso"
result.t1 = Piso
result.t2 = Piso
result.t3 = Piso
result.t4 = Piso
result.t5 = Piso
result.t6 = Piso
result.t7 = Piso
result.t8 = Piso
result.t9 = Piso
result.t10 = Piso
result.t11 = Piso
result.t12 = Piso
result.t13 = Piso
result.t14 = Piso
result.t15 = Piso
result.t16 = Piso
result.t17 = Piso
result.t18 = Piso
result.t19 = Piso
result.t20 = Piso
result.t21 = Piso
result.t22 = Piso
result.t23 = Piso
result.t24 = Piso
result.tTotal = Tpiso
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) +
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
End If
If CArTechint = 1 Then
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi
- 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-TechoInterno"
result.t1 = TechoInt
result.t2 = TechoInt
result.t3 = TechoInt
result.t4 = TechoInt
result.t5 = TechoInt
result.t6 = TechoInt
result.t7 = TechoInt
result.t8 = TechoInt
result.t9 = TechoInt
result.t10 = TechoInt
result.t11 = TechoInt
result.t12 = TechoInt
result.t13 = TechoInt
result.t14 = TechoInt
result.t15 = TechoInt
result.t16 = TechoInt
result.t17 = TechoInt
result.t18 = TechoInt
result.t19 = TechoInt
result.t20 = TechoInt
result.t21 = TechoInt
result.t22 = TechoInt
result.t23 = TechoInt
result.t24 = TechoInt
result.tTotal = TTechoInt
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((nOfi - 1))) +
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
Resultados - 18
End If
Call IMPRESION
Next nOfi
Call CalculoUE
tabstrip1.Tabs.Clear
For Tabs = 1 To n_ofi
tabstrip1.Tabs.Add(Tabs, , , 0) = "Ofic" & Trim(Ofi((Tabs - 1)))
Next Tabs
ListView1.ListItems.Clear
Dim itmX As ListItem
Dim Total As Double
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , "ID", "ID", 0
ListView1.ColumnHeaders.Add , "PK", "PK", 0
ListView1.ColumnHeaders.Add , "car", "Carga", 2000, 2
ListView1.ColumnHeaders.Add , "u", "01 00", 900, 2
ListView1.ColumnHeaders.Add , "d", "02 00", 900, 2
ListView1.ColumnHeaders.Add , "t", "03 00", 900, 2
ListView1.ColumnHeaders.Add , "c", "04 00", 900, 2
ListView1.ColumnHeaders.Add , "ci", "05 00", 900, 2
ListView1.ColumnHeaders.Add , "s", "06 00", 900, 2
ListView1.ColumnHeaders.Add , "si", "07 00", 900, 2
ListView1.ColumnHeaders.Add , "o", "08 00", 900, 2
ListView1.ColumnHeaders.Add , "n", "09 00", 900, 2
ListView1.ColumnHeaders.Add , "di", "10 00", 900, 2
ListView1.ColumnHeaders.Add , "on", "11 00", 900, 2
ListView1.ColumnHeaders.Add , "do", "12 00", 900, 2
ListView1.ColumnHeaders.Add , "tr", "13 00", 900, 2
ListView1.ColumnHeaders.Add , "ca", "14 00", 900, 2
ListView1.ColumnHeaders.Add , "q", "15 00", 900, 2
ListView1.ColumnHeaders.Add , "die", "16 00", 900, 2
ListView1.ColumnHeaders.Add , "sie", "17 00", 900, 2
ListView1.ColumnHeaders.Add , "oc", "18 00", 900, 2
ListView1.ColumnHeaders.Add , "nue", "19 00", 900, 2
ListView1.ColumnHeaders.Add , "v", "20 00", 900, 2
ListView1.ColumnHeaders.Add , "tiu", "21 00", 900, 2
ListView1.ColumnHeaders.Add , "tid", "22 00", 900, 2
ListView1.ColumnHeaders.Add , "tit", "23 00", 900, 2
ListView1.ColumnHeaders.Add , "cero", "24 00", 900, 2
ListView1.ColumnHeaders.Add , "tot", "TOTAL 24h", 1300, 2
ListView1.ColumnHeaders.Add , "p", "", 100
ListView2.ListItems.Clear
ListView2.ColumnHeaders.Clear
ListView2.ColumnHeaders.Add , "ID", "ID", 0
ListView2.ColumnHeaders.Add , "PK", "PK", 0
ListView2.ColumnHeaders.Add , "car", "Carga", 2000, 2
ListView2.ColumnHeaders.Add , "u", "01 00", 900, 2
ListView2.ColumnHeaders.Add , "d", "02 00", 900, 2
ListView2.ColumnHeaders.Add , "t", "03 00", 900, 2
ListView2.ColumnHeaders.Add , "c", "04 00", 900, 2
ListView2.ColumnHeaders.Add , "ci", "05 00", 900, 2
ListView2.ColumnHeaders.Add , "s", "06 00", 900, 2
ListView2.ColumnHeaders.Add , "si", "07 00", 900, 2
ListView2.ColumnHeaders.Add , "o", "08 00", 900, 2
ListView2.ColumnHeaders.Add , "n", "09 00", 900, 2
ListView2.ColumnHeaders.Add , "di", "10 00", 900, 2
ListView2.ColumnHeaders.Add , "on", "11 00", 900, 2
ListView2.ColumnHeaders.Add , "do", "12 00", 900, 2
ListView2.ColumnHeaders.Add , "tr", "13 00", 900, 2
ListView2.ColumnHeaders.Add , "ca", "14 00", 900, 2
ListView2.ColumnHeaders.Add , "q", "15 00", 900, 2
ListView2.ColumnHeaders.Add , "die", "16 00", 900, 2
ListView2.ColumnHeaders.Add , "sie", "17 00", 900, 2
ListView2.ColumnHeaders.Add , "oc", "18 00", 900, 2
ListView2.ColumnHeaders.Add , "nue", "19 00", 900, 2
ListView2.ColumnHeaders.Add , "v", "20 00", 900, 2
ListView2.ColumnHeaders.Add , "tiu", "21 00", 900, 2
ListView2.ColumnHeaders.Add , "tid", "22 00", 900, 2
ListView2.ColumnHeaders.Add , "tit", "23 00", 900, 2
ListView2.ColumnHeaders.Add , "cero", "24 00", 900, 2
Resultados - 19
ListView2.ColumnHeaders.Add ,
ListView2.ColumnHeaders.Add ,
ListView3.ListItems.Clear
ListView3.ColumnHeaders.Clear
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
ListView3.ColumnHeaders.Add ,
Call TabStrip1_Click
End Sub
Resultados - 20
itmX.SubItems(14) =
itmX.SubItems(15) =
itmX.SubItems(16) =
itmX.SubItems(17) =
itmX.SubItems(18) =
itmX.SubItems(19) =
itmX.SubItems(20) =
itmX.SubItems(21) =
itmX.SubItems(22) =
itmX.SubItems(23) =
itmX.SubItems(24) =
itmX.SubItems(25) =
itmX.SubItems(26) =
itmX.SubItems(27) =
Set itmX = Nothing
End If
Trim(result.t12)
Trim(result.t13)
Trim(result.t14)
Trim(result.t15)
Trim(result.t16)
Trim(result.t17)
Trim(result.t18)
Trim(result.t19)
Trim(result.t20)
Trim(result.t21)
Trim(result.t22)
Trim(result.t23)
Trim(result.t24)
Trim(result.tTotal)
Loop
Close #1
k = 0
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Prueba) + ".rst" For Random Access
Read As #1 Len = Len(result)
Do While Not EOF(1)
Get #1, , result
k = k + 1
If UCase(Left(result.Comp, 1)) = "L" Then
Set itmx2 = ListView2.ListItems.Add(1, , result.id)
itmx2.SubItems(1) = k - 1
itmx2.SubItems(2) = Trim(result.Nombre)
itmx2.SubItems(3) = Trim(result.t1)
itmx2.SubItems(4) = Trim(result.t2)
itmx2.SubItems(5) = Trim(result.t3)
itmx2.SubItems(6) = Trim(result.t4)
itmx2.SubItems(7) = Trim(result.t5)
itmx2.SubItems(8) = Trim(result.t6)
itmx2.SubItems(9) = Trim(result.t7)
itmx2.SubItems(10) = Trim(result.t8)
itmx2.SubItems(11) = Trim(result.t9)
itmx2.SubItems(12) = Trim(result.t10)
itmx2.SubItems(13) = Trim(result.t11)
itmx2.SubItems(14) = Trim(result.t12)
itmx2.SubItems(15) = Trim(result.t13)
itmx2.SubItems(16) = Trim(result.t14)
itmx2.SubItems(17) = Trim(result.t15)
itmx2.SubItems(18) = Trim(result.t16)
itmx2.SubItems(19) = Trim(result.t17)
itmx2.SubItems(20) = Trim(result.t18)
itmx2.SubItems(21) = Trim(result.t19)
itmx2.SubItems(22) = Trim(result.t20)
itmx2.SubItems(23) = Trim(result.t21)
itmx2.SubItems(24) = Trim(result.t22)
itmx2.SubItems(25) = Trim(result.t23)
itmx2.SubItems(26) = Trim(result.t24)
itmx2.SubItems(27) = Trim(result.tTotal)
Set itmx2 = Nothing
End If
Loop
Close #1
L = 0
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + Trim(Prueba) + ".rst" For Random Access
Read As #1 Len = Len(result)
Do While Not EOF(1)
Get #1, , result
L = L + 1
If UCase(Left(result.Comp, 1)) = "T" Then
Set itmX3 = ListView3.ListItems.Add(1, , result.id)
itmX3.SubItems(1) = L - 1
itmX3.SubItems(2) = Trim(result.Nombre)
itmX3.SubItems(3) = Trim(result.t1)
itmX3.SubItems(4) = Trim(result.t2)
itmX3.SubItems(5) = Trim(result.t3)
itmX3.SubItems(6) = Trim(result.t4)
Resultados - 21
itmX3.SubItems(7) = Trim(result.t5)
itmX3.SubItems(8) = Trim(result.t6)
itmX3.SubItems(9) = Trim(result.t7)
itmX3.SubItems(10) = Trim(result.t8)
itmX3.SubItems(11) = Trim(result.t9)
itmX3.SubItems(12) = Trim(result.t10)
itmX3.SubItems(13) = Trim(result.t11)
itmX3.SubItems(14) = Trim(result.t12)
itmX3.SubItems(15) = Trim(result.t13)
itmX3.SubItems(16) = Trim(result.t14)
itmX3.SubItems(17) = Trim(result.t15)
itmX3.SubItems(18) = Trim(result.t16)
itmX3.SubItems(19) = Trim(result.t17)
itmX3.SubItems(20) = Trim(result.t18)
itmX3.SubItems(21) = Trim(result.t19)
itmX3.SubItems(22) = Trim(result.t20)
itmX3.SubItems(23) = Trim(result.t21)
itmX3.SubItems(24) = Trim(result.t22)
itmX3.SubItems(25) = Trim(result.t23)
itmX3.SubItems(26) = Trim(result.t24)
itmX3.SubItems(27) = Trim(result.tTotal)
Set itmX3 = Nothing
End If
Loop
Close #1
ListView1.Sorted = True
ListView1.SortKey = 2
ListView2.Sorted = True
ListView2.SortKey = 2
ListView3.Sorted = True
ListView3.SortKey = 2
End Sub
Function ExisteArch(nombrearchivo As String) As Boolean
On Error Resume Next
ExisteArch = (Dir$(nombrearchivo) <> "")
End Function
Resultados - 22
End If
Next nOfi
For Mes = 1 To 12
For Hora = 1 To 24
SensibleUE(Mes, Hora) = SensibleUE(Mes, Hora) + QSsum(Mes, Hora, nUma) * UmaIgual(nUma
- 1)
LatenteUE(Mes, Hora) = LatenteUE(Mes, Hora) + QLsum(Hora, nUma) * UmaIgual(nUma - 1)
CargaTotalUE(Mes, Hora) = SensibleUE(Mes, Hora) + LatenteUE(Mes, Hora)
If CargaTotalUE(Mes, Hora) > QTSUMAUEMAX Then
QTSUMAUEMAX = CargaTotalUE(Mes, Hora)
MesmaxUE = Mes
HoramaxUE = Hora
End If
Next Hora
Next Mes
Next nUma
PRESION = 101.325
For nUma = 1 To n_uma
IGUALOFI = CantOfiIgual(nUma)
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.txt" For Random Access Read As #1 Len =
Len(datos)
Do While Not EOF(1)
Get #1, , datos
If Uma(nUma - 1) = Trim(datos.nombuma) Then
BYPF = Trim(datos.bpf)
IGUALES = Trim(datos.cantumaig)
Tme = Trim(datos.Tmext)
Text = Trim(datos.Textd)
Tintu = Trim(datos.Tintd)
Hrextu = Trim(datos.Hrext)
Hrintu = Trim(datos.Hrint)
CHGMIN = Trim(datos.chmin)
Retor = Trim(datos.retorno)
Tipo = Trim(datos.Flujo)
Aguas = Trim(datos.Agua)
Tinterna(nUma) = Tintu: Texterna(nUma) = Text
TE = Text + 273.15
TI = Tintu + 273.15
PWSE = FNPWS(TE)
PWE = Hrextu / 100 * PWSE
Wexterna(nUma) = 0.62198 * PWE / (PRESION - PWE)
PWSi = FNPWS(TI)
PWI = Hrintu / 100 * PWSi
Winterna(nUma) = 0.62198 * PWI / (PRESION - PWI)
CPAIRE = 1.006: CPH2O = 1.886: RA = 287.055: TSAT = 10
TSATA = TSAT + 273.15
ENTALLIQ = 42.01
PWSSAT = FNPWS(TSATA)
WSAT = 0.62198001 * PWSSAT / (PRESION - PWSSAT)
W = (Winterna(nUma) - WSAT) / 2
T = (Tinterna(nUma) + TSAT) / 2 + 273.15
VOLESP = RA / PRESION / 1000 * T * (1 + 1.6078 * W)
FCS = (CPAIRE - CPH2O * W) / VOLESP / 3.6
ENTALVAP = 2501 + 1.805 * Tinterna(nUma)
FCL = (ENTALVAP - ENTALLIQ) / VOLESP / 3.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
Resultados - 23
If
If
If
If
Resultados - 24
LPSAGUA = CAPTOTAL / 0.293 / (500 * AGUAINCT * 1.8) * 0.0631
End If
End If
Loop
Close #1
Next nUma
Text1.Text = CAPTOTALUE
Text2.Text = RCAL
End Sub
Resultados - 25
Else
Eds = C(Meses) * EDN * ((1 + CosD(tilt)) / 2)
End If
Edg = EDN * (C(Meses) + SinD(Beta)) * 0.2 * ((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.267 * Absorbido, 0)
SHGFhm(horas, Meses, Posicion) = SHGF
Next Posicion
Next horas
Next Meses
End Sub
Resultados - 26
Resultados - 27
ERSHF = EQSI / (EQSI + EQLI)
N = 0
TADP = TINT - 12
i = 0
Do
i = i + 1
TADPA = TADP + 273.15
PWSADP = FNPWS(TADPA)
WSADP1 = FNWS(PWSADP, PRESION)
WSADP2 = wint - (((1 - ERSHF) / ERSHF) * ((TINT - TADP) / 2459))
If Not Abs(WSADP1 - WSADP2) < WMI Then
If (WSADP1 - WSADP2) < 0 Then
TADP = TADP + 0.02
Else
N = N + 1
If N = 70 Then
WMI = 0.001
N = 0
Else
TADP = TADP - 0.5
If TADP < TMI Then
RCAL = RCAL + 100
r = 1
Exit Do
End If
End If
End If
End If
Loop Until Abs(WSADP1 - WSADP2) < WMI: r = 0
If r = 0 Then
CMH = EQSI / (FCS * (TINT - TADP) * (1 - BYPF))
CHCAL = CMH / VUMA
If CHCAL > CHGMIN Then Exit Do
RCAL = RCAL + 100
End If
Loop
TBSM = ((CMH - AIREUMA) * TINT - AIREUMA * Text) / CMH
MSHF = (Text - TINT) / (WEXT - wint)
WM = WEXT - (Text - TBSM) / MSHF
TBH = 15.56
Do
tbha = 273.15 + TBH
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSMF = TBSM * 1.8 + 32
WMC = FNWM(TBHF, WSBHA, TBSMF)
If WMC >= WM Then
Do
TBH = TBH - 0.11
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSMF = TBSM * 1.8 + 32
WMC = FNWM(TBHF, WSBHA, TBSMF)
Loop Until Abs(WMC - WM) < 0.00004 Or (WMC - WM) <= 0
Exit Do
Else
TBH = TBH + 0.55
End If
Loop
TBHM = TBH
TBSS = TBSM - (TBSM - TADP) * (1 - BYPF)
MAQSHF = (TBSM - TADP) / (WM - WSADP2)
WSAL = WM - (TBSM - TBSS) / MAQSHF
TBH = TADP
Do
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
Resultados - 28
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
If WSALC >= WSAL Then
Do
TBH = TBH - 0.11
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
Loop Until Abs(WSALC - WSAL) < 0.00004 Or (WSALC - WSAL) <= 0
Exit Do
Else
TBH = TBH + 0.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.00005
TMI = TINT - 14.1
QSVENT = FCS * CaudalAireUma(nUma) * (Texterna(nUma) - Tinterna(nUma))
QLVENT = FCL * CaudalAireUma(nUma) * (Wexterna(nUma) - Winterna(nUma))
RCAL = 0
Do
EQSI = QSI + BYPF * QSVENT + RCAL
EQLI = QLI + BYPF * QLVENT
ERSHF = EQSI / (EQSI + EQLI)
N = 0
TADP = TINT - 12
contr = 0
Do
contr = contr + 1
TADPA = TADP + 273.15
PWSADP = FNPWS(TADPA)
WSADP1 = FNWS(PWSADP, PRESION)
WSADP2 = Winterna(nUma) - (1 - ERSHF) / ERSHF * (TINT - TADP) / 2459
If Abs(WSADP1 - WSADP2) < WMI Then
Exit Do
Else
If (WSADP1 - WSADP2) < 0 Then
TADP = TADP + 0.02
Else
N = N + 1
If N >= 70 Then
WMI = 0.001
N = 0
If Abs(WSADP1 - WSADP2) < WMI Then Exit Do
Else
TADP = TADP - 0.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 - 12
End If
End If
End If
End If
Loop
CMH = EQSI / (FCS * (TINT - TADP) * (1 - BYPF))
If Abs(CMH - CaudalAireUma(nUma)) < 0.02 * CMH Then
Resultados - 29
CMH = AIREUMA
CHCAL = CMH / VUMASG(nUma)
If CHCAL >= CHGMIN Then
Exit Do
Else
RCAL = RCAL + 100
End If
Else
If (CMH - AIREUMA) < 0 Then
RCAL = RCAL + 100
Else
AIREUMA = CMH
WMI = 0.00005: TMI = TINT - 14.1
QSVENT = FCS * AIREUMA * (Text - TINT)
QLVENT = FCL * AIREUMA * (Wexterna(nUma) - Winterna(nUma))
End If
End If
Loop
TBSM = Text
TBH = 15.56
Do
tbha = 273.15 + TBH
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSMF = TBSM * 1.8 + 32
WMC = FNWM(TBHF, WSBHA, PRESION)
If WMC >= WM Then Exit Do
TBH = TBH + 0.55
Loop
Do
TBH = TBH - 0.11
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32: TBSMF = TBSM * 1.8 + 32
WMC = FNWM(TBHF, WSBHA, TBSMF)
Loop Until Abs(WMC - WM) < 0.00004 Or (WMC - WM) <= 0
TBHM = TBH
TBSS = TBSM - (tbs - TADP) * (1 - BYPF)
MAQSHF = (TBSM - TADP) / (WM - WSADP2)
WSAL = WM - (TBSM - TBSS) / MAQSHF
TBH = TADP
Do
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 * 32: TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
If WSALC >= WSAL Then Exit Do
TBH = TBH + 0.55
Loop
Do
TBH = TBH - 0.11
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32
TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
Loop Until (WSALC - WSAL) < 0.00004 Or (WSALC - 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.23 * CaudalAireUma(nUma) * (Texterna(nUma) - Tinterna(nUma))
QLVENT = 3010 * CaudalAireUma(nUma) * (Wexterna(nUma) - Winterna(nUma))
Resultados - 30
Resultados - 31
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32: TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
If WSALC >= WSAL Then Exit Do
TBH = TBH + 0.55
Loop
Do
TBH = TBH - 0.11
tbha = TBH + 273.15
PWSBHA = FNPWS(tbha)
WSBHA = FNWS(PWSBHA, PRESION)
TBHF = TBH * 1.8 + 32: TBSSF = TBSS * 1.8 + 32
WSALC = FNWM(TBHF, WSBHA, TBSSF)
Loop Until Abs(WSALC - WSAL) < 0.00003 Or (WSALC - WSAL) <= 0
TBHS = TBH
CAPTOTAL = QTI + RCAL
CAPTOTALUE = CAPTOTALUE + (QTI + RCAL) * IGUALES
RCALUE = RCALUE + RCAL * IGUALES
End Sub
Resultados - 32
Resultados - 33
)) +
nOfi
)) +
nOfi
result.tTotal = QparTotal(Meses)
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
Next Meses
End If
If CARTecho = 1 Then
For Meses = 1 To 12
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
- 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Ganancia_de_Techo-" & AO(Meses)
result.t1 = QTechos(1, Meses)
result.t2 = QTechos(2, Meses)
result.t3 = QTechos(3, Meses)
result.t4 = QTechos(4, Meses)
result.t5 = QTechos(5, Meses)
result.t6 = QTechos(6, Meses)
result.t7 = QTechos(7, Meses)
result.t8 = QTechos(8, Meses)
result.t9 = QTechos(9, Meses)
result.t10 = QTechos(10, Meses)
result.t11 = QTechos(11, Meses)
result.t12 = QTechos(12, Meses)
result.t13 = QTechos(13, Meses)
result.t14 = QTechos(14, Meses)
result.t15 = QTechos(15, Meses)
result.t16 = QTechos(16, Meses)
result.t17 = QTechos(17, Meses)
result.t18 = QTechos(18, Meses)
result.t19 = QTechos(19, Meses)
result.t20 = QTechos(20, Meses)
result.t21 = QTechos(21, Meses)
result.t22 = QTechos(22, Meses)
result.t23 = QTechos(23, Meses)
result.t24 = QTechos(24, Meses)
result.tTotal = QTechTotal(Meses)
result.salto = vbCrLf
result.id = result.id + 1
Open App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic"
".rst" For Random As #1 Len = Len(result)
Put #1, n_carg, result
Close #1
Next Meses
End If
For Mes = 1 To 12
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/"
- 1))) + ".rst")
result.Comp = "S"
result.Nombre = "Sensible-Ventilacion-" & AO(Mes)
result.t1 = QsensVent(1, Mes)
result.t2 = QsensVent(2, Mes)
result.t3 = QsensVent(3, Mes)
result.t4 = QsensVent(4, Mes)
result.t5 = QsensVent(5, Mes)
result.t6 = QsensVent(6, Mes)
result.t7 = QsensVent(7, Mes)
result.t8 = QsensVent(8, Mes)
result.t9 = QsensVent(9, Mes)
result.t10 = QsensVent(10, Mes)
result.t11 = QsensVent(11, Mes)
result.t12 = QsensVent(12, Mes)
result.t13 = QsensVent(13, Mes)
result.t14 = QsensVent(14, Mes)
result.t15 = QsensVent(15, Mes)
result.t16 = QsensVent(16, Mes)
result.t17 = QsensVent(17, Mes)
result.t18 = QsensVent(18, Mes)
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 34
)) + ".rst"
nOfi - 1)))
)) + ".rst"
nOfi - 1)))
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 35
For Meses = 1 To 12
n_carg = lenfile4(App.Path & "/" & Trim(Directorio) & "/Resultados/" + "Ofic" + Trim(Ofi((
nOfi - 1))) + ".rst")
result.Comp = "T"
result.Nombre = "TOTAL_LATENTE--" & AO(Meses)
result.t1 = QLofic(nOfi, Meses, 1)
result.t2 = QLofic(nOfi, Meses, 2)
result.t3 = QLofic(nOfi, Meses, 3)
result.t4 = QLofic(nOfi, Meses, 4)
result.t5 = QLofic(nOfi, Meses, 5)
result.t6 = QLofic(nOfi, Meses, 6)
result.t7 = QLofic(nOfi, Meses, 7)
result.t8 = QLofic(nOfi, Meses, 8)
result.t9 = QLofic(nOfi, Meses, 9)
result.t10 = QLofic(nOfi, Meses, 10)
result.t11 = QLofic(nOfi, Meses, 11)
result.t12 = QLofic(nOfi, Meses, 12)
result.t13 = QLofic(nOfi, Meses, 13)
result.t14 = QLofic(nOfi, Meses, 14)
result.t15 = QLofic(nOfi, Meses, 15)
result.t16 = QLofic(nOfi, Meses, 16)
result.t17 = QLofic(nOfi, Meses, 17)
Resultados - 36
Resultados - 37
)) + ".rst"
nOfi - 1)))
)) + ".rst"
nOfi - 1)))
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 38
)) + ".rst"
nOfi - 1)))
)) + ".rst"
nOfi - 1)))
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 39
)) + ".rst"
nOfi - 1)))
)) + ".rst"
nOfi - 1)))
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 40
)) + ".rst"
nOfi - 1)))
)) + ".rst"
nOfi - 1)))
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
+ Trim(Ofi((nOfi - 1)
+ "Ofic" + Trim(Ofi((
Resultados - 41
Label1
Ganancias SENSIBLES
Ganancias LATENTES
Ganancias TOTALES
Label5
VistaPreviaDatos - 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
Open App.Path & "/" & Trim(Directorio) & "/Datos/Oficinas.txt" For Random Access Read As #1 Len =
Len(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/" + Nombre + ".txt" For Random As #2 Len = Len(da
tos)
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
Open App.Path & "/" & Trim(Directorio) & "/Datos/Cargas.txt" For Random Access Read As #1 Len = Le
n(datos)
Open App.Path & "/" & Trim(Directorio) & "/Datos/" + Nombre + ".txt" For Random As #2 Len = Len(da
tos)
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
End
End Sub
Private Sub cmdVolver_Click()
Me.Hide
VistaPreviaDatos - 2
End Sub
Private Sub Form_Load()
Directorio = DatosGenerales.txtTituloProyecto.Text
ListView5.ColumnHeaders.Clear
ListView5.ColumnHeaders.Add , "ID", "ID", 0
ListView5.ColumnHeaders.Add , "PK", "PK", 0
ListView5.ColumnHeaders.Add , "uma", "UMA", 1700, 2
ListView5.ColumnHeaders.Add , "ofi", "Oficina", 1700, 2
ListView5.ColumnHeaders.Add , "carg", "Carga", 1700, 2
ListView5.ListItems.Clear
Dim itmX As ListItem
i = 0
Open App.Path & "/" & Trim(Directorio) & "/Datos/UMAs.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.Uma, 1)) = "U" And datos.borrado = 1 Then
Set itmX = ListView5.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.nombuma)
itmX.SubItems(3) = "-"
itmX.SubItems(4) = "-"
Set itmX = Nothing
End If
Loop
Close #1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random Access Read As #1 Len = Le
n(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "O" And datos.borrado = 1 Then
Set itmX = ListView5.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.UmaAt)
itmX.SubItems(3) = Trim(datos.nombamb)
itmX.SubItems(4) = "-"
Set itmX = Nothing
End If
Loop
Close #1
Open App.Path & "/" & Trim(Directorio) & "/Datos/Global.txt" For Random Access Read As #1 Len = Le
n(datos)
Do While Not EOF(1)
Get #1, , datos
If UCase(Left(datos.TVar, 1)) = "C" And datos.borrado = 1 Then
Set itmX = ListView5.ListItems.Add(1, , datos.id)
itmX.SubItems(1) = i - 1
itmX.SubItems(2) = Trim(datos.UmaAt)
itmX.SubItems(3) = Trim(datos.Ofcorr)
itmX.SubItems(4) = Trim(datos.tcarga)
Set itmX = Nothing
End If
Loop
Close #1
ListView5.SortKey = 3
ListView5.Sorted = True
End Sub