import React, { useState } from 'react'; import { useCalculatorStore } from '../../../store/calculatorStore'; import { calculateWindPressure } from '../../../utils/windLogic'; import openBuildingZones from '../../../assets/open_building_zones.png'; import openBuildingZonesPlan from '../../../assets/open_building_zones_plan.png'; export const OpenBuildingsSheet: React.FC = () => { const { wind, buildingGeometry } = useCalculatorStore(); const [roofType, setRoofType] = useState<'Pitched Free Roofs' | 'Monoslope Free Roofs' | 'Troughed Free Roofs'>('Pitched Free Roofs'); const [windFlow, setWindFlow] = useState<'Clear' | 'Obstructed'>('Clear'); // Geometry const h = buildingGeometry.meanRoofHeight; const qh_calc = calculateWindPressure({ speed: wind.speed, exposure: wind.exposure, height: h, kzt: wind.topography.factor, kd: wind.directionality, ke: wind.groundElevationFactor, g: -1 }); const Kd = 0.85; const q_design = qh_calc * Kd; return (

Wind Loads - Open Buildings

Ultimate Wind Pressures
{/* MWFRS Section */}

Main Wind Force Resisting System

Base pressure (qh) = {qh_calc.toFixed(1)} psf
(Kd qh) = {q_design.toFixed(1)} psf
Kz = Kh = {(qh_calc / (0.00256 * 1.0 * 1.0 * Math.pow(wind.speed, 2))).toFixed(3)}
{/* Normal to Ridge Table */}
Roof pressures - Wind Normal to Ridge
Wind Flow Load Case Wind Direction γ = 0 & 180 deg
Cnw Cnl
{windFlow} Wind Flow A Cn = 1.200.30
p = {(q_design * 1.2 * wind.gust.factor).toFixed(1)} psf {(q_design * 0.3 * wind.gust.factor).toFixed(1)} psf
B Cn = -1.10-0.10
p = {(q_design * -1.1 * wind.gust.factor).toFixed(1)} psf {(q_design * -0.1 * wind.gust.factor).toFixed(1)} psf
{/* Open Building Zones Diagram */}
MWFRS Wind Load Cases
MWFRS Wind Load Cases
Wind Pressure Zones (Plan View)
Wind Pressure Zones (Plan View)
); };