🚀 Auto-deploy: BrainWind atualizado em 27/07/2026 23:27:09

This commit is contained in:
2026-07-27 23:27:09 +00:00
parent b5f060226a
commit b4e24e4a34
+68 -3
View File
@@ -126,6 +126,36 @@ const ShelterModule: React.FC = () => {
{ label: 'Alívio por Fresta Superior', value: `${result.reliefPercentage}%` }, { label: 'Alívio por Fresta Superior', value: `${result.reliefPercentage}%` },
], ],
}, },
{
title: `Pressões Distribuídas por Área de Incidência - Direção ${angleLabel} (kN/m² e kgf/m²)`,
type: 'grid',
gridItems: [
{
label: 'Pressão na Cobertura (Fz / A_telhado)',
value: `${(result.forces.fzUp / (depth * width)).toFixed(2)} kN/m²`,
},
{
label: 'Pressão na Parede Traseira (Fx / A_fundo)',
value: `${(result.forces.fxBack / (width * height)).toFixed(2)} kN/m²`,
},
{
label: 'Pressão nas Paredes Laterais (Fy / A_lat)',
value: `${(result.forces.fySide / (depth * height * 2)).toFixed(2)} kN/m²`,
},
{
label: 'Pressão Dinâmica Base do Vento (q)',
value: `${q.toFixed(2)} kN/m²`,
},
{
label: 'Área da Cobertura (Telhado)',
value: `${(depth * width).toFixed(1)}`,
},
{
label: 'Área Parede Traseira / Laterais (2x)',
value: `${(width * height).toFixed(1)} m² / ${(depth * height * 2).toFixed(1)}`,
},
],
},
{ {
title: 'Envoltória e Comparativo Normativo — As 3 Incidências de Vento (0° • 45° • 90°)', title: 'Envoltória e Comparativo Normativo — As 3 Incidências de Vento (0° • 45° • 90°)',
type: 'table', type: 'table',
@@ -173,6 +203,27 @@ const ShelterModule: React.FC = () => {
`${envelope.res90.forces.fySide} kN`, `${envelope.res90.forces.fySide} kN`,
`${envelope.criticalFy.value} kN (${envelope.criticalFy.angle}°)` `${envelope.criticalFy.value} kN (${envelope.criticalFy.angle}°)`
], ],
[
' ↳ Pressão Cobertura (kN/m²)',
`${(envelope.res0.forces.fzUp / (depth * width)).toFixed(2)} kN/m²`,
`${(envelope.res45.forces.fzUp / (depth * width)).toFixed(2)} kN/m²`,
`${(envelope.res90.forces.fzUp / (depth * width)).toFixed(2)} kN/m²`,
`${(envelope.criticalUp.value / (depth * width)).toFixed(2)} kN/m² (${envelope.criticalUp.angle}°)`
],
[
' ↳ Pressão Parede Fundo (kN/m²)',
`${(envelope.res0.forces.fxBack / (width * height)).toFixed(2)} kN/m²`,
`${(envelope.res45.forces.fxBack / (width * height)).toFixed(2)} kN/m²`,
`${(envelope.res90.forces.fxBack / (width * height)).toFixed(2)} kN/m²`,
`${(envelope.criticalFx.value / (width * height)).toFixed(2)} kN/m² (${envelope.criticalFx.angle}°)`
],
[
' ↳ Pressão Paredes Lat. (kN/m²)',
`${(envelope.res0.forces.fySide / (depth * height * 2)).toFixed(2)} kN/m²`,
`${(envelope.res45.forces.fySide / (depth * height * 2)).toFixed(2)} kN/m²`,
`${(envelope.res90.forces.fySide / (depth * height * 2)).toFixed(2)} kN/m²`,
`${(envelope.criticalFy.value / (depth * height * 2)).toFixed(2)} kN/m² (${envelope.criticalFy.angle}°)`
],
[ [
'Carga Horiz. no Pilar', 'Carga Horiz. no Pilar',
`${envelope.res0.lineLoads.columnLoad} kN/m`, `${envelope.res0.lineLoads.columnLoad} kN/m`,
@@ -459,6 +510,10 @@ const ShelterModule: React.FC = () => {
<span>Coeficiente Cnf</span> <span>Coeficiente Cnf</span>
<span className="font-mono">{result.cnfVertical}</span> <span className="font-mono">{result.cnfVertical}</span>
</div> </div>
<div className="flex justify-between items-center text-[11px] text-muted-foreground/80">
<span>Pressão (/m²)</span>
<span className="font-mono">{(result.forces.fzUp / (depth * width)).toFixed(2)} kN/m² ({(result.forces.fzUp / (depth * width) * 101.97).toFixed(1)} kgf/m²)</span>
</div>
</div> </div>
<div className="space-y-2 border-b pb-3"> <div className="space-y-2 border-b pb-3">
<div className="flex justify-between items-center"> <div className="flex justify-between items-center">
@@ -469,10 +524,20 @@ const ShelterModule: React.FC = () => {
<span>Cf / Estanqueidade</span> <span>Cf / Estanqueidade</span>
<span className="font-mono">Cf = {result.cfBack} ({backClosure}%)</span> <span className="font-mono">Cf = {result.cfBack} ({backClosure}%)</span>
</div> </div>
<div className="flex justify-between items-center text-[11px] text-muted-foreground/80">
<span>Pressão (/m²)</span>
<span className="font-mono">{(result.forces.fxBack / (width * height)).toFixed(2)} kN/m² ({(result.forces.fxBack / (width * height) * 101.97).toFixed(1)} kgf/m²)</span>
</div>
</div> </div>
<div className="flex justify-between items-center pb-2 border-b"> <div className="space-y-1 border-b pb-2">
<span className="text-muted-foreground">Empuxo Lateral [Fy - Paredes]</span> <div className="flex justify-between items-center">
<span className="font-mono font-bold text-foreground">{result.forces.fySide.toFixed(2)} kN</span> <span className="text-muted-foreground">Empuxo Lateral [Fy - Paredes]</span>
<span className="font-mono font-bold text-foreground">{result.forces.fySide.toFixed(2)} kN</span>
</div>
<div className="flex justify-between items-center text-[11px] text-muted-foreground/80">
<span>Pressão (/m²)</span>
<span className="font-mono">{(result.forces.fySide / (depth * height * 2)).toFixed(2)} kN/m² ({(result.forces.fySide / (depth * height * 2) * 101.97).toFixed(1)} kgf/m²)</span>
</div>
</div> </div>
<div className="flex justify-between items-center pb-2 border-b"> <div className="flex justify-between items-center pb-2 border-b">
<span className="text-primary font-medium">Carga no Pilar (Pórtico)</span> <span className="text-primary font-medium">Carga no Pilar (Pórtico)</span>