diff --git a/app/src/pages/PiperackModule.tsx b/app/src/pages/PiperackModule.tsx index d2553d2..cc88542 100644 --- a/app/src/pages/PiperackModule.tsx +++ b/app/src/pages/PiperackModule.tsx @@ -268,38 +268,79 @@ const PiperackModule: React.FC = () => { {/* Linha do chão */} - {/* Vigas Longitudinais (Stringers) - conectando as colunas no sentido longitudinal */} - - + {/* Renderização Dinâmica baseada no numFrames */} + {(() => { + const startX = 60; + const endX = 240; + const step = numFrames > 1 ? (endX - startX) / (numFrames - 1) : 0; + + return ( + <> + {/* Vigas Longitudinais */} + {numFrames > 1 && ( + <> + + + + )} - {/* Coluna 1 (Frente) */} - - C1 (Barlavento) - - Tração + {/* Colunas */} + {Array.from({ length: numFrames }).map((_, i) => { + const colX = numFrames === 1 ? 150 : startX + i * step; + const isFirst = i === 0; + const isLast = i === numFrames - 1; + + return ( + + + 3 ? "8" : "10"} fill="#475569"> + {`C${i + 1}`} + + + {/* Tração na primeira */} + {isFirst && ( + <> + + Tração + Barlavento + + )} + + {/* Compressão na última */} + {isLast && numFrames > 1 && ( + <> + + Comp. + Sotavento + + )} + + ); + })} + + {/* Linha de cota para o espaçamento (e) entre C1 e C2 */} + {numFrames > 1 && ( + <> + + + + e = {spacing}m + + )} + + {/* Vento batendo na primeira coluna */} + + Vento (F) + + ); + })()} - {/* Coluna 2 (Trás) */} - - C2 (Sotavento) - - Comp. - - {/* Tubulações transversais cortadas (Círculos azuis) para indicar vista lateral */} + {/* Tubulações transversais cortadas (Círculos azuis) */} - {/* Vento batendo na primeira coluna/tubos */} - - Vento (F) - - {/* Linha de cota para o espaçamento (e) */} - - - - Espaçamento (e) = {spacing}m -