Beam Engine--V0.17 PartDesign--Mastersketch Process

Show off your FreeCAD projects here!
User avatar
Posts: 766
Joined: Fri May 17, 2013 3:54 pm
Location: Manhattan New York

Beam Engine--V0.17 PartDesign--Mastersketch Process

Postby ppemawm » Sun May 06, 2018 5:01 pm

In a previous project I investigated the use of Body shapebinders to link the rotating and reciprocating parts in a simple twin cylinder. Although this worked quite well, it should be noted that each of the shapebinders were linked to each other by external geometry links. This makes the model unstable if any of the body features are modified which change the number of vertices, edges, or faces.

In this project, which is a much more complex articulating mechanism, I wanted to explore any advantages of using a single mastersketch to link all of the moving parts in a more robust manner. The model was created from drawings of a design by Gerry Dykstra available at

The engine consists of stationary, rotating, and reciprocating parts. The stationary and moving subassemblies are organized in the tree as a collection of Bodies in separate PartDesign Parts so that they can be easily separated when modelling.
Picture1.jpg (245.12 KiB) Viewed 4153 times
The moving parts are mostly in two separate planes, one for the crankshaft, rocking beam, and piston subassembly, and, the other for the valve mechanism. This picture shows the model at a different crank angle of 1 deg by changing the mastersketch constraint in the Property panel of the Model tree.
Picture2.jpg (210.33 KiB) Viewed 4153 times
A single mastersketch was used to capture the geometric relationship of all the moving parts. The crank angle and the valve timing angle are considered variable and are named in the constraints. The mastersketch was linked by external geometry to shapebinders of sketches of key fixed points in the assembly.

The sketch should be as simple as possible. Constraints need to be chosen carefully so that only one unique solution is possible regardless of the crank or valve timing angle. It is important at this step to vary these angles in the mastersketch from 0 to 360 deg to insure that the sketch is absolutely robust.

The challenge is to link every moving body to a shapebinder of this sketch rather than to any other body or feature.
Picture3.jpg (247.65 KiB) Viewed 4153 times
This is an example of how a Body is linked to the mastersketch. Each body begins with a shapebinder of the mastersketch. The body sketches are then attached to this shapebinder and constraints are linked by external geometry to key lengths and pivot vertices as can be seen in the picture. It is important that all dimensional constraints are relative only to the shapebinder.

Again, constraints must be chosen carefully and checked by varying the crank and valve timing angles in the mastersketch to test the robustness as each body is created. It is recommended that no horizontal or vertical constraints be used, i.e. create the sketches at some arbitrary crank angle.

I discovered that when checking the sketch constraints you have to change the variable angles in small increments and avoid exact 0,90,180,270,360 angles otherwise even the best of constraints may fail and destroy the sketch.
Picture4.jpg (186.29 KiB) Viewed 4153 times
All of the valve bodies were created in a single Part so that it could be moved as a subassembly to the proper location using Placement properties. Note that the mastersketch shapebinder follows the Part which facilitates the modelling process.
Picture5.jpg (167.44 KiB) Viewed 4153 times

I used the fastener workbench for all of the stationary screws, nuts, and washers but had to create all of the fasteners for the moving parts from scratch. AFAIK there is no way to attach a workbench fastener directly to a vertex in the mastersketch shapebinder although they can be attached to edges of the moving bodies.

IMHO the single mastersketch approach is much more robust than chaining body shapebinders. Any of the body features can be changed without affecting any other body. The approach does take more planning of how the model will be created in the beginning of the process since every body depends upon the mastersketch. Attaching sketches to shapebinders of a mastersketch requires a bit of different thinking than attaching to faces, but I have found from this exercise that it is quite possible to create a robust and complex model without using faces or edges of bodies.

FreeCAD V0.17 capabilities never cease to amaze me, especially this new generation of PartDesign.
Now, for something more challenging.... :ugeek:

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13519 (Git).
Build type: Release
Branch: releases/FreeCAD-0-17
Hash: 1a8b868018f45ea486c0023fdbfeb06febc1fb89
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedStates (en_US)
"It is a poor workman who blames his tools..." ;)
Posts: 30694
Joined: Tue Mar 17, 2015 9:14 am

Re: Beam Engine--V0.17 PartDesign--Mastersketch Process

Postby chrisb » Sun May 06, 2018 5:16 pm

I stand in awe!
I have hardly seen a better argument for a master sketch.
You need at least FreeCAD 0.19.23300 to edit my current sketches.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Posts: 419
Joined: Sun Jan 21, 2018 1:43 pm

Re: Beam Engine--V0.17 PartDesign--Mastersketch Process

Postby schupin » Sun May 06, 2018 7:23 pm

Always astonishing models !

It's far far away from the little test I did using a master sketch, but it's way more impressive :)
User avatar
Posts: 6075
Joined: Thu Jul 11, 2013 3:06 pm

Re: Beam Engine--V0.17 PartDesign--Mastersketch Process

Postby bejant » Mon May 07, 2018 1:10 pm

ppemawm wrote:
Sun May 06, 2018 5:01 pm
FreeCAD V0.17 capabilities never cease to amaze me, especially this new generation of PartDesign.
And you (along with your modeling) never ceases to amaze me!

ppemawm wrote:
Sun May 06, 2018 5:01 pm
Now, for something more challenging.... :ugeek:
I'm looking forward to seeing whatever you might create next (maybe a refinery, or a nuclear power plant :lol:)!