This project is product of experimenting with datums in Part Design New WB. I didn't "fall in love" with this feature at first sight, to be honest. My first experience with datum planes was lot of crashing, this feature was not documented well. So I decide to spent some time and explore DO's and DONT's. While drawing this I didn't experience a single crash, so I will continue to use this approach as rather stable.
I will share my findings with hope it will help someone.
So it works like this:
First I created tabletop:
1. Create New body (I renamed it to "Tabletop")
2. Create New sketch base it on XY plane
3. Draw rectangle (see sketch "Sketch" for details)
4. I named Length and Width constrain to easier find them later
5. Make a pad
Then I tried to draw a Leg:
1. Create New body (I renamed it to "Leg1")
2. In a tree, select body "Tabletop"
3. Press Shape binder to create one, confirm with OK (don't mess with any other options)
4. In tree select body "Tabletop" and hide it. You are suppose to have only Shape binder on screen (Yellowish semitransparent "ghost" of tabletop)
5. Select bottom plane of Shape binder and press "Create new sketch"
6. Draw a sketch of the leg profile (on exit, in one of 3 cases, FreeCAD crash)
7. Create a pad of it
...and than something unexpected happens. For some reason Shape binder turn to solid and fuse with my leg
NOTE: Tabletop is already hidden
OK, let's try another way:
Delete created Pad
Delete Sketch. Now we start from new point 5
5. Select bottom plane of Shape binder and press "Create Datum plane", be sure to select bottom plane of "Shape binder". Just press OK to confirm it (don't mess with any other options)
6. Select "DatumPlane" and press "Create New Sketch"
7. Draw a sketch of the leg profile. This is sketch "Sketch001" in my drawing. You can use external geometry links to "ShapeBinder"
I named some constraints "Overhang" and "Leg_Width", and refer to them afterwards like shown in picture.
8. Pad the sketch, and we have our leg.
I was not able to find a way to mirror this pad or even body. I always get "One transformed shape does not intersect support"
OK, so lets repeat procedure for other three legs. New body -> Create Shape Binder of Tabletop -> Create DatumPlane on ShapeBinder -> create Sketch on DatumPlane -> Pad
To keep all legs same length, you can use formula in Pad parameters. I really like this possibility.
So in the end we have tabletop with three legs.
I will continue with rails in next post because of 5 pictures limit.
Something about my system:
OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.8414 (Git)
Build type: Release
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17