An open API service indexing awesome lists of open source software.

https://github.com/amrit3701/freecad-reinforcement

Reinforcement Workbench for FreeCAD
https://github.com/amrit3701/freecad-reinforcement

addon bim freecad hacktoberfest rebar reinforcement structural

Last synced: 2 months ago
JSON representation

Reinforcement Workbench for FreeCAD

Awesome Lists containing this project

README

        

Reinforcement workbench for FreeCAD


Total alerts
Language grade: Python
Code style: black
FreeCAD Addon manager status




This project aims to facilitate flexible implementation and usage of Rebaring in FreeCAD. The Reinforcement workbench provides tools for Reinforcement Generation and Detailing. This workbench provides an interface and presets for the creation of common rebar types. And tools to generate rebars bill of material, rebar shape cut list, bar bending schedule, and rebars drawing and dimension.

![screenshot](icons/wiki/ReinforcementWorkbenchWindow.png)

---

_Contents:_ **[Installation](#installation)** | **[Features](#features-of-reinforcement-workbench)** | **[Documentation](#documentation)** | **[Contributing](#contributing)** | **[Showcase](#showcase)** | **[Extras](#extras)**

---

## Installation

[![FreeCAD Addon manager status](https://img.shields.io/badge/FreeCAD%20addon%20manager-available-brightgreen)](https://github.com/FreeCAD/FreeCAD-addons)

#### Pre-requisites
- FreeCAD (version >= 0.19): [Installation guide](https://www.freecadweb.org/wiki/Installing)
- [Pillow](https://github.com/python-pillow/Pillow): Required for generating BillOfMaterial when working in pure console mode without any gui element

### Using Addon Manager
Reinforcement workbench is available through the FreeCAD Addon Manager (menu **Tools → Addon manager**). It is called _Reinforcement_ in the Addon Repository.

### Manual Installation
Like any other FreeCAD [workbench](https://www.freecadweb.org/wiki/Workbench_Concept), you can manually clone or download all the files from this repository in a "Reinforcement" folder inside your FreeCAD Mod directory as described [here](https://github.com/FreeCAD/FreeCAD-addons#2-manual-install).

## Features of Reinforcement workbench

### Reinforcement Generation
- [![icon](icons/wiki/StraightRebar.svg) **Straight Rebar**](https://wiki.freecadweb.org/Arch_Rebar_Straight): Creates a Straight reinforcement bar in a selected structural element
- [![icon](icons/wiki/UShapeRebar.svg) **UShape Rebar**](https://wiki.freecadweb.org/Arch_Rebar_UShape): Creates a UShape reinforcement bar in a selected structural element
- [![icon](icons/wiki/LShapeRebar.svg) **LShape Rebar**](https://wiki.freecadweb.org/Arch_Rebar_LShape): Creates a LShape reinforcement bar in a selected structural element
- [![icon](icons/wiki/BentShapeRebar.svg) **BentShape Rebar**](https://wiki.freecadweb.org/Arch_Rebar_BentShape): Creates a Bent Shape reinforcement bar in a selected structural element
- [![icon](icons/wiki/StirrupRebar.svg) **Stirrup Rebar**](https://wiki.freecadweb.org/Arch_Rebar_Stirrup): Creates a Stirrup reinforcement bar in a selected structural element
- [![icon](icons/wiki/HelicalRebar.svg) **Helical Rebar**](https://wiki.freecadweb.org/Arch_Rebar_Helical): Creates a Helical reinforcement bar in a selected structural element
- [![icon](icons/wiki/ColumnReinforcement.svg) **Circular ColumnReinforcement**](https://wiki.freecadweb.org/Arch_Rebar_Circular_ColumnReinforcement): Creates reinforcing bars in a selected circular column structural element
- [![icon](icons/wiki/ColumnReinforcement.svg) **ColumnReinforcement**](https://wiki.freecadweb.org/Arch_Rebar_ColumnReinforcement): Creates reinforcing bars in a selected rectangular column structural element
- [![icon](icons/wiki/ColumnReinforcement.svg) **ColumnReinforcement TwoTiesSixRebars**](https://wiki.freecadweb.org/Arch_Rebar_ColumnReinforcement_TwoTiesSixRebars): Creates reinforcing bars in a selected rectangular column structural element
- [![icon](icons/wiki/BeamReinforcement.svg) **BeamReinforcement**](https://wiki.freecadweb.org/Arch_Rebar_BeamReinforcement): Creates reinforcing bars in a selected beam structural element
- [![icon](icons/wiki/Arch_Rebar_Slab_Reinforcement.svg) **SlabReinforcement**](https://wiki.freecadweb.org/Arch_Rebar_Slab_Reinforcement): Creates reinforcing bars in a selected slab structural element
- [![icon](icons/wiki/Arch_Rebar_Footing_Reinforcement.svg) **FootingReinforcement**](https://wiki.freecadweb.org/Arch_Rebar_Footing_Reinforcement): Creates reinforcing bars inside a Footing Arch Structure object
- [![icon](icons/wiki/Arch_Rebar.svg) **Rebar**](https://wiki.freecadweb.org/Arch_Rebar): Creates a custom reinforcement bar in a selected structural element using a sketch

### Reinforcement Detailing

- [![icon](icons/wiki/BillOfMaterial.svg) **Bill Of Material**](https://wiki.freecadweb.org/Arch_Rebar_BeamReinforcement): Creates bill of material of reinforcing bars
- [![icon](icons/wiki/RebarShapeCutList.svg) **Rebar Shape Cut List**](https://wiki.freecadweb.org/Arch_Rebar_BeamReinforcement): Creates rebar shape cut list of reinforcing bars
- [![icon](icons/wiki/BarBendingSchedule.svg) **Reinforcement Bar Bending Schedule**](https://wiki.freecadweb.org/Arch_Rebar_BeamReinforcement): Creates bar bending schedule of reinforcing bars
- [![icon](icons/wiki/ReinforcementDrawingDimensioning.svg) **Reinforcement Drawing Dimensioning**](https://wiki.freecadweb.org/Arch_Rebar_Drawing_Dimensioning): Creates drawing and dimensioning of reinforcing bars

## Documentation
The documentation of this workbench is hosted on FreeCAD wiki pages and can be found here: https://wiki.freecadweb.org/Reinforcement_Workbench

[![IMAGE ALT TEXT HERE](https://i.imgur.com/ZQGCQoe.png)](https://www.youtube.com/watch?v=BYQQjEKmx5E&t=1435s)

## How it works
Each rebar shape tool has two files, one is a `python` (AKA `.py`) file and the second is its respective `UI` (AKA `.ui`) file. For example: ```StraightRebar.py``` and `StraightRebar.ui`.

Let's continue with the straight rebar shape tool as the example. In the `StraightRebar.py` file, there are two functions:
1. The `makeStraightRebar()` function, this function creates straight rebar and adds new properties to the default `Rebar` object.
2. The `editStraightRebar()` function, this function is used when we want to change new properties of the rebar object to take a `Rebar` object as input (which is created by `makeStraightRebar` function).

Within the `StraightRebar.py` file we find the `_StraightRebarTaskPanel` class present. This class loads the UI (within the `StriaghtRebar.ui` file) in to a FreeCAD task panel. When a user clicks on the `Apply` or the `Ok` button, the `makeStraightRebar` function is executed and after that when the user wants to change the properties of Straight rebar then the `editStraightRebar()` function is executed.

## Contributing
We love contributions! We have collected notes on how to contribute to this project in [CONTRIBUTING.md](https://github.com/amrit3701/FreeCAD-Reinforcement/blob/master/CHANGELOG.md)

[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/0)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/0)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/1)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/1)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/2)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/2)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/3)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/3)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/4)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/4)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/5)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/5)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/6)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/6)[![](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/images/7)](https://sourcerer.io/fame/SurajDadral/amrit3701/FreeCAD-Reinforcement/links/7)

## Showcase

| | | |
|:-------------------------:|:-------------------------:|:-------------------------:|
| ![Straight Rebar example](https://wiki.freecadweb.org/images/e/e8/Arch_Rebar_Straight_example.png) **Straight Rebar** | ![UShape Rebar example](https://wiki.freecadweb.org/images/7/77/Arch_Rebar_UShape_example.png) **UShape Rebar** | ![LShape Rebar example](https://wiki.freecadweb.org/images/7/76/Arch_Rebar_LShape_example.png) **LShape Rebar** |
| ![BentShape Rebar example](https://wiki.freecadweb.org/images/6/60/Arch_Rebar_BentShape_example.png) **BentShape Rebar** | ![Stirrup Rebar example](https://wiki.freecadweb.org/images/6/6c/Arch_Rebar_Stirrup_example.png) **Stirrup Rebar** | Helical Rebar example
**Helical Rebar** |
| ![Circular Column Reinforcement example](https://wiki.freecadweb.org/images/d/d6/Arch_Rebar_Circular_ColumnReinforcement_example.png) **Circular Column Reinforcement** | ![Single Tie Column Reinforcement example](https://wiki.freecadweb.org/images/3/3f/Arch_Rebar_ColumnReinforcement_example.png) **Single Tie Column Reinforcement** | ![Two Ties Six Rebars Column Reinforcement example](https://wiki.freecadweb.org/images/c/ce/Arch_Rebar_ColumnReinforcement_TwoTies_example.png) **Two Ties Six Rebars Column Reinforcement** |
| ![example](https://www.freecadweb.org/wiki/images/4/42/Arch_Rebar_BeamReinforcement_example.png) **Beam Reinforcement** | ![Bill Of Material example](https://wiki.freecadweb.org/images/2/20/Arch_Rebar_BOM_example.png) **Bill Of Material** | ![Rebar Shape Cut List example](https://wiki.freecadweb.org/images/f/fb/Reinforcement_Bar_Shape_Cut_List_example.svg) **Rebar Shape Cut List** |
| Bar Bending Schedule example **Bar Bending Schedule** | ![Drawing Dimensioning example](https://wiki.freecadweb.org/images/1/18/Arch_Rebar_Drawing_Dimensioning_example.svg) **Drawing Dimensioning** |

## Extras
This endeavor started as a [Google Summer of Code](https://en.wikipedia.org/wiki/Google_Summer_of_Code) (GSOC 2017) [project](https://summerofcode.withgoogle.com/archive/2017/projects/6536382147198976)

### GSoC 2017
- [FreeCAD forum thread](https://forum.freecadweb.org/viewtopic.php?f=8&t=22760)
- [Development logs](https://brlcad.org/wiki/User:Amritpal_singh/GSoC17/logs)
- [GSoC proposal](https://brlcad.org/wiki/User:Amritpal_singh/gsoc_proposal)
- [GSoC link](https://summerofcode.withgoogle.com/archive/2017/projects/6536382147198976)

### GSoC 2019
- [FreeCAD forum thread](https://forum.freecadweb.org/viewtopic.php?f=8&t=35077)
- [Development logs](https://www.freecadweb.org/wiki/User:Suraj_Dadral/GSoC19/logs)
- [GSoC proposal](https://www.freecadweb.org/wiki/User:Suraj_Dadral/gsoc_proposal)
- [GSoC link](https://summerofcode.withgoogle.com/archive/2019/projects/6553209726828544)

### GSoC 2020
- [FreeCAD forum thread](https://forum.freecadweb.org/viewtopic.php?f=23&t=44580)
- [GSoC proposal](https://wiki.freecadweb.org/User:Suraj_Dadral/GSoC20/proposal)
- [GSoC link](https://summerofcode.withgoogle.com/archive/2020/projects/6207752898084864)

### GSoC 2021
- [FreeCAD forum thread](https://forum.freecadweb.org/viewtopic.php?f=23&t=57698)
- [GSoC proposal](https://wiki.freecadweb.org/User:Shiv_Charan/gsoc_proposal)
- [GSoC link](https://summerofcode.withgoogle.com/archive/2021/projects/4965033401909248)