User:Suraj Dadral/GSoC19/logs

= 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 BRL-CAD wiki: User Page: https://brlcad.org/wiki/User:Suraj Project Page: https://brlcad.org/wiki/User:Suraj/gsoc_proposal

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:

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

18 May : Done changes suggested by @amrit3701 here. And here is commit. And started exploring Group Python feature object as suggested here.

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: : 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

30 May : Today, I set size of icons in Rebar dialog box. commit, PR

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

2 June : Today, I did changes suggested by @amrit3701 here and set tab order as suggested by @ebrahim raeyat here. Related git commits: commit1, commit2

4 June : Today, I started writing function for "Custom Configuration" in Column Reinforcement.

6 June : Today, I partly implemented function for "Custom Configuration" in Column Reinforcement. And related commit and PR is here: commit, PR

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.

16 June : Linked front end UI with function SingleTieFourRebars to create SingleTieFourRebars column reinforcement. commit, PR Started enabling editing from UI.

17 - 18 June : Complete editing of SingleTieFourRebars column reinforcement through UI.

19 - 22 June : Create core function to create secondary rebars. And add support to create same through UI. commit, PR

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.

28 - 29 June : Do exception handling for current implementation. Related commits: commit1, commit2, commit3

= 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. Now: - 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. commit

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

14 - 15 July : Fix issue in circular column reinforcement as discussed here. commit Create rebar groups and store properties in it. Related commits: commit1, commit2

16 July : Create ui for circular column reinforcement. commit Create circular column reinforcement from ui. commit

17 July : Create function to edit circular column reinforcement. commit

18 July : Modify function parameters for function makeStraightRebars and getPointsOfStraightRebars 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

25 July : Fix offset of ties. commit 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) =

27 July : Completed documentation page of circular column reinforcement. docs Discussed about project with @amrit3701, @hardeeprai and some civil engineer students as here.

28 July : Fix error while editing SingleTie Column Reinforcement. commit Started creating function for TwoLeggedStirrup beam reinforcement. commit

29 July : Implement reset button in ui. commit

30 July : Fix issue with ui spacing. commit

31 July : Decide function parameters and their type. commit Create helping functions getFacenamesforBeamReinforcement and getdictofNumberDiameterOffset for beam reinforcement. commit

1 August : Create straight rebars in top and bottom beam reinforcement. commit1, commit2

2 August : Create LShaped rebars in top and bottom beam reinforcement. commit Initialize function for shear reinforcement. commit

3 August : Create Straight and LShaped rebars in beam shear reinforcement. commit1, commit2 Done changes suggested by @amrit3701 here and fix infinite loop problem. commit1, commit2

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

Todo:

&#10003; Modify rebar addon to accept clear cover instead of effective cover. 27/05/2019 &#10003; Modify function makeSingleTieFourRebars according to changes done here. 27/05/2019 &#10003; Modify function makeSingleTieFourRebars to accept Left/Right/Top/Bottom cover instead of only x-direction and y-direction cover. 28/05/2019 &#10003; Modify UI to accept Left/Right/Top/Bottom cover instead of only x-direction and y-direction cover. 28/05/2019 &#10003; Enable custom spacing for tie in Column Reinforcement dialog box. 31/05/2019 &#10003; Create function to edit column reinforcement created using Column Reinforcement dialog box. 01/06/2019 &#10003; Create new UI for column reinforcement. 15/06/2019 &#10003; write function to produce "Single Tie Multiple Rebars" Column Reinforcement. 22/06/2019 &#10003; write function to edit created "Single Tie Multiple Rebars" Column Reinforcement. 24/06/2019 &#10003; 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.