RBC / README.md
algorembrant's picture
Upload 16 files
7c60059 verified
# RecrBeam Calculator
[![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat&logo=python&logoColor=white)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![ACI 318](https://img.shields.io/badge/Code-ACI%20318-blue.svg)](https://www.concrete.org/)
[![CustomTkinter](https://img.shields.io/badge/UI-CustomTkinter-green.svg)](https://github.com/TomSchimansky/CustomTkinter)
A professional desktop application for calculating the **Nominal Moment Strength (Mn)** of rectangular reinforced concrete beams per ACI 318 provisions.
## Features
- Native Windows desktop application (no browser/localhost required)
- Professional dark theme UI
- Real-time calculations as you type
- **Unit system toggle**: Imperial (psi, in) / SI (MPa, mm)
- **Visual diagrams**: Cross Section, Strain Distribution, Stress Block & Forces
- **Step-by-step equations**: Detailed calculation breakdown with OK/NG indicators
- Minimum steel area check per ACI 318
## Installation
### Prerequisites
- Python 3.9 or higher
- pip (Python package manager)
### Setup
1. **Clone the repository**
```bash
git clone https://github.com/algorembrant/RecrBeam-Calculator.git
cd RecrBeam-Calculator
```
2. **Create a virtual environment** (recommended)
```bash
python -m venv .venv
```
3. **Activate the virtual environment**
Windows (PowerShell):
```powershell
.\.venv\Scripts\Activate.ps1
```
Windows (Command Prompt):
```cmd
.venv\Scripts\activate.bat
```
macOS/Linux:
```bash
source .venv/bin/activate
```
4. **Install dependencies**
```bash
pip install -r requirements.txt
```
## Usage
### Run the Application
```bash
python app.py
```
The application will launch as a native desktop window.
### Input Parameters
| Parameter | Description | Imperial | SI |
|-----------|-------------|----------|-----|
| fc' | Concrete compressive strength | psi | MPa |
| fy | Steel yield strength | psi | MPa |
| Es | Modulus of elasticity | psi | MPa |
| Beta1 | Stress block factor | - | - |
| ecu | Ultimate concrete strain | - | - |
| b | Beam width | in | mm |
| h | Total beam depth | in | mm |
| d | Effective depth | in | mm |
| n | Number of bars | - | - |
| Ab | Bar area (each) | in2 | mm2 |
### Default Values (Example 4-1)
**Imperial:**
- fc' = 4000 psi, fy = 60,000 psi
- b = 12 in, h = 20 in, d = 17.5 in
- 4 bars at 0.79 in2 each (No. 8 bars)
**SI:**
- fc' = 20 MPa, fy = 420 MPa
- b = 250 mm, h = 565 mm, d = 500 mm
- 3 bars at 510 mm2 each
## Project Structure
```
RecrBeam-Calculator/
β”œβ”€β”€ app.py # Main desktop application (CustomTkinter)
β”œβ”€β”€ calculator.py # Beam calculation engine
β”œβ”€β”€ test_calculator.py # Unit tests
β”œβ”€β”€ requirements.txt # Python dependencies
β”œβ”€β”€ README.md # This file
β”œβ”€β”€ LICENSE # MIT License
β”œβ”€β”€ MATLAB/
β”‚ └── app.m # Original MATLAB implementation
└── Dump/
└── example_4_1.tex # LaTeX documentation
```
## Theory
Based on ACI 318 provisions for nominal moment strength:
### Key Equations
**Stress block depth:**
```
a = (As * fy) / (0.85 * fc' * b)
```
**Neutral axis depth:**
```
c = a / Beta1
```
**Nominal moment strength:**
```
Mn = As * fy * (d - a/2)
```
**Minimum steel area (Imperial):**
```
As,min = max(3*sqrt(fc')/fy * b*d, 200/fy * b*d)
```
## Running Tests
```bash
python -m unittest test_calculator -v
```
## Dependencies
- [CustomTkinter](https://github.com/TomSchimansky/CustomTkinter) - Modern UI framework
- [Matplotlib](https://matplotlib.org/) - Diagram plotting
- [NumPy](https://numpy.org/) - Numerical operations
## License
MIT License - see [LICENSE](LICENSE)
## References
- ACI 318-19: Building Code Requirements for Structural Concrete
- Example 4-1 and 4-1M from ACI 318 Design Handbook
## Citation
If you use this software in your research or project, please cite it as:
```bibtex
@software{recrbeam_calculator,
author = {algorembrant},
title = {RecrBeam Calculator: Nominal Moment Strength Calculator for Rectangular Beams},
year = {2026},
publisher = {GitHub},
url = {https://github.com/algorembrant/RecrBeam-Calculator},
note = {Based on ACI 318 provisions}
}
```