
    uy)g                         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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_carga_termica_porta_madeira&calcular_carga_insolacao_porta_madeira"calcular_carga_termica_porta_vidro$calcular_carga_insolacao_porta_vidro)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      )C:\grfgraph\atual\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_dxfrW   #   s   
))w
'C
..
C 	

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

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

:67 ?
 
 
 E
*C		fq!wwt}  ,1vcwlCTxo6DDa#gq\RLL8S/L:HH!c'STWZSZI[\ $ !"	
H
O	h-YWaLA !* =HKK)D9JJxOr   c           
      l   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!                         }|D ci c]%  }|j"                  t5        ||||j"                        ' }}|D ci c]#  }|j"                  t7        ||j"                        % }}|j8                  j!                         }t;        |||      \  }}t=        |      }i d|d|d|	d|
d|d	|d
|d|d|d|d|d|d|d|d|d|d|d|i} 	 t?        |||       }!	 tE        |!d      5 }#tC        |#jG                         d      }$d|$d<   d d d        |$S c c}w c c}w c c}w c c}w c c}w c c}w # t@        $ r}"tC        d|" d      cY d }"~"S d }"~"ww xY w# 1 sw Y   $S xY w# tH        $ r tC        dd      cY S t@        $ r}"tC        d |" d      cY d }"~"S d }"~"ww xY w)!N)id)rY   rH   )r%   rH   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_madeiracargas_insolacao_portas_madeiracargas_termo_portas_vidrocargas_insolacao_portas_vidro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   r7   r   umidade_absoluta_interna
parede_setr   
orientacaor	   r
   	vidro_setr   portamadeira_setr   r   portavidro_setr   r   telhado_setr   r   rW   	Exceptionr   openreadFileNotFoundError)%r   
projeto_idambiente_idrH   r%   termicostemperaturas_externasumidade_absoluta_externacalor_latente_aguarZ   r[   r\   r]   r^   paredespareder_   r`   vidrosra   rb   portas_madeiraportarc   rd   portas_vidrore   rf   telhadosrg   rh   ri   rI   rV   efresponses%                                        r   gerar_fluxogramar   G   s   J7G k7KH BH !# 6h6H6H(J]J]^1(2I2I8KbKbcO>H//1H1H(JaJa
 "E')E)EG^" !C*H,M,MOacz!
 !!%%'G F 	8VXW]WhWhii    F 	:66CTCTUU   
 ##%F3I*V\^f3g00..224N $##E 	>z5RZ\a\l\lmm#   # $'#E 	@HXHXYY# $ '
 **..0L "!!E 	<ZPXZ_ZjZjkk!  ! "%!E 	>ueFVFVWW! " %
 ##'')H7OPZ\dfn7o44 8AO7H 	. 	?	
 	"#: 	%&@ 	$%> 	 4 	#$< 	2 	"#: 	&'B 	*+J 	$%> 	()F  	 !6!" 	$%>#$ 	?%H,S*7HhG
`(D!Q#AFFH;LMH.UH*+ " Q #'!%H  SA!EcRRS "  k]fijj `NqcR[^__`s    *L(0(L-"*L2(L7*L<
(M#M 1M9 =!M,	M9 	M)M$M)$M),M61M9 6M9 9N3N3N.(N3.N3)$django.shortcutsr   r   r   r1   networkxr4   rC   projeto.modelsr   ctermica.modelsr   termicos.modelsr   calculotermica.cargasparedesr	   r
   calculotermica.cargasvidrosr   calculotermica.cargasportasr   r   r   r   calculotermica.cargastelhadosr   calculotermica.cargastermicosr   r   r   r   r   r   r   rW   r    r   r   <module>r      sT    D D   	 " $ ) ?  C i"Hj`r   