User:Suraj/gsoc proposal

From BRL-CAD
  • Name: Suraj
  • IRC nick: SurajDadral

Brief Background Information

I am B.Tech. (2nd year), Computer Science student of Guru Nanak Dev Engineering College, India. Practiced in writing code in C/C++, Python and used Git, Qt, Django, Make, Jekyll and PySide.

I solved an issue with Rebar Addon and here is merged PR: https://github.com/amrit3701/FreeCAD-Reinforcement/pull/11

I worked on GeoData workbench of FreeCAD and added support for links from popular maps to import OSM (OpenStreetMap) using core functionality of GeoData workbench.

Related discussion: https://forum.freecadweb.org/viewtopic.php?f=3&t=27803

Merged PR: https://github.com/microelly2/geodata/pull/10


Project Information

Project Title: Automate Reinforcement Process in FreeCAD

Brief Project Summary

My project is to automate Reinforcement process by using Rebar Addon in FreeCAD. The idea is to create UI and functions on top of the current implementation to combine different types of Rebars in a single Dialog Box as per the user requirements. For example, combine Stirrups and Rebars (different types of rebars) in case of Beam Reinforcement.

Detailed Project Description

Current Scenario in FreeCAD

  1. There is no provision to create straight rebars in a circular column as discussed here: https://forum.freecadweb.org/viewtopic.php?f=8&t=22760&start=230#p186507

  2. To create Reinforcement in a single Beam or Column, user needs to do a lot of work like creating Stirrups, Rebars and perform all calculations involved manually.

  3. If user decides to make changes in any parameter of Beam/Column Reinforcement like Cover of Stirrup, he/she needs to manually adjust Cover and Spacing of all Rebars provided. Doing so manually needs efforts never less than applying Reinforcement from Scratch and involves lots of calculations. And obviously, there are going to be number of Beams/Columns in a building and no one wants to apply Reinforcement to all Beams/Columns manually. So, this is a very time consuming task.
    Example: You can see below how the things went wrong after modifying covering of Stirrup.

    ModifyCoverofStirrup.png


Example: In case of Beam Reinforcement

  1. To create reinforcement in a Beam, user has to do following steps:

    • Select face of the beam and create stirrups.

      BeamReinforcementImage1.png
      BeamReinforcementImage2.png

    • To create rebars, first user needs to select one of the face, perpendicular to previously selected face and then calculate ‘Front Cover’ and ‘Top/Bottom Cover’ based on the values of Rounding and Top/Bottom/Left/Right Cover of the stirrups. And this should be done for all four sides. And this will produce single layered Reinforcement in Beam as follow:

      BeamReinforcementImage3.png
      BeamReinforcementImage4.png

  2. To create multi-layered Reinforcement in a Beam, user needs to do following steps:

    • Create Reinforcement as discussed above.

    • Create Spacer Reinforcement for new layer. While creating this, user needs to perform calculations to adjust cover and spacing of Spacer Rebars.

      BeamReinforcementImage5.png

    • Create Rebars of new layer:

      BeamReinforcementImage6.png

    • Now to create each new layer of Reinforcement, user needs to repeat Step II and III and perform all calculations manually.

      BeamReinforcementImage7.png


Proposed solution to the problem

To solve above mentioned issues, an interactive UI will be developed on top of the current implementation of Rebar Addon in FreeCAD.

  • Dialog Box will be developed where user will input the required data as per the design requirements.

  • When the user will press apply button, this input data will be passed to functions makeStirrup(), makeStraightRebar(), makeLShapeRebar(), makeUShapeRebar() etc. of the Rebar Addon as per the requirements.

  • The Reinforcement will be created using core functionality of the Rebar Addon.

  • To edit Reinforcement provided, user will double click on created Reinforcement object. Then he/she will be shown same Dialog Box as while creating Reinforcement. And then user can make changes and apply them as did before.

  • There will be a Dialog Box, using which user can create straight and L-Shaped rebars in a circular column.

So, the developed UI will contains following features:

  1. User will add only basic details for Reinforcement and all the calculations (like for cover and spacing of rebars) will be done by script.

  2. User can create different types of Rebars in single step. Like creating Stirrups and Rebars (of different types) for Beam or Rectangular Column.

  3. User can add number of layers and number of Rebars in each layer in beam.

  4. User can create reinforcement for circular column in one step.

  5. For Column Reinforcement, user will be presented with a list of prototypes of some default configurations, which we will choose from “SP 34: Handbook on Concrete Reinforcement and Detailing” as present here: https://archive.org/details/gov.in.is.sp.34.1987/page/n95
    Due to time constraints of GSoC, I will implement following prototypes, but will keep on adding even after GSoC.

    ColumnPrototypes1.png

    I also implemented above prototypes manually and can be found at

    https://github.com/SurajDadral/FreeCAD-Examples

Input parameters

Input parameters for Beam Reinforcement are categorised into two groups that forms two different tabs in Stirrup Reinforcement as following:

  1. Stirrup parameters

  2. Rebars distribution

    • Top Rebar

    • Bottom Rebar

    • Side Rebar

Dialog Box will contain similar input parameters which are present in Reinforcement table of STAAD.Pro output file. For example, Reinforcement for Beam in STAAD.Pro file is present as:

SUMMARY OF PROVIDED REINF. AREA

SECTION 0.0 mm 2000.0 mm 4000.0 mm 6000.0 mm 8000.0 mm
TOP
REINF.
2-20í
1 layer(s)
2-20í
1 layer(s)
3-20í
1 layer(s)
2-20í
1 layer(s)
2-20í
1 layer(s)
BOTTOM
REINF.
2-25í
1 layer(s)
4-25í
1 layer(s)
5-25í
2 layer(s)
4-25í
1 layer(s)
2-25í
1 layer(s)
SHEAR
REINF.
2 legged 8í
@280 mm c/c
2 legged 8í
@280 mm c/c
2 legged 8í
@280 mm c/c
2 legged 8í
@280 mm c/c
2 legged 8í
@280 mm c/c

For Top Reinforcement, ‘2-20i 1 layer(s)’ represents 2 Rebars of diameter 20 mm present in one layer. So, Dialog Box will contain input fields for:

  • Layer Information
  • Number of Rebars
  • Diameter of Rebar

Benefit of doing so is discussed in future scope of project.

Enhancement

Master Configuration:Instead of setting default values in UI as in below image:

ColumnReinforcementCustom.png

We will have Master Configuration file, in which user can set default values for Rebar Addon like:

  • Diameter of Stirrups
  • Diameter of Rebars
  • Diameter of Ties
  • Span Length of Rebars
  • Offset for Rebars
  • Clear Covers (Left, Right, Front, Top, Bottom) for Stirrups
  • Bent Angle of Stirrups
  • Bent Factor of Stirrups
  • Rounding of Stirrups

Proposed UI wireframe

Initialization
RebarAddonInitializationMenu.png


Dialog Box I: For Reinforcement details in Beam
CreateBeam1.png
CreateBeam2.png
CreateBeam3.png
CreateBeam4.png