
    dh/                         d dl mZmZmZ d dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZmZmZmZmZmZ d Z d Z!d Z"y)    )renderget_object_or_404HttpResponseN)Projeto)Ambiente)DadosTermicos)calcular_carga_termica_paredecalcular_carga_insolacao_parede)calcular_cargas_vidros)calcular_cargas_portascalcular_carga_insolacao_portacalcular_carga_termica_porta)calcular_cargas_telhados)!calcular_cargas_termicas_ambiente#calcular_calor_sensivel_ar_exterior"calcular_calor_latente_ar_exteriorcalcular_vazao_ar_infiltracaocalcular_vazao_ar_renovacao calcular_vazao_total_ar_exteriorc                     t         j                  j                         }t        j                  j                         }t	        | d||d      S )Nzfluxograma/fluxograma.html)projetos	ambientes)r   objectsallr   r   )requestr   r   s      0/var/www/html/cagpublico/cag/fluxograma/views.pyindexr      s>    ""$H  $$&I'7h]f9ghh    c           
      z   t        j                  d      }|j                         }t        j                         }|j                  dd       |j                  ddd|d	   j                   d
       |j                  dd       |j                  di       j                         D ]T  \  }}|j                  d| ddt        |d         j                  |      z
  f| d       |j                  dd|        V t        j                  |d      }|j                         D ]  \  }	\  }
}|j                  |	   j                  dd      }|j                  |
|fdddi       |j                  |	ddi      j!                  |
dz   |f       |sl|j                  |ddi      j!                  |
dz   |dz
  f        |j#                         D ]%  \  }}||   }||   }|j%                  ||ddi       ' d}t'        j(                  t&        j*                  j-                  |      d        |j/                  |       |S )!NR2010)
dxfversionr   )r      )posr   )r"   r"   zTemp. Interna: ambienteu   °C)r#   infocargas_termou   Carga Térmica       z Wr#   r%    g      ?color   )radius
dxfattribsheightg333333?)r-   g333333?g?g?z+fluxograma/static/fluxograma/fluxograma.dxfT)exist_ok)ezdxfnew
modelspacenxDiGraphadd_nodetemperatura_internaadd_edgegetitemslistr   get_node_attributesnodes
add_circleadd_textset_placementedgesadd_lineosmakedirspathdirnamesaveas)projetor$   contextodocmspGkeyvaluer#   nodexyr%   
start_nodeend_node	start_posend_posdxf_paths                     r   exportar_fluxograma_dxfrV      s)   
))w
'C
..
C 	

AJJyfJ%JJzvohz>R>f>f=ggj,kJlJJy*% ll>26<<> 8
U	

_SE*AXn=U8V8\8\]`8a4a0blqkrrtiu
v	

:678
 
 
 E
*C		 ]fq!wwt}  ,1vcwlCTxo6DDa#gq\RLL8S/L:HH!c'STWZSZI[\] !"	 B
H
O	h-YWaLAB =HKK)D9JJxOr   c           
      Z   t        t        |      }t        t        ||      }t        t        |      }d }d }d }t	        |j
                  |j                        }	t        |j                  |j                        }
t        |j
                  |j                  |j                  |j                        }t        |||j                  |      }t        |||j                  ||      }|j                  j!                         }|D ci c]%  }|j"                  t%        ||||j"                        ' }}|D ci c]#  }|j"                  t'        ||j"                        % }}|j(                  j!                         }t+        |||      \  }}|j,                  j!                         }|D ci c]%  }|j"                  t/        ||||j"                        ' }}|D ci c]#  }|j"                  t1        ||j"                        % }}|j2                  j!                         }t5        |||      \  }}t7        |      }i d|d|d|	d|
d|d	|d
|d|d|d|d|d|d|d|d|d|}	 t9        |||      }	 t?        |d      5 } t=        | jA                         d      }!d|!d<   d d d        |!S c c}w c c}w c c}w c c}w # t:        $ r}t=        d| d      cY d }~S d }~ww xY w# 1 sw Y   !S xY w# tB        $ r t=        dd      cY S t:        $ r}t=        d| d      cY d }~S d }~ww xY w)N)id)rX   rG   )r$   rG   r$   vazao_infiltracaovazao_renovacaovazao_total_ar_exteriorcalor_sensivel_ar_exteriorcalor_latente_ar_exteriorcargas_termo_paredescargas_insolacao_paredescargas_termo_vidroscargas_insolacao_vidroscargas_termo_portascargas_insolacao_portascargas_termo_telhadoscargas_insolacao_telhadoscargas_ambientez#Erro ao exportar o fluxograma DXF: i  )statusrbzapplication/dxf)content_typez%attachment; filename="fluxograma.dxf"zContent-Dispositionu?   Arquivo DXF não encontrado. Verifique o caminho do diretório.i  z0Erro ao processar o download do fluxograma DXF: )"r   r   r   r   r   	area_piso
pe_direitor   numero_pessoastaxa_renovacaor   r   r6   r   umidade_absoluta_interna
parede_setr   
orientacaor	   r
   	vidro_setr   	porta_setr   r   telhado_setr   r   rV   	Exceptionr   openreadFileNotFoundError)"r   
projeto_idambiente_idrG   r$   termicostemperaturas_externasumidade_absoluta_externacalor_latente_aguarY   rZ   r[   r\   r]   paredespareder^   r_   vidrosr`   ra   portasportarb   rc   telhadosrd   re   rf   rH   rU   efresponses"                                     r   gerar_fluxogramar   B   s   J7G k7KH BH !# 6h6H6H(J]J]^1(2I2I8KbKbcO>H//1H1H(JaJa
 "E')E)EG^" !C*H,M,MOacz!
 !!%%'G  	8VXW]WhWhii    	:66CTCTUU   
 ##%F3I*V\^f3g00 ##%F  	6z5(TYTdTdee   	8@P@PQQ  ##'')H7OPZ\dfn7o44 8AO7H 	. 	?	
 	"#: 	%&@ 	$%> 	 4 	#$< 	2 	"#: 	2 	"#: 	 !6 	$%>  	?!H(S*7HhG
`(D! 	VQ#AFFH;LMH.UH*+	V } F  SA!EcRRS	V  k]fijj `NqcR[^__`sx    *J)0(J."*J3(J8$J= 2K0 >!K#	K0 =	K KK K #K-(K0 -K0 0L*L*L%L*%L*)#django.shortcutsr   r   r   r0   networkxr3   rB   projeto.modelsr   ctermica.modelsr   termicos.modelsr   calculotermica.cargasparedesr	   r
   calculotermica.cargasvidrosr   calculotermica.cargasportasr   r   r   calculotermica.cargastelhadosr   calculotermica.cargastermicosr   r   r   r   r   r   r   rV   r    r   r   <module>r      sM    D D   	 " $ ) ? ~ ~ B i"H``r   