User:Suraj Dadral/GSoC20/logs: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOCright}}
= Community Bonding Period (May 4 - June 1, 2020) =
= Community Bonding Period (May 4 - June 1, 2020) =
----
----



'''7 May:''' Explore how to use TechDraw objects as python scripted objects. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=396233#p396233 <br>
'''7 May:''' Explore how to use TechDraw objects as python scripted objects. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=396233#p396233 <br>
Line 46: Line 48:


'''31 May:''' Implement Rebar Addon as FreeCAD Reinforcement Workbench. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/c76cbe428d6d463376c331693aca8a000cc161f6 commit]
'''31 May:''' Implement Rebar Addon as FreeCAD Reinforcement Workbench. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/c76cbe428d6d463376c331693aca8a000cc161f6 commit]

= Coding Period (June 1 - July 3, 2020) =
----



'''1 June:''' Implemented prefences page for BillOfMaterial to edit prefernces using FreeCAD preferences edit dialog. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/c40d3b6b281b785292cd25bd7272186c67a29b02 commit]<br>
'''1 June:''' Implemented prefences page for BillOfMaterial to edit prefernces using FreeCAD preferences edit dialog. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/c40d3b6b281b785292cd25bd7272186c67a29b02 commit]<br>
Line 54: Line 60:


'''4 June:''' Implement passing rebars list to BOM. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/160beba18f3279b69933df7ddfda225400af56ec commit]<br>
'''4 June:''' Implement passing rebars list to BOM. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/160beba18f3279b69933df7ddfda225400af56ec commit]<br>
Why passing rebars list instead of structural elements? Find [https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p405532 here].
Why passing rebars list instead of structural elements? Find [https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p405532 here].<br>
Pass structures to select ArchRebar objects for BOM. In Gui, if user selects structures, then all ArchRebar objects in that structure will be included in BOM. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/1003dded6a1f4bee1a4e86c9185ef1405cfbbc28 commit]

'''7 June:''' Meeting with @amrit3701 regarding project progress. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p406447

'''8-9 June:''' Create documentation for Bill Of Material on FreeCAD wiki pages. https://wiki.freecadweb.org/Arch_Rebar_BOM

'''10-13 June:''' Explore TechDraw workbench for generating reinforcement drawing. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p408218

'''14-20 June:''' Explore Drawing workbench and Draft.getSVG() to generate svg views for reinforcement drawing.<br>
Create custom functions for proof of concept of automatic drawing and dimensioning. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/9f6b251c911fdba31ae780fca545698c0d6d2c3d commit]<br>
Why not using TechDraw/Drawing workbench instead of custom functions: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=140#p410091

'''21-22 June:''' Use python xml library for reinforcement drawing svg. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/9b12433e9a7a369437a020faade6da70eac0421b commit]

'''23-26 June:''' Create LShape Rebars drawing SVG. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/f249498a681fda9123147986d50070403f5101fc commit]

'''27-28 June:''' Create Stirrups drawing SVG. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/e345bd66dffc7a4f6ef1141960e62e1154190afe commit]

'''29-30 June:''' Improve logic for calculation of min_x, min_y, max_x and max_y. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/8f4242e2b152f8e3bb5a75e45bd10a43fec933d2 commit]

'''1-2 July:''' Create UShape Rebars drawing. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/eb13615ee002412f517c44448b9df8bc22a78d44 commit]

'''3 July:''' Use BoundBox to calculate min_x, main_y, max_x and max_y when viewed from "Front", "Rear", "Top" etc. view direction. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/05916d215f33d81a9beba6b512a1869a4a5b4c91 commit]

= Coding Period (July 4 - July 23, 2020) =
----


'''4 July:''' Create helical rebars drawing. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/121d686c00ead140911668df419e7ddb1e658b86 commit]<br>
Create custom rebars svg using Draft.getSVG(). [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/ebe8416db6b062316b74853925d600eda840d59b commit]<br>
Move RebarShape property from rebar.ViewObject.RebarShape to rebar.RebarShape [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/d719f17148a92deea3759551c02e76508fa2fba1 commit1], [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/deb8978b66270dac67bf03e2f55bca7d775061e5 commit2]

'''5-6 July:''' Create ReinforcementDrawingContent object same as BOMContent object, to show reinforcement drawing in FreeCAD. And Implement passing structure list to create reinforcement drawing, if not provided, reinforcement drawing will be generated for all structures acting as Host for rebar objects. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/8117288f86cd5f109db75903d8d4cfd4613c6e5d commit]

'''7 July:''' Fix issue as reported here: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=414350#p414513 (Add default template file for reinforcement drawing). [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/d24cabaf77faae87b4edc620d54431cfe8f8ac0b commit]

'''8 July:''' Make reinforcement drawing view object parametric. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/6b68fc03eed47941b365b2b655c68410431ec862 commit]

'''9 July:''' Add color to rebars/structure and allow custom scaling and placement. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/547f07615ce766dd9839ba5c48cb4de0a6de1aba commit]

'''18 July:''' Create parametric object for reinforcement dimensioning. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/8687c6e59c218b81276e3b2c3b95b90db917396a commit]

'''19 - 20 July:''' [WIP] Create stirrup dimensioning. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/a309d5c407cbf4219f0397c780d4a885004f7430 commit]

'''21 - 22 July:''' Rotate MidOfLine dimension label with line. [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/59fe2856ed6e5f55f1ec25e2ba88db1265ce366e commit]<br>
Tried calculating boundbox for text in svg and use it to detect collision before creating new reinforcement dimension. But, aborted this method as after discussing with @amrit3701 and got suggestion to define point at each side (left/right/top/bottom) of svg and increment it with each new reinforcement dimension object as required.


= Todo =
----
----
'''Todo:'''


&#10003; Update code to use xml tree for generating Bill of Material svg. [08/05/2020]<br>
&#10003; Update code to use xml tree for generating Bill of Material svg. [08/05/2020]<br>
&#10003; Implement specifying user template for Bill of Material svg. [10/05/2020]<br>
&#10003; Implement specifying user template for Bill of Material svg. [10/05/2020]<br>
&#10003; Implement word-wrap for svg column headers. [Alternate solution is [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/d887c950df13e5ef6d348855bfdc584455e04b5f commit1], [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/b48a52e14bd23f48041e72beddcf99754bfaf03d commit2] 22/05/2020]<br>
&#10003; Implement word-wrap for svg column headers. [Alternate solution is [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/d887c950df13e5ef6d348855bfdc584455e04b5f commit1], [https://github.com/SurajDadral/FreeCAD-Reinforcement/commit/b48a52e14bd23f48041e72beddcf99754bfaf03d commit2] 22/05/2020]<br>
* Implement passing structure as input for BOM generation.
&#10003; Implement passing structure as input for BOM generation. [04/06/2020]<br>

Latest revision as of 19:03, 23 July 2020

Community Bonding Period (May 4 - June 1, 2020)



7 May: Explore how to use TechDraw objects as python scripted objects. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=396233#p396233
Start converting bill of material svg code to use "xml" python library.

8 May: Implement using xml python library for BOM svg generation. commit

9 May: Add font-family input field to svg config ui. commit
And start implementing specifying user template for Bill of Material svg.

10 May: Implement specifying user template for Bill of Material svg and Save it in TechDraw object. And remove adding header/footer to svg as same can be achieved using user template. commit
Add right & bottom offset constraint to BOM svg. commit
Add FontSize parameter to BOMContent object commit

11-12 May: Implement ui for BOM user template. And add Width and Height attributes to bom_content object. Remove xml declaration from output file above BOM table, automatically added by xml minidom, as xml declaration is allowed only at start of document. commit
Add parameters in BOMContentObj to control position and scale of bom svg. commit

15 May: Add GSoC proposal to FreeCAD wiki. proposal

16 May: Learn more about rebar drawings and bar bending schedule. bbs1, bbs2, bbs3, bbs4

17 May: Implement BillOfMaterial svg and spreadsheet to work for both ArchRebar and rebar2 objects. commit
Project discussion with @amrit3701. report

19-21 May: Modify column width to fix text overflow in gui mode as discussed here. commit

22 May: Fix text overflow in pure console mode. And modify some code to generate SVG in pure console mode. commit
Use round(FreeCAD.Units.Quantity("10 mm").Value) instead of round(FreeCAD.Units.Quantity("10 mm")). commit
For exception handling, don't use base exception, instead use appropriate exception. For checking properties of BOM_content object in function setProperties() here, use ``if not hasattr(obj, "Font")`` instead of ``if "Font" not in pl`` from performance point of view. commit
Tested BOM generation in FreeCAD console and in pure console mode and fixed some code and is now working fine in pure console mode and in FreeCAD console, in pure console and in Gui.

23 May: Store preferences in FreeCAD user preferences path. commit

24 May: Add save preferences checkbox while creating Bill Of Material. commit

25 May: Meeting with @amrit3701 for project progress: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=401710#p401797
Fix SIGSEGV due to QFontComboBox after exiting freecad. commit
And use FreeCAD.GuiUp to check if gui is available as discussed with @amrit3701 here: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=401710#p401797

26 May: Hide FontFilename property in Property Editor. And fix error 'dict_items' object is not reversible. commit

28-29 May: Fix row height when increasing font size. commit

30 May: Set font in ui from available fonts from QFontBox, if preferred font is not present in system. commit

31 May: Implement Rebar Addon as FreeCAD Reinforcement Workbench. commit

Coding Period (June 1 - July 3, 2020)



1 June: Implemented prefences page for BillOfMaterial to edit prefernces using FreeCAD preferences edit dialog. commit
Preview: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=405283#p404750

3 June: Report issue related to Gui::PrefFontBox on FreeCAD forum and get it resolved by @wmayer.
Some ui improvements. commit

4 June: Implement passing rebars list to BOM. commit
Why passing rebars list instead of structural elements? Find here.
Pass structures to select ArchRebar objects for BOM. In Gui, if user selects structures, then all ArchRebar objects in that structure will be included in BOM. commit

7 June: Meeting with @amrit3701 regarding project progress. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p406447

8-9 June: Create documentation for Bill Of Material on FreeCAD wiki pages. https://wiki.freecadweb.org/Arch_Rebar_BOM

10-13 June: Explore TechDraw workbench for generating reinforcement drawing. https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=130#p408218

14-20 June: Explore Drawing workbench and Draft.getSVG() to generate svg views for reinforcement drawing.
Create custom functions for proof of concept of automatic drawing and dimensioning. commit
Why not using TechDraw/Drawing workbench instead of custom functions: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&start=140#p410091

21-22 June: Use python xml library for reinforcement drawing svg. commit

23-26 June: Create LShape Rebars drawing SVG. commit

27-28 June: Create Stirrups drawing SVG. commit

29-30 June: Improve logic for calculation of min_x, min_y, max_x and max_y. commit

1-2 July: Create UShape Rebars drawing. commit

3 July: Use BoundBox to calculate min_x, main_y, max_x and max_y when viewed from "Front", "Rear", "Top" etc. view direction. commit

Coding Period (July 4 - July 23, 2020)



4 July: Create helical rebars drawing. commit
Create custom rebars svg using Draft.getSVG(). commit
Move RebarShape property from rebar.ViewObject.RebarShape to rebar.RebarShape commit1, commit2

5-6 July: Create ReinforcementDrawingContent object same as BOMContent object, to show reinforcement drawing in FreeCAD. And Implement passing structure list to create reinforcement drawing, if not provided, reinforcement drawing will be generated for all structures acting as Host for rebar objects. commit

7 July: Fix issue as reported here: https://forum.freecadweb.org/viewtopic.php?f=23&t=44580&p=414350#p414513 (Add default template file for reinforcement drawing). commit

8 July: Make reinforcement drawing view object parametric. commit

9 July: Add color to rebars/structure and allow custom scaling and placement. commit

18 July: Create parametric object for reinforcement dimensioning. commit

19 - 20 July: [WIP] Create stirrup dimensioning. commit

21 - 22 July: Rotate MidOfLine dimension label with line. commit
Tried calculating boundbox for text in svg and use it to detect collision before creating new reinforcement dimension. But, aborted this method as after discussing with @amrit3701 and got suggestion to define point at each side (left/right/top/bottom) of svg and increment it with each new reinforcement dimension object as required.


Todo:

✓ Update code to use xml tree for generating Bill of Material svg. [08/05/2020]
✓ Implement specifying user template for Bill of Material svg. [10/05/2020]
✓ Implement word-wrap for svg column headers. [Alternate solution is commit1, commit2 22/05/2020]
✓ Implement passing structure as input for BOM generation. [04/06/2020]