Community Bonding Period (May 6 - 27, 2019)
8 May : I created wiki page of my project on FreeCAD and BRL-CAD wiki pages.
Wiki pages on FreeCAD wiki:
User Page: https://www.freecadweb.org/wiki/User:Suraj_Dadral
Project Page: https://www.freecadweb.org/wiki/User:Suraj_Dadral/gsoc_proposal
10 May : Today, I created this page to put my daily progress. And created page https://www.freecadweb.org/wiki/User_talk:Suraj_Dadral/GSoC19/logs to keep users wish list.
11 May : Today, I created UI for Column Reinforcement and can be found here.
12 May : Today, I changed the UI according to suggestions by mentors and freecad community and can be found here. I compiled FreeCAD plugin for Qt Designer and started using it in creating UI.
13 May : Today, I changed the UI and implemented the front end of UI. I learned how to hide and unhide items from layout. And here are related commits: commit1, commit2 Added orientation for LShapeRebars to UI and created the required functions for handling them. And here is commit.
15 May : Modified UI and add fields "Hook Extension" and "Rounding" for LShape Rebar Hook to UI. And started writing function to Create SingleTieFourRebars Column Reinforcement via UI.
16 May : Add functions to create SingleTieFourRebars Column Reinforcement via UI. Now, user can create this through UI using following code snippet:
from ColumnReinforcement import ColumnReinforcement
Related git commit: commit
17 May : Today, I added initialization button to drop down menu of Rebar Addon. Now, user create SigleTieFourRebars Column Reinforcement through UI by clicking on item "Column Reinforcement" in drop down menu of Rebar Addon. And here is related commit: commit
19 May : Today, I added code to function makeSigleTieFourRebars() to add created rebars to a group and store data members related to column reinforcement in Group object. And related git commit is here. Now, I am exploring how to call edit dialog box, when user will double click on Group.
20 May : Today, I implemented to open edit dialog box by double clicking on group of rebars in tree view. And here is the commit: commit. To implement this, I explored scripted objects in freecad and implementation of VisGroup of Draft workbench in file Draft.py.
22 May : Today, I implemented to load values in edit dialog box from group and rebar properties. And fix error: <class 'TypeError'>: Object of type FeaturePython is not JSON serializable
And related git commit is here.
I modified the code structure and related commit can be found here.
23 May : Today, I set placement for Stirrups and modified ArchRebar.py file. And related PR is here.
Coding Period (May 27 - June 28, 2019)
27 May : Today, I modified basic functionality of Rebar Addon to accept clear cover instead of effective cover. And related git commit and PR is here: commit, PR
I modified function makeSingleTieFourRebars() according to changes done above. commit
28 May : Today, I modified function makeSingleTieFourRebars() to accept Left/Right/Top/Bottom cover instead of only x-direction and y-direction cover. commit
Also changed UI to reflect above changes of cover. commit
Fix cover of rear Straight/LShape Rebars. commit
31 May : Today, I enabled functionality of buttons "Custom Spacing" and "Remove Spacing" to set and reset value of custom spacing for tie through UI. commit
Implement tie editing through Column Reinforcement dialog box. commit
Implement Straight Rebars editing through Column Reinforcement dialog box. commit
1 June : Today, I implemented LShape rebars editing through Column Reinforcement dialog box. commit
Upto this point, user can create and edit SingleTieFourRebars column reinforcement through Column Reinforcement dialog box. And here is related PR: PR
4 June : Today, I started writing function for "Custom Configuration" in Column Reinforcement.
8 - 15 June : Started implementation of new UI as suggested by @amrit3701 here.
Learn how to load QWidget from one .ui file into main QDialog. Helpful link.
Learn to use QListWidget, QStackedWidget and QScrollArea.
Learn more about different size policies of widgets in QtDesigner.
17 - 18 June : Complete editing of SingleTieFourRebars column reinforcement through UI.
23 - 24 June : Create function to edit secondary rebars. And add support to edit same through UI. commit
25 - 26 June : Create documentation page for current implementation and can be found here: https://www.freecadweb.org/wiki/Arch_Rebar_ColumnReinforcement
27 June : Completed documentation of current implementation and included examples in it.
Coding Period (June 29 - July 26, 2019)
30 June : Done changes suggested by @amrit3701 as discussed here: https://forum.freecadweb.org/viewtopic.php?f=8&t=35077&start=140#p317848 and started creating dialog box for editing Number#Diameter string.
1 July : Complete implementation of dialog box for editing Number#Diameter string as discussed here: https://forum.freecadweb.org/viewtopic.php?f=8&t=35077&start=140#p318133 and related commit is: commit
2 - 3 July : Refactor code. Create function for code which creates x-direction and y-direction rebars. This function is executed while creating and editing Single Tie Multiple Rebars column reinforcement. commit
4 - 5 July : Create function to edit xdir/ydir rebars.
In previous implementation:
- Every time xdir/ydir rebars are deleted and recreated, when user open dialog box to edit column reinforcement. No matter if user change any parameter or not, xdir/ydir rebars were always recreated.
- xdir/ydir rebars will only be recreated when user changes the "rebars type" or "number#diameter" of xdir/ydir rebars, otherwise they will be edited.
6 - 8 July : Create function makeTwoTiesSixRebars() to create TwoTiesSixRebars column reinforcement. commit
9 - 11 July : Discuss about creating TwoTiesSixRebars column reinforcement. And move common functions getFacenameforRebar and getLRebarOrientationLeftRightCover from file SingleTie.py to file Rebarfunc.py. commit
12 - 13 July : Create function for circular column reinforcement. commit
17 July : Create function to edit circular column reinforcement. commit
18 July : Modify function parameters for function makeStraightRebars() and
Now, user can directly create straight rebars in circular column using function makeStraightRebars() commit
Edit circular column reinforcement from ui. commit
19 July : - Set diameter, Bent Angle and Extension Factor of both ties equal as suggested here1, here2. And fix offset values of both ties. commit
Set hook_extend_along="x-axis" for Straight Rebars. commit
Create separate function to create two rebars. commit
20 July : Create function to edit TwoTiesSixRebars column reinforcement. commit
21 July : Create TwoTiesSixRebars column reinforcement from UI. commit
Edit TwoTiesSixRebars column reinforcement from UI. commit
Load data related to CircularColumn reinforcement to UI when user double click on rebar group for editing CircularColumn reinforcement. commit
23 July : Do changes suggested by @amrit3701 here and here. commit1, commit2
Started documentation page for TwoTiesSixRebars column reinforcement. Link: https://www.freecadweb.org/wiki/Arch_Rebar_ColumnReinforcement_TwoTiesSixRebars
24 July : Edit documentation page for two ties six rebars column reinforcement. docs
26 July : Completed documentation page of two ties six rebars column reinforcement. docs
Started documentation page of circular column reinforcement. Link: https://www.freecadweb.org/wiki/Arch_Rebar_Circular_ColumnReinforcement
Coding Period (July 27 - August 19, 2019)
29 July : Implement reset button in ui. commit
30 July : Fix issue with ui spacing. commit
4 August : Create class for beam reinforcement group object. commit
Create class for two legged beam reinforcement and properties top and bottom reinforcement rebar groups. commit
Use list of tuples instead of dictionary, which will be helpful for storing properties in rebar groups. commit
5 August : Store shear reinforcement data in left and right rebar groups. commit
6 August : Started creating main beam reinforcement ui and its related .py file. And add beam reinforcement option in dropdown menu of rebar addon. commit
Create and load stirrups widget to main beam reinforcement dialog box. commit
7 August : Create top/bottom reinforcement ui and create functions for implementation of main ui and stirrups ui. commit
8 August : Initialize ui for editing NumberDiameterOffset of top and bottom reinforcement. commit
10 August : Initialize function to add new layer. commit
Use vertical layout instead of grid layout. This is done to utilize function insertWidget() of vertical layout, otherwise we need to move rows of widget manually to insert or delete widget. commit
Create Remove Set button and add created widgets to lists. commit
11 August : Implement Add Set button to create new set. commit
Create and implement Remove Set button and Remove Layer button. Use "Gui::InputField" instead of QLineEdit for input of diameter and offset values. commit
Complete implementation of NumberDiameterOffset ui. commit
12 August : Initialize ui and .py file for editing rebar type. commit
Set rebar type when NumberDiameterOffset edited. commit
Complete implementation of rebar type edit dialog. commit
Implement dialog box to edit hook orientation. commit
Implement dialog box to edit hook extension. commit
Implement dialog box to edit LShape Rebar Rounding. commit
13 August : Implement dialog box to edit layer spacing. commit
Create ui for left/right beam reinforcement. commit
Implement ShearRebars NumberDiameterOffset edit dialog. commit
Implement ShearRebars Rebar Type edit dialog. commit
14 August : Implement ShearRebars Hook Orientation edit dialog. commit
Implement ShearRebars Hook Extension edit dialog. commit
Implement ShearRebars LRebar Rounding edit dialog. commit
Create beam reinforcement from ui. commit
15 August : Started documentation page for beam reinforcement. Link
22 August : Remove error related to facename_for_s_rebars as reported by @amrit3701 here. commit
Fix error when left/right RebarType is StraightRebar. commit
Remove scroll area from Number#Diameter@Offset dialog. commit
23 August : split makeShearReinforcement() function in two functions makeLeftReinforcement() and makeRightReinforcement(). commit
Enable option to have no shear (left/right) reinforcement rebars in beam reinforcement. commit
Implement reset button in beam reinforcement dialog box. commit
✓ Modify rebar addon to accept clear cover instead of effective cover. 27/05/2019
✓ Modify function makeSingleTieFourRebars() according to changes done here. 27/05/2019
✓ Modify function makeSingleTieFourRebars() to accept Left/Right/Top/Bottom cover instead of only x-direction and y-direction cover. 28/05/2019
✓ Modify UI to accept Left/Right/Top/Bottom cover instead of only x-direction and y-direction cover. 28/05/2019
✓ Enable custom spacing for tie in Column Reinforcement dialog box. 31/05/2019
✓ Create function to edit column reinforcement created using Column Reinforcement dialog box. 01/06/2019
✓ Create new UI for column reinforcement. 15/06/2019
✓ write function to produce "Single Tie Multiple Rebars" Column Reinforcement. 22/06/2019
✓ write function to edit created "Single Tie Multiple Rebars" Column Reinforcement. 24/06/2019
✓ Create documentation for current implementation. 27/06/2019
- Create function to create Two Ties Six Rebars column reinforcement as in this image.
- Make Hook Extension field optional and default values should be taken as here.
- Implement master configuration file for Rebar Addon as proposed in project proposal.
- Modify Column Reinforcement Dialog box to:
- Accept only negative value of Top Offset if LShape Hook orientation is Top Outside/Left/Right.
- Accept only negative value of Bottom Offset if LShape Hook orientation is Bottom Outside/Left/Right.