Automate Reinforcement GSoC proposal

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
Suraj Dadral
Posts: 99
Joined: Fri Sep 07, 2018 5:32 pm
Contact:

Re: Automate Reinforcement GSoC proposal

Postby Suraj Dadral » Thu Jun 06, 2019 6:28 pm

Suraj Dadral wrote:
Tue Jun 04, 2019 6:41 pm

My next plan is to write function for "Custom Configuration" in Column Reinforcement. I am writing program for this and will share soon.
Today, I partly implemented function for "Custom Configuration" in Column Reinforcement. And related commit and PR is here: commit, PR

Now user can create secondary straight rebars along x and y direction with custom diameter for secondary rebars.

Sample Output:
CustomColumnReinforcement.png
CustomColumnReinforcement.png (15.34 KiB) Viewed 565 times

Command:
CustomConfiguration.makeCustomColumnReinforcement(20, 20, 20, 20, 20, 90, 2, 20, True, 6, 20, 0, 0, "StraightRebar", "Top Inside", "x-axis", None, None, None, None, ("2#20mm+2#25mm+2#20mm", "1#20mm+1#25mm+1#20mm"))

Please review and give your suggestions.

Thanks,
User avatar
yorik
Site Admin
Posts: 11496
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Automate Reinforcement GSoC proposal

Postby yorik » Fri Jun 07, 2019 8:06 pm

Looks good Suraj! Will give this a test run after the PR is merged...
User avatar
amrit3701
Posts: 234
Joined: Mon Jun 13, 2016 5:37 pm

Re: Automate Reinforcement GSoC proposal

Postby amrit3701 » Sun Jun 09, 2019 7:01 am

@Suraj

Please share all the notes which we discussed in yesterday's meeting. :)
User avatar
Suraj Dadral
Posts: 99
Joined: Fri Sep 07, 2018 5:32 pm
Contact:

Re: Automate Reinforcement GSoC proposal

Postby Suraj Dadral » Sun Jun 09, 2019 12:41 pm

amrit3701 wrote:
Sun Jun 09, 2019 7:01 am
@Suraj

Please share all the notes which we discussed in yesterday's meeting. :)
Yesterday, me and @amrit3701 has video meeting and here are the key points of discussion:
  1. Instead of taking input in FreeCAD's Task Panel, user will be presented with new popup window to enter data.
    This change is required because in future, when input data for rebars become more, then user needs to do a lot of scrolling to change even a single value.
    So, new UI looks something like below:
    NewUI1.png
    NewUI1.png (18.84 KiB) Viewed 486 times
  2. In implementation of UI, we will create one main UI file and separate UI file for each selected menu item (like Ties, Main Rebars, etc.).
    1. Main UI file contains common UI fields for "Column Reinforcement" dialog box.
    2. All other UI files contains UI fields for their respective selected items.
    3. Other UI files will be loaded into Main UI file dynamically.
  3. In Ties section, user will be represented with drop down of number of ties along with small icon.
    In Ties section, there will be more than one section, equal to number of ties (say 3), and each section will be enabled or disabled depending on the selected number of ties.
    Related mockup:
    NewUI2.png
    NewUI2.png (34.1 KiB) Viewed 486 times
  4. In column configuration, there will be nothing like "Custom Configuration", instead user can choose from presented column configuration and do customizations with that.
  5. We discussed about concepts that will be used for creating straight rebars in circular column. So, after completing rectangular column configuration, I will implement straight rebars in circular column.
  6. Rebars will be added in groups as follow:
    RebarsGrouping.png
    RebarsGrouping.png (17.79 KiB) Viewed 486 times
  7. Each group contains property of type "Link", which points to list of rebars under it and will be disabled from editing. And in implementation of editing reinforcement, appropriate rebars will be selected with the help of this link.
@amrit3701
Please add if I missed something.

@All please review and give your suggestions for above.

Thanks,
User avatar
yorik
Site Admin
Posts: 11496
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Automate Reinforcement GSoC proposal

Postby yorik » Sun Jun 09, 2019 4:56 pm

This seems good. I think the main criteria to decide if we need to use the Task system or a standalone dialog is: Do users need to keep interacting with the 3D view while using the UI, or, on the contrary, do they need to stop what they are doing to concentrate on the UI we want to show?

I think here it's clearly the second case, so using a standalone dialog seems right.
User avatar
ebrahim raeyat
Posts: 159
Joined: Sun Sep 09, 2018 7:00 pm
Location: Iran
Contact:

Re: Automate Reinforcement GSoC proposal

Postby ebrahim raeyat » Sun Jun 09, 2019 8:15 pm

It is very useful. I think some of entry such cover, size of ties and etc can be set in configuration in freecad's configuration or if we can save the UI entry of last input from user. this way, save a lot of user's time. thanks.
User avatar
yorik
Site Admin
Posts: 11496
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Automate Reinforcement GSoC proposal

Postby yorik » Mon Jun 10, 2019 7:06 pm

ebrahim raeyat wrote:
Sun Jun 09, 2019 8:15 pm
or if we can save the UI entry of last input from user. this way, save a lot of user's time. thanks.
That's something I begin to use more and more. On quitting, save all you can that the user might not want to type again on next use. Check in Tools->Edit Parameters for a suitable location, but I would say Plugins/Reinforcement might be good. Then to save and retrieve a value:

Code: Select all

settings = FreeCAD.ParamGet("User parameter:Plugins/Reinforcement")
# to set a value
settings.SetBool("myValue",True)
# to get a value
myValue = settings.GetBool("myValue",False) # the second argument is a default, if the value doesn't exist yet
Then on loading your dialog again, fill the values
User avatar
amrit3701
Posts: 234
Joined: Mon Jun 13, 2016 5:37 pm

Re: Automate Reinforcement GSoC proposal

Postby amrit3701 » Fri Jun 14, 2019 1:01 pm

Hi @Suraj,

Just want to inform that this week I am less available (attending PyConCZ). So, if you have some urgent things feel free to ping me on Telegram or IRC.

Thanks,
User avatar
hardeeprai
Posts: 167
Joined: Sun May 23, 2010 2:41 pm
Location: Ludhiana, Punjab, India
Contact:

Re: Automate Reinforcement GSoC proposal

Postby hardeeprai » Sat Jun 15, 2019 4:55 pm

@ Suraj

On reviewing your current implementation, to make your work more useful to structural engineers / detailer, I suggest:

1. Practically, all tie covers i.e. left, right, top and bottom covers are equal. so, all covers should change according to first i.e. left cover of tie.

2. Add help button for every field.

3. Default values of tie covers may be taken as more practical value of 40 mm

4. Default value of tie offset may be 100 mm, which is more practical.

5. Default value of tie diameter should be 8 mm or 10 mm, which are most commonly used.

6. Default value of tie spacing may be taken as 100 mm
--
H.S.Rai
User avatar
Suraj Dadral
Posts: 99
Joined: Fri Sep 07, 2018 5:32 pm
Contact:

Re: Automate Reinforcement GSoC proposal

Postby Suraj Dadral » Fri Jun 21, 2019 5:13 pm

Hello everyone,
Till now, I have made new UI using which user can create and edit Single Tie Four Rebars from UI.
And related code can be found here:
https://github.com/SurajDadral/FreeCAD- ... mate-newui

In new UI, I have implemented all suggestions by @hardeeprai except point 2 i.e. Add help button for every field.

Now, I am implementing creation and editing of secondary rebars.
I will try to implement it before 24 June. And will generate documentation for code.

Thanks,