🚀 Auto-deploy: BrainWind atualizado em 21/07/2026 15:36:29

This commit is contained in:
2026-07-21 15:36:29 +00:00
parent 725c854760
commit ffbde79b6f
3 changed files with 13 additions and 8 deletions
+1 -2
View File
@@ -21,9 +21,8 @@ const LinearLoadsTable: React.FC = () => {
const wind = useWindStore();
const { t } = useI18n();
const { width: b, length: a, height: h, roofPitch, wallCpe, roofCpe } = galpao;
const { q, cpi, windAngle } = wind;
const { q, cpi, windAngle, frameSpacing, setFrameSpacing } = wind;
const [frameSpacing, setFrameSpacing] = useState<number>(6.0);
const [purlinSpacing, setPurlinSpacing] = useState<number>(1.5);
const columnLoads = useMemo(
+5 -6
View File
@@ -84,13 +84,12 @@ export function buildFtoolModel(): FtoolModel {
const galpao = useGalpaoStore.getState();
const wind = useWindStore.getState();
const { width: b, height: h, roofPitch, wallCpe, roofCpe } = galpao;
const { q, cpi, windAngle } = wind;
const { q, cpi, windAngle, frameSpacing } = wind;
const FRAME_SPACING = 6.0;
const PURLIN_SPACING = 1.5;
const columnLoads = getColumnLinearLoads(cpi, q, wallCpe, FRAME_SPACING, windAngle);
const roofLoads = getRoofLinearLoads(cpi, q, roofCpe, PURLIN_SPACING, roofPitch);
const columnLoads = getColumnLinearLoads(cpi, q, wallCpe, frameSpacing, windAngle);
// Para Ftool (análise 2D de pórtico principal), a viga de cobertura (rafter)
// também recebe a carga baseada no espaçamento entre pórticos.
const roofLoads = getRoofLinearLoads(cpi, q, roofCpe, frameSpacing, roofPitch);
const rise = (b / 2) * Math.tan((roofPitch * Math.PI) / 180);
+7
View File
@@ -51,6 +51,10 @@ export interface GlobalWindState {
authorName: string;
projectRev: string;
setProjectMetadata: (data: Partial<{projectName: string, clientName: string, authorName: string, projectRev: string}>) => void;
// Cargas Lineares (M9.2)
frameSpacing: number; // Espaçamento entre pórticos em metros
setFrameSpacing: (spacing: number) => void;
}
function calcCpi(permeabilityCase: PermeabilityCase, ratio: number, windAngle: 0 | 90): number {
@@ -118,6 +122,9 @@ export const useWindStore = create<GlobalWindState>((set, get) => {
projectRev: 'R0',
setProjectMetadata: (data) => set((state) => ({ ...state, ...data })),
frameSpacing: 5.0,
setFrameSpacing: (val) => set({ frameSpacing: val }),
updateCalculations: () => set((state) => recalc(state)),
setV0: (val) => {