Just for the fun of it, I redid your file, but with tanderson69's tool body (widget) approach. I worked in 0.17 mostly in PartDesign, so the new work flow needs getting used to.
First of all, the most important advice I can give you
: centre your model on the origin!
I cannot stress that enough, in any CAD program I've worked with it almost always makes things easier in the long run. You don't have to centre it in reference to all planes (XY, XZ, YZ), but at least, centre it on the YZ plane, considering XZ is "front".
When sketching, use geometrical constraints whenever possible instead of dimensional constraints. In your first Sketch under Pad, you used two 45deg angle constraints, and two 30mm vertical distance constraints. Three of these constraints can advantageously be replaced with:
- A perpendicular constraint between the two angled lines (perpendicular means 90 degrees )
- An equal length constraint between the two angled lines
- An equal length constraint between the two vertical lines
- You keep only a single 30mm vertical distance constraint.
- Also, centre the 220mm long line to the sketch vertical axis with a symmetric constraint, laying on the sketch horizontal axis.
I changed the first sketch to add a solid projection at the rear where the inlet should be, which the tool body will cut through.
About the curved grooves: this model is symmetric in regard to the YZ plane, take advantage of that, and instead of recreating mirrored sketches and their pockets on the other side of the plane, use a PartDesign Mirrored
feature; in v0.17, it can operate on multiple features (in 0.16, only one can be used at once). This is where first centring the first sketch and pad is useful.
Another thing: I went against the advice always given up to v0.16, and created linked external geometry to the first Pocket in all my groove sketches. Up to 0.16, it would not be possible because you would fork your model in as many branches as there are sketches; in the new 0.17 work flow, I feel that doing so may give a more robust model, less sensitive to changes. And rather than map my sketches to the top faces, I attached them to a datum plane I had created beforehand. Maybe I'm mistaken, this is an entirely new work flow that we need to explore and get used to, and it will take some time to figure out the most reliable methods.
Then I created Body001 as a tool body to be used in a PartDesign Boolean feature; I modelled it according to tanderson69's suggestion,
tanderson69 wrote: ↑
Tue Dec 05, 2017 2:38 pm
I created a tool body by subtracting boxes and adding simple blends. Then put 1 complex variable blend for difficult transition area.
I created a Shapebinder, which is a reference object that can copy faces from another body. Then, rather than using primitives, I created a Pad between the copied faces, and made a pocket to get this shape (the wide trans-lucid yellow rectangle is part of the Shapebinder):
Next, the fillets. Unfortunately, PartDesign Fillet
only provides constant radius fillets, not variable radii fillets; so I only made the needed constant radius fillets.
Now for the trickier part: to get the variable radii fillets (the blends tanderson69 mentioned), I needed to switch to the Part workbench; but in 0.17, Part tools cannot work directly on a PartDesign Body. So I created a Draft Clone
of Body001. Then, I could create a Part Fillet
on it. I'll admit I had to fiddle quite a lot with the start/end radii for the selected edges to get something that worked, and that looked good. Surprisingly, I was able to finish the blend to a zero radius.
After that, to use this tool body in a Boolean cut on the first Body, I needed to get it back into PartDesign. So I selected Fillet002 and this time created a PartDesign Clone
. Only PD Clones and Bodies can be used in PartDesign Boolean features.
And finally, I activated the first Body, selected the PD Clone and created a PD Boolean feature. And the model was completed.
Of course, it doesn't look half as good as Chris_G's loft!
OS: Ubuntu 16.04.3 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.12920 (Git)
Build type: None
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/Canada (fr_CA)