🚀 Auto-deploy: BrainWind atualizado em 13/07/2026 20:38:34
This commit is contained in:
@@ -301,6 +301,13 @@ const PiperackModule: React.FC = () => {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{/* Suportes para tubulação quando n=1 */}
|
||||||
|
{numFrames === 1 && pipes.length > 0 && (
|
||||||
|
<g>
|
||||||
|
<line x1="90" y1="35" x2="210" y2="35" stroke="#94a3b8" strokeWidth="3" />
|
||||||
|
</g>
|
||||||
|
)}
|
||||||
|
|
||||||
{/* Vento batendo na primeira coluna */}
|
{/* Vento batendo na primeira coluna */}
|
||||||
<line x1={numFrames === 1 ? 100 : startX - 40} y1="50" x2={numFrames === 1 ? 145 : startX - 5} y2="50" stroke="#10b981" strokeWidth="2" markerEnd="url(#arrowRight)" />
|
<line x1={numFrames === 1 ? 100 : startX - 40} y1="50" x2={numFrames === 1 ? 145 : startX - 5} y2="50" stroke="#10b981" strokeWidth="2" markerEnd="url(#arrowRight)" />
|
||||||
<text x={numFrames === 1 ? 122 : startX - 22} y="45" textAnchor="middle" fill="#10b981" fontSize="10" fontWeight="bold">Vento (F)</text>
|
<text x={numFrames === 1 ? 122 : startX - 22} y="45" textAnchor="middle" fill="#10b981" fontSize="10" fontWeight="bold">Vento (F)</text>
|
||||||
@@ -309,10 +316,23 @@ const PiperackModule: React.FC = () => {
|
|||||||
})()}
|
})()}
|
||||||
|
|
||||||
{/* Tubulações transversais cortadas (Círculos azuis) */}
|
{/* Tubulações transversais cortadas (Círculos azuis) */}
|
||||||
<circle cx="100" cy="30" r="10" fill="#3b82f6" fillOpacity="0.8" />
|
{(() => {
|
||||||
<circle cx="130" cy="30" r="14" fill="#3b82f6" fillOpacity="0.8" />
|
if (pipes.length === 0) return null;
|
||||||
<circle cx="170" cy="30" r="8" fill="#3b82f6" fillOpacity="0.8" />
|
|
||||||
<circle cx="200" cy="30" r="12" fill="#3b82f6" fillOpacity="0.8" />
|
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 (
|
||||||
|
<circle key={p.id} cx={cx} cy={cy} r={r} fill="#3b82f6" fillOpacity="0.8" />
|
||||||
|
);
|
||||||
|
});
|
||||||
|
})()}
|
||||||
|
|
||||||
<defs>
|
<defs>
|
||||||
<marker id="arrowRight" markerWidth="6" markerHeight="6" refX="6" refY="3" orient="auto">
|
<marker id="arrowRight" markerWidth="6" markerHeight="6" refX="6" refY="3" orient="auto">
|
||||||
|
|||||||
Reference in New Issue
Block a user