
    &1g/                         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"dS )    )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                                        }t          j                                        }t	          | d||d          S )Nzfluxograma/fluxograma.html)projetos	ambientes)r   objectsallr   r   )requestr   r   s      %/var/www/html/cag/fluxograma/views.pyindexr      sE    ""$$H $$&&I'7h]f9g9ghhh    c           
         t          j        d          }|                                }t          j                    }|                    dd           |                    ddd|d	         j         d
           |                    dd           |                    di           	                                D ]g\  }}|                    d| ddt          |d                                       |          z
  f| d           |                    dd|            ht          j        |d          }|	                                D ]\  }	\  }
}|j        |	                             dd          }|                    |
|fdddi           |                    |	ddi                              |
dz   |f           |r4|                    |ddi                              |
dz   |dz
  f           |                                D ]/\  }}||         }||         }|                    ||ddi           0d}t'          j        t&          j                            |          d            |                    |           |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%%%JJzv,khz>R>f,k,k,kJlllJJy*%%% ll>266<<>> 8 8
U	

*S**AXn=U8V8V8\8\]`8a8a4a0blqiuiuiu
vvv	

:6667777 
 E
*
*C		 ] ]fq!wt}  ,,1vcwlCCCTxo66DDa#gq\RRR 	]LL8S/L::HH!c'STWZSZI[\\\ !		 B B
H
O	h-YWaLAAAA =HK))D9999JJxOr   c                 `   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                                        }fd|D             }d |D             }|j                                        }t%          |          \  }}|j                                        }fd|D             }d |D             }|j                                        }t+          |          \  }}t-                    }i d|d	|d
|d|	d|
d|d|d|d|d|d|d|d|d|d|d|}	 t/          |||          }n+# t0          $ r}t3          d| d          cY d }~S d }~ww xY w	 t5          |d          5 }t3          |                                d          }d|d<   d d d            n# 1 swxY w Y   |S # t8          $ r t3          d d!          cY S t0          $ r}t3          d"| d          cY d }~S d }~ww xY w)#N)id)rX   rG   )r$   c           	      J    i | ]}|j         t          ||j                    S  )
orientacaor	   ).0parede
projeto_idtermicoss     r   
<dictcomp>z$gerar_fluxograma.<locals>.<dictcomp>^   sA        	8VXW]Whii  r   c                 D    i | ]}|j         t          ||j                   S rZ   )r[   r
   )r\   r]   s     r   r`   z$gerar_fluxograma.<locals>.<dictcomp>b   s;           	:66CTUU     r   c           	      J    i | ]}|j         t          ||j                    S rZ   )r[   r   )r\   portar^   r_   s     r   r`   z$gerar_fluxograma.<locals>.<dictcomp>l   sA        	6z5(TYTdee  r   c                 D    i | ]}|j         t          ||j                   S rZ   )r[   r   )r\   rc   s     r   r`   z$gerar_fluxograma.<locals>.<dictcomp>p   s;        	8@PQQ  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   	vidro_setr   	porta_settelhado_setr   r   rV   	Exceptionr   openreadFileNotFoundError) r   r^   ambiente_idrG   r$   temperaturas_externasumidade_absoluta_externacalor_latente_aguare   rf   rg   rh   ri   paredesrj   rk   vidrosrl   rm   portasrn   ro   telhadosrp   rq   rr   rH   rU   efresponser_   s     `                             @r   gerar_fluxogramar   B   sw   J777G k7KKKH BBBH !# 6h6H(J]^^1(2I8KbccO>H/1H(Ja 
 "E')EG^" " !C*H,MOacz! !
 !%%''G              
 ##%%F3I*V\^f3g3g00 ##%%F          #''))H7OPZ\dfn7o7o44 8AAO7H 	. 	?	
 	"#: 	%&@ 	$%> 	 4 	#$< 	2 	"#: 	2 	"#: 	 !6 	$%>  	?!H(S*7HhGG S S SE!EEcRRRRRRRRRS

`(D!! 	VQ#AFFHH;LMMMH.UH*+	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V  k k k]fijjjjjj ` ` `RqRR[^_________`sf   G+ +
H5HHHI) ')II) I  I) #I $I) )J-	J-J("J-(J-)#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   rZ   r   r   <module>r      sx   D D D D D D D D D D      				 " " " " " " $ $ $ $ $ $ ) ) ) ) ) )        ? > > > > > ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ B B B B B B               i i i" " "H`` `` `` `` ``r   