From 08f83055a6dd055e012506e8077409255c531939 Mon Sep 17 00:00:00 2001 From: Marcos Date: Mon, 13 Jul 2026 19:59:48 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Auto-deploy:=20BrainWind=20atual?= =?UTF-8?q?izado=20em=2013/07/2026=2019:59:48?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/components/WindFlowGrid2D.tsx | 75 ++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/app/src/components/WindFlowGrid2D.tsx b/app/src/components/WindFlowGrid2D.tsx index c13acc4..ea578b2 100644 --- a/app/src/components/WindFlowGrid2D.tsx +++ b/app/src/components/WindFlowGrid2D.tsx @@ -77,14 +77,14 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { // Define quais itens de legenda devem ser exibidos para cada tipo de módulo const getVisibleLegendItems = () => { const hasCpi = ['warehouse'].includes(type); - const hasVortex = ['isolated-roof', 'bar', 'tower', 'vault', 'cylinder', 'sign', 'dynamics'].includes(type); + const hasVortex = ['isolated-roof', 'bar', 'tower', 'vault', 'cylinder', 'sign', 'dynamics', 'piperack'].includes(type); const hasLift = ['bridge', 'isolated-roof'].includes(type); return { wind: true, fast: true, vortex: hasVortex, - vortexSpin: ['cylinder', 'dynamics', 'sign'].includes(type), + vortexSpin: ['cylinder', 'dynamics', 'sign', 'piperack'].includes(type), cpiPos: hasCpi, cpiNeg: hasCpi, lift: hasLift, @@ -98,6 +98,7 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { case 'vault': case 'dome': case 'warehouse': + case 'piperack': return 'Vista Lateral (Corte Transversal)'; case 'cylinder': case 'sign': @@ -693,6 +694,76 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { ); + case 'piperack': + return ( +
+ {/* Caso 1 */} +
+ Pórtico Frontal (Sem Proteção) +
+ + {styleBlock} + + + + + + {/* Esteira turbulenta no sotavento */} + + + + {/* Pórtico Pipe-rack */} + + + {/* Tubo */} + {/* Tubo */} + +
+

Vento limpo atinge o pórtico frontal e suas tubulações com 100% da velocidade. Arrasto máximo (Ca Frontal).

+
+ + {/* Caso 2 */} +
+ Pórticos Traseiros (Sombra Aerodinâmica) +
+ + {styleBlock} + + + + + {/* Esteira turbulenta cobrindo pórticos traseiros */} + + + + + + {/* Pórticos Múltiplos */} + {/* Pórtico 1 */} + + + + + + {/* Pórtico 2 */} + + + + + + {/* Pórtico 3 */} + + + + + + +
+

Pórticos sucessivos ficam imersos na esteira turbulenta do primeiro (Fator de proteção η). A carga neles é drasticamente atenuada.

+
+
+ ); + default: // Caso padrão dinâmico geral (Módulos dinâmicos simples) return (