Skip to content

REST API for structural engineering calculations per NBR 6118:2023 (Brazilian Concrete Structures Standard). Features 12 endpoints for beams, columns, slabs design and verification, with interactive dashboard.

Notifications You must be signed in to change notification settings

fcfim/NBR-6118-API

Repository files navigation

NBR 6118 API

API REST para cálculos de engenharia estrutural conforme NBR 6118:2023 (Projeto de Estruturas de Concreto).

Next.js TypeScript Endpoints License

🎯 Funcionalidades

  • 12 Endpoints para cálculos estruturais completos
  • Dashboard Interativo com formulários para todos os módulos
  • NBR 6118:2023 - Fórmulas e tabelas atualizadas
  • Validação Zod - Schemas robustos para todos os inputs

🚀 Quick Start

cd nbr6118-api
npm install
npm run dev

Acesse http://localhost:3000


📡 Endpoints da API (12 total)

Básicos

Endpoint Descrição
POST /api/v1/section/properties Propriedades geométricas
POST /api/v1/materials/properties Propriedades de materiais
POST /api/v1/loads/calculate Combinações de cargas

Vigas - ELU

Endpoint Descrição
POST /api/v1/beam/design/longitudinal Armadura de flexão
POST /api/v1/beam/design/shear Armadura de cisalhamento
POST /api/v1/beam/design/torsion Armadura de torção

Vigas - ELS

Endpoint Descrição
POST /api/v1/beam/verify/deflection Verificação de flechas
POST /api/v1/beam/verify/cracking Verificação de fissuração

Pilares

Endpoint Descrição
POST /api/v1/column/design Dimensionamento (λ, 2ª ordem)

Lajes

Endpoint Descrição
POST /api/v1/slab/design Dimensionamento (Bares/Marcus)
POST /api/v1/slab/verify/punching Verificação de punção

Detalhamento

Endpoint Descrição
POST /api/v1/detailing/anchorage Ancoragem e emendas

📖 Exemplos de Requisições

Dimensionamento de Torção

POST /api/v1/beam/design/torsion

{
  "section": { "type": "rectangular", "width": 20, "height": 50 },
  "materials": { "concrete": "C25", "steel": "CA-50" },
  "loading": { 
    "tsd": { "value": 15, "unit": "kN.m" },
    "vsd": { "value": 80, "unit": "kN" },
    "vrd2": 250
  }
}

Fórmulas:

  • TRd2 = 0.5 × αv2 × fcd × Ae × he
  • Asl = Tsd / (2 × Ae × fyd)
  • Interação: (Tsd/TRd2) + (Vsd/VRd2) ≤ 1

Verificação de Punção

POST /api/v1/slab/verify/punching

{
  "slab": { "h": 20 },
  "pillar": { "a": 30, "b": 30, "type": "internal" },
  "materials": { "concrete": "C30" },
  "loading": { "fsd": 500 },
  "reinforcement": { "rho_x": 0.005, "rho_y": 0.005 }
}

Fórmulas:

  • τsd = Fsd / (u × d)
  • τRd1 = 0.13 × (1 + √(20/d)) × ∛(100 × ρ × fck)
  • Perímetros: interno 2(a+b) + 4πd, borda a + 2b + πd

Dimensionamento de Lajes

POST /api/v1/slab/design

{
  "geometry": { "Lx": 400, "Ly": 500, "h": 12 },
  "materials": { "concrete": "C25" },
  "loading": { "dead": 5, "live": 2 }
}

Fórmulas (Bares/Marcus):

  • Mx = μx × p × Lx²
  • My = μy × p × Lx²
  • Classificação: λ ≤ 2 (duas direções), λ > 2 (uma direção)

Dimensionamento de Pilares

POST /api/v1/column/design

{
  "geometry": { "bx": 20, "by": 40 },
  "length": 300,
  "materials": { "concrete": "C30", "steel": "CA-50" },
  "loading": { "nd": 1200, "mx_top": 500, "mx_bot": 300 }
}

🏗️ Arquitetura

src/
├── app/
│   ├── page.tsx          # Dashboard frontend
│   └── api/v1/           # 12 API routes
├── core/
│   ├── design/           # Flexão, Cisalhamento, Torção, Pilares, Lajes
│   ├── verification/     # Flechas, Fissuração, Punção
│   └── detailing/        # Ancoragem
├── data/                 # Tabelas NBR (Bares, materiais)
├── lib/schemas/          # Validação Zod
└── services/             # Orquestração

🧪 Tecnologias

  • Next.js 15 - App Router
  • TypeScript - Tipagem estática
  • Zod - Validação de schemas
  • Tailwind CSS - Estilização
  • Lucide React - Ícones

📄 Licença

MIT License

🔗 Referências

About

REST API for structural engineering calculations per NBR 6118:2023 (Brazilian Concrete Structures Standard). Features 12 endpoints for beams, columns, slabs design and verification, with interactive dashboard.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •