From d4e0abe26067094c4ba57f044dd87dfca4368f20 Mon Sep 17 00:00:00 2001 From: Marcos Date: Mon, 13 Jul 2026 20:38:34 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Auto-deploy:=20BrainWind=20atual?= =?UTF-8?q?izado=20em=2013/07/2026=2020:38:34?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/pages/PiperackModule.tsx | 56 ++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/app/src/pages/PiperackModule.tsx b/app/src/pages/PiperackModule.tsx index d41161e..a468c44 100644 --- a/app/src/pages/PiperackModule.tsx +++ b/app/src/pages/PiperackModule.tsx @@ -301,25 +301,45 @@ const PiperackModule: React.FC = () => { )} - {/* Vento batendo na primeira coluna */} - - Vento (F) - - ); - })()} + {/* Suportes para tubulação quando n=1 */} + {numFrames === 1 && pipes.length > 0 && ( + + + + )} + + {/* Vento batendo na primeira coluna */} + + Vento (F) + + ); + })()} - {/* Tubulações transversais cortadas (Círculos azuis) */} - - - - - - - - - - - + {/* Tubulações transversais cortadas (Círculos azuis) */} + {(() => { + if (pipes.length === 0) return null; + + const startX = numFrames === 1 ? 100 : 60; + const endX = numFrames === 1 ? 200 : 240; + const gap = pipes.length > 1 ? (endX - startX) / (pipes.length - 1) : 0; + + return pipes.map((p, idx) => { + const cx = pipes.length === 1 ? (startX + endX)/2 : startX + idx * gap; + const r = Math.max(4, Math.min(15, p.diameter * 8)); // escala visual + // y=25 para repousar sobre o suporte (y=35 para n=1) ou viga (y=40 para n>1) + const cy = numFrames === 1 ? 35 - r : 40 - r; + return ( + + ); + }); + })()} + + + + + + +
Forças e Momentos Aerodinâmicos