User:Suraj Dadral/GSoC20/logs

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

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