I have been reading and learning FreeCAD and I also have checked, not in deep, the flamingo workbench. As emills2
has mentioned, the CSW is a nice idea but has the problem of flexibility. Would be nice if the complete sketch from the profile is defined at the file and not only some geometrical parameters from a pre-defined sketch.
I have been cheking the difference between part and body in FreeCAD. I am still not 100% sure about the difference, any help will be appreciated. The best explanation that I have found is at the following discussion:
According the explanation from ickby
, body is part of PartDesign workbench and the features from this WB can be used with Body. The Library WB should include solids with some standard geometrical dimesnions and after the users should be able to make cuts, holes, bend operations, etc. For this reason, I think that all standard parts should derive from body.
After a few work, I have define a propose of class structure on the Library WB. The diagram shows the object (classes) that I want to define at the library WB and the end structure of the standard components at the library. I will be very happy if the developers from the different WB propose their ideas and show interes on this Workbench.
To define the structure showed at the picture, I have use as base the Autodesk Inventor library structure and the spanish uBIM guide from the BuildingSMART web.
My next step is to learn a littel of C++ and analyze in deep the PartDesign Workbench to define tha classes. At my actual status, I think that the additive primitive comands from PardDesign WB are a good base to create the code of the libary WB. For the moment I think to use C++ for the WB and python for the sketches files, the equivalence of CSW at flamingo WB. if someone thinks that this is a good base to start a WB I would like that some poeple with knoleg on C++ and FreeCAD development helps.