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
-