Difference between revisions of "User:Suraj/gsoc proposal"

From BRL-CAD
Line 33: Line 33:
 
'''Current Scenario in FreeCAD'''
 
'''Current Scenario in FreeCAD'''
  
1. There is no provision to create straight rebars in a circular column as discussed here:
+
<ol style="list-style-type: decimal;">
https://forum.freecadweb.org/viewtopic.php?f=8&t=22760&start=230#p186507
+
<li><p>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</p></li>
  
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.
+
<li><p>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.</p></li>
  
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.
+
<li><p>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.</br>
  
 
Example: You can see below how the things went wrong after modifying covering of
 
Example: You can see below how the things went wrong after modifying covering of
 
Stirrup.
 
Stirrup.
[[File:ModifyCoverofStirrup.png|frame|center|200px]]
+
[[File:ModifyCoverofStirrup.png|frame|center|200px]]</p></li></ol>
  
  
 
Example: In case of Beam Reinforcement
 
Example: In case of Beam Reinforcement
  
1. To create reinforcement in a Beam, user has to do following steps:
+
<ol style="list-style-type: decimal;">
 +
<li><p>To create reinforcement in a Beam, user has to do following steps:
  
I. Select face of the beam and create stirrups.
+
<ul>
 +
<li><p>Select face of the beam and create stirrups.
 
[[File:BeamReinforcementImage1.png|frame|center|150px]]
 
[[File:BeamReinforcementImage1.png|frame|center|150px]]
[[File:BeamReinforcementImage2.png|frame|center|150px]]
+
[[File:BeamReinforcementImage2.png|frame|center|150px]]</p></li>
II. 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:
+
<li><p>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:
 
[[File:BeamReinforcementImage3.png|frame|center|150px]]
 
[[File:BeamReinforcementImage3.png|frame|center|150px]]
[[File:BeamReinforcementImage4.png|frame|center|150px]]
+
[[File:BeamReinforcementImage4.png|frame|center|150px]]</p></li></ul></p></li>
  
2. To create multi-layered Reinforcement in a Beam, user needs to do following steps:
+
<li><p>To create multi-layered Reinforcement in a Beam, user needs to do following steps:
  
I. Create Reinforcement as discussed above.
+
<ul>
 +
<li><p>Create Reinforcement as discussed above.</p></li>
  
II. Create Spacer Reinforcement for new layer. While creating this, user needs to perform calculations to adjust cover and spacing of Spacer Rebars.
+
<li><p>Create Spacer Reinforcement for new layer. While creating this, user needs to perform calculations to adjust cover and spacing of Spacer Rebars.
[[File:BeamReinforcementImage5.png|frame|center|150px]]
+
[[File:BeamReinforcementImage5.png|frame|center|150px]]</p></li>
III. Create Rebars of new layer:
+
<li><p>Create Rebars of new layer:
[[File:BeamReinforcementImage6.png|frame|center|150px]]
+
[[File:BeamReinforcementImage6.png|frame|center|150px]]</p></li>
IV. Now to create each new layer of Reinforcement, user needs to repeat Step II and III and perform all calculations manually.
+
<li><p>Now to create each new layer of Reinforcement, user needs to repeat Step II and III and perform all calculations manually.
[[File:BeamReinforcementImage7.png|frame|center|150px]]
+
[[File:BeamReinforcementImage7.png|frame|center|150px]]</p></li></ul></p></li></ol>
 +
 
 +
 
 +
'''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.
 +
 
 +
<ul>
 +
<li><p>Dialog Box will be developed where user will input the required data as per the design requirements.</p></li>
 +
<li><p>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.</p></li>
 +
<li><p>The Reinforcement will be created using core functionality of the Rebar Addon.</p></li>
 +
<li><p>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.</p></li>
 +
<li><p>There will be a Dialog Box, using which user can create straight and L-Shaped rebars in a circular column.</p></li>
 +
</ul>

Revision as of 16:06, 7 May 2019

  • 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.