diff --git a/app/src/components/WindFlowGrid2D.tsx b/app/src/components/WindFlowGrid2D.tsx index 8e07ccb..d5baa64 100644 --- a/app/src/components/WindFlowGrid2D.tsx +++ b/app/src/components/WindFlowGrid2D.tsx @@ -28,7 +28,7 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { opacity: 0.85; } .wind-line-fast { - stroke: #0ea5e9; + stroke: #a855f7; stroke-width: 2.2; stroke-dasharray: 6 12; animation: windFlow 0.9s linear infinite; @@ -76,8 +76,8 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { // Define quais itens de legenda devem ser exibidos para cada tipo de módulo const getVisibleLegendItems = () => { - const hasCpi = ['warehouse', 'vault', 'dome', 'cylinder'].includes(type); - const hasVortex = ['cylinder', 'dynamics', 'sign', 'tower'].includes(type); + const hasCpi = ['warehouse'].includes(type); + const hasVortex = ['isolated-roof', 'bar', 'tower', 'vault', 'cylinder', 'sign', 'dynamics'].includes(type); const hasLift = ['bridge', 'isolated-roof'].includes(type); return { @@ -134,9 +134,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Vento Frontal Horizontal (0°) -
+
{styleBlock} @@ -150,9 +150,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Vento Ascendente (+5°) -
+
{styleBlock} {legendDef} @@ -172,9 +172,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 3 */} -
+
Caso C: Vento Descendente (-5°) -
+
{styleBlock} {legendDef} @@ -199,9 +199,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Escoamento Livre por Baixo -
+
{styleBlock} @@ -221,9 +221,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Efeito de Sucção no Bordo de Ataque -
+
{styleBlock} @@ -250,9 +250,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Fluxo Frontal (0°) -
+
{styleBlock} @@ -272,9 +272,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Escoamento Oblíquo (45°) -
+
{styleBlock} @@ -298,9 +298,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Vento Frontal a 0° -
+
{styleBlock} @@ -322,9 +322,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Vento Diagonal a 45° -
+
{styleBlock} @@ -350,9 +350,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Regime de Baixa Turbulência -
+
{styleBlock} @@ -370,9 +370,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Regime Turbulento (Série 51/52) -
+
{styleBlock} @@ -396,9 +396,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Cúpula Apoiada no Solo -
+
{styleBlock} @@ -416,9 +416,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Elevada sobre Parede Cilíndrica -
+
{styleBlock} @@ -442,9 +442,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Pressões de Vento Externas -
+
{styleBlock} @@ -460,9 +460,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Efeito de Pressão Interna (+Cpi) -
+
{styleBlock} {legendDef} @@ -479,9 +479,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 3 */} -
+
Caso C: Efeito de Sucção Interna (-Cpi) -
+
{styleBlock} {legendDef} @@ -503,9 +503,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Escoamento Subcrítico (Superfície Lisa) -
+
{styleBlock} @@ -527,9 +527,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Escoamento Supercrítico (Superfície Rugosa) -
+
{styleBlock} @@ -556,9 +556,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Muro sem Abas Laterais -
+
{styleBlock} @@ -578,9 +578,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Com Abas de Extremidade (End Plates) -
+
{styleBlock} @@ -608,9 +608,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { return (
{/* Caso 1 */} -
+
Caso A: Abaixo da Velocidade Crítica (Sem Vibração) -
+
{styleBlock} @@ -631,9 +631,9 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caso 2 */} -
+
Caso B: Velocidade Crítica (Ressonância / Lock-in) -
+
{styleBlock} @@ -662,7 +662,7 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { default: // Caso padrão dinâmico geral (Módulos dinâmicos simples) return ( -
+
{styleBlock} @@ -678,13 +678,13 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { const legendItems = getVisibleLegendItems(); return ( -
+

Esquemas e Fluxos Comparativos NBR 6123

- {getViewLabel()} + {getViewLabel()}
- SVG Animado + SVG Animado
{/* Renderiza o grid comparativo */} @@ -693,7 +693,7 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
{/* Caixa de Legenda Didática Inteligente (Filtra itens não utilizados no módulo ativo) */} -
+
Legenda do Escoamento:
{legendItems.wind && ( @@ -704,7 +704,7 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) { )} {legendItems.fast && (
- + Fluxo Acelerado (Alta Vel. / Sucção)
)}