Difference between revisions of "User:Suraj/gsoc proposal"
Line 219: | Line 219: | ||
= Timeline = | = Timeline = | ||
+ | |||
+ | As an overview, out of beam and column reinforcement, reinforcement for column is more | ||
+ | simpler and will be completed in the first phase before the first evaluation. | ||
+ | <ul> | ||
+ | <li>'''Community Bonding Period (6 May - 27 May)''' | ||
+ | <ul> | ||
+ | <li>Having interaction on mailing list and IRC regarding important aspects of project.</li> | ||
+ | <li>Get to be more familiar with the code and workflow of FreeCAD and Rebar Addon.</li> | ||
+ | <li>Learn more about PySide, STAAD.Pro file format and reinforcement in beams and columns.</li> | ||
+ | <li>Learn Doxygen syntax and inkscape.</li></ul></li> | ||
+ | <li>'''27 May - 20 June (25 days)''' | ||
+ | <ul> | ||
+ | <li>Create UI for beam reinforcement.</li> | ||
+ | <li>Implement beam reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.</li></ul></li> | ||
+ | <li>'''21 June - 23 June (3 days)''' | ||
+ | <ul> | ||
+ | <li>Backup days for any backlog or pending task and preparation for phase I evaluation.</li></ul></li> | ||
+ | <li>'''24 June - 28 June (5 days, Phase I evaluation)''' | ||
+ | <ul> | ||
+ | <li>Developers documentation using Doxygen.</li> | ||
+ | <li>Submitting all the work to mentor.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''29 June - 18 July (20 days)''' | ||
+ | <ul> | ||
+ | <li>Implement UI for circular column reinforcement.</li> | ||
+ | <li>Implement circular column reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.</li> | ||
+ | <li>Create required images and icons using inkscape.</li> | ||
+ | <li>Integrate UI with Rebar Addon UI.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''19 July - 21 July (3 days)''' | ||
+ | <ul> | ||
+ | <li>Backup days for any backlog, pending task, bug fixes and preparation for phase II evaluation.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''22 July - 26 July (5 days, Phase II evaluation)''' | ||
+ | <ul> | ||
+ | <li>Developer documentation using Doxygen.</li> | ||
+ | <li>Submitting all the work to mentor.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''27 July - 11 August (16 days)''' | ||
+ | <ul> | ||
+ | <li>Create UI for square/rectangular column reinforcement.</li> | ||
+ | <li>Implement square/rectangular column reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''12 August - 18 August (1 week)''' | ||
+ | <ul> | ||
+ | <li>Work on UI enhancement to improve user experience.</li> | ||
+ | <li>Work on backlogs and bug fixes.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>'''19 August - 26 August (8 days, Final evaluation)''' | ||
+ | <ul> | ||
+ | <li>Developer documentation using Doxygen.</li> | ||
+ | <li>User documentation through detailed tutorial and post on FreeCAD wiki with screenshots.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | </ul> |
Revision as of 03:42, 8 May 2019
- Name: Suraj
- IRC nick: SurajDadral
- GitHub profile: https://github.com/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
Contents
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
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
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.
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.
Example: In case of Beam Reinforcement
To create reinforcement in a Beam, user has to do following steps:
Select face of the beam and create stirrups.
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:
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.
Create Rebars of new layer:
Now to create each new layer of Reinforcement, user needs to repeat Step II and III and perform all calculations manually.
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:
User will add only basic details for Reinforcement and all the calculations (like for cover and spacing of rebars) will be done by script.
User can create different types of Rebars in single step. Like creating Stirrups and Rebars (of different types) for Beam or Rectangular Column.
User can add number of layers and number of Rebars in each layer in beam.
User can create reinforcement for circular column in one step.
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.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:
Stirrup parameters
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:
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
- Dialog Box I: For Reinforcement details in Beam
- Dialog Box II: For Reinforcement details in Column
Implementation
- An icon for Beam and Column Reinforcement will be made and integrated in drop down menu of Rebar Addon. Integration in drop down menu can be done by modifying RebarTools.py file of Rebar Addon.
- The dialog box will be developed using QtDesigner. User will provide input through this dialog box.
- The inputs provided by the user will then be passed to prebuilt functions of Rebar Addon. Below is the list of that functions:
- makeStraightRebar(f_cover, coverAlong, rt_cover, lb_cover, diameter, amo unt_spacing_check, amount_spacing_value, orientation = "Horizontal", structure = None, facename = None): Adds the straight reinforcement bar to the selected structural object.
- makeUShapeRebar(f_cover, b_cover, r_cover, l_cover, diameter, t_cover, rounding, amount_spacing_check, amount_spacing_value, orientation = "Bottom", structure = None, facename = None): Adds the U-Shape reinforcement bar to the selected structural object.
- makeLShapeRebar(f_cover, b_cover, l_cover, r_cover, diameter, t_cover, rounding, amount_spacing_check, amount_spacing_value, orientation = "Bottom Left", structure = None, facename = None): Adds the L-Shape reinforcement bar to the selected structural object.
- makeStirrup(l_cover, r_cover, t_cover, b_cover, f_cover, bentAngle, bentFactor, diameter, rounding, amount_spacing_check, amount_spacing_value, structure = None, facename = None): Adds the Stirrup reinforcement bar to the selected structural object.
- makeHelicalRebar(s_cover, b_cover, diameter, t_cover, pitch, structure = None, facename = None): Adds the Helical reinforcement bar to the selected structural object.
- To implement Master configuration:
- An icon will be made and integrated in drop down menu of Rebar Addon by modifying RebarTools.py file of Rebar Addon.
- The master configuration file will be created and supplied with Rebar Addon.
- When user will click on icon, the FreeCAD function “FreeCADGui.open(<file_location>)” will be called with appropriate file_location. This will open file in FreeCAD for editing.
- Note: The open() function of FreeCAD does not support ‘.txt’ files, and thus file will be Python file with extension ‘.py’.
- The master configuration will be imported into other files and used for setting default values for Rebar detailing.
Timeline
As an overview, out of beam and column reinforcement, reinforcement for column is more simpler and will be completed in the first phase before the first evaluation.
- Community Bonding Period (6 May - 27 May)
- Having interaction on mailing list and IRC regarding important aspects of project.
- Get to be more familiar with the code and workflow of FreeCAD and Rebar Addon.
- Learn more about PySide, STAAD.Pro file format and reinforcement in beams and columns.
- Learn Doxygen syntax and inkscape.
- 27 May - 20 June (25 days)
- Create UI for beam reinforcement.
- Implement beam reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.
- 21 June - 23 June (3 days)
- Backup days for any backlog or pending task and preparation for phase I evaluation.
- 24 June - 28 June (5 days, Phase I evaluation)
- Developers documentation using Doxygen.
- Submitting all the work to mentor.
- 29 June - 18 July (20 days)
- Implement UI for circular column reinforcement.
- Implement circular column reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.
- Create required images and icons using inkscape.
- Integrate UI with Rebar Addon UI.
- 19 July - 21 July (3 days)
- Backup days for any backlog, pending task, bug fixes and preparation for phase II evaluation.
- 22 July - 26 July (5 days, Phase II evaluation)
- Developer documentation using Doxygen.
- Submitting all the work to mentor.
- 27 July - 11 August (16 days)
- Create UI for square/rectangular column reinforcement.
- Implement square/rectangular column reinforcement detailing function for passing user input to prebuilt Rebar Addon functions.
- 12 August - 18 August (1 week)
- Work on UI enhancement to improve user experience.
- Work on backlogs and bug fixes.
- 19 August - 26 August (8 days, Final evaluation)
- Developer documentation using Doxygen.
- User documentation through detailed tutorial and post on FreeCAD wiki with screenshots.