V0.19_Rupnow Vertical Cylinder Engine--A Mastersketch Study

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

V0.19_Rupnow Vertical Cylinder Engine--A Mastersketch Study

Post by ppemawm »

Since V0.18 I have become a fierce proponent of master and carboncopy sketches to avoid all topological issues and to simplify the modelling process. This Rupnow engine is a good intermediate level project to show how these master sketches can be also used to verify the position of rotating and reciprocating bodies in an assembly during the modelling process.

All bodies were created "in context" with the PartDesign workbench. Assembly workbenches were not used and fasteners are not included in the model. Reference drawings are available here: https://www.mediafire.com/file/fh7wnz2d ... E.zip/file

For inquisitive inexperienced users, a few screenshots with brief comments regarding the process are as follows:

It has generally been my practice when modelling in context to use Part container placement properties to locate subassemblies, Body placement to locate individual components with respect to their subassembly, and Sketch Map Mode to locate features with respect to the Body placement.  Sketches are not attached to faces, edges, or vertices of any other sketch or the model but rather to origin planes and offset or rotated using sketch attachment properties.<br /><br />This model tree is organized as a series of subassembly 'Part' containers.  The origins of these Parts are located at some logical interface with respect to the global origin.  For example, Part (crank, con rod, piston) and Part001 (housings) subassemblies are located at the global origin to take maximum advantage of symmetry whereas the remaining parts are located at their respective positions in the housings.
It has generally been my practice when modelling in context to use Part container placement properties to locate subassemblies, Body placement to locate individual components with respect to their subassembly, and Sketch Map Mode to locate features with respect to the Body placement. Sketches are not attached to faces, edges, or vertices of any other sketch or the model but rather to origin planes and offset or rotated using sketch attachment properties.

This model tree is organized as a series of subassembly 'Part' containers. The origins of these Parts are located at some logical interface with respect to the global origin. For example, Part (crank, con rod, piston) and Part001 (housings) subassemblies are located at the global origin to take maximum advantage of symmetry whereas the remaining parts are located at their respective positions in the housings.
Picture1.jpg (99.5 KiB) Viewed 1850 times
This is an example of using a master sketch to control the position of bodies that rotate or reciprocate.  Note that the sketch is created and constrained at some arbitrary angle of the crankshaft rotation.  This angle (shown as 30 deg) is a variable named 'crank_angle'.  This name can be referenced with Expressions in other sketches and placement properties.<br /><br />Master sketches should be as simple as possible but, as Einstein would say, &quot;...not too simple&quot;.<br /><br />All of the bodies in the Part container are created from a Sketch&gt;carboncopy of the master sketch.  In this manner, their positions can be changed by varying the crank_angle in the master sketch.  This is useful to quickly check clearances within the housing during modelling as the crank rotates through 0-360 deg.
This is an example of using a master sketch to control the position of bodies that rotate or reciprocate. Note that the sketch is created and constrained at some arbitrary angle of the crankshaft rotation. This angle (shown as 30 deg) is a variable named 'crank_angle'. This name can be referenced with Expressions in other sketches and placement properties.

Master sketches should be as simple as possible but, as Einstein would say, "...not too simple".

All of the bodies in the Part container are created from a Sketch>carboncopy of the master sketch. In this manner, their positions can be changed by varying the crank_angle in the master sketch. This is useful to quickly check clearances within the housing during modelling as the crank rotates through 0-360 deg.
Picture2.jpg (95.11 KiB) Viewed 1850 times
There is no simple way to constrain the pushrod components directly to the cam master sketch so for this example I defined a vertical dimension name as 'lift' which can then be referenced by the rocker and valve components.<br /><br />The cam timing with respect to the crank angle is defined on the cam master sketch.  The cam and cam gear body placement angle is related to the crank_angle/gear ratio (2) and rotation X axis=-1 so that the cam/gear rotate in opposite direction of the crank and the gears stay in mesh when the crank angle is changed on the crank master sketch.
There is no simple way to constrain the pushrod components directly to the cam master sketch so for this example I defined a vertical dimension name as 'lift' which can then be referenced by the rocker and valve components.

The cam timing with respect to the crank angle is defined on the cam master sketch. The cam and cam gear body placement angle is related to the crank_angle/gear ratio (2) and rotation X axis=-1 so that the cam/gear rotate in opposite direction of the crank and the gears stay in mesh when the crank angle is changed on the crank master sketch.
Picture3.jpg (82.46 KiB) Viewed 1850 times
The cam sketch lift variable is used to translate the pushrod motion to the rocker and valve assemblies by including the lift variable in an expression defining the vertical position of the pushrod adjuster interface and a tangent constraint with the rocker as shown in this screenshot.<br /><br />Note that the valves and their associated components are constrained to a carboncopy of the rocker master sketch so that their movement follows that defined by the valve lift variable in the cam sketch.
The cam sketch lift variable is used to translate the pushrod motion to the rocker and valve assemblies by including the lift variable in an expression defining the vertical position of the pushrod adjuster interface and a tangent constraint with the rocker as shown in this screenshot.

Note that the valves and their associated components are constrained to a carboncopy of the rocker master sketch so that their movement follows that defined by the valve lift variable in the cam sketch.
Picture4.jpg (75.73 KiB) Viewed 1850 times
It is also possible to easily relate the valve spring helix properties (height and pitch) to the cam lift using expressions as shown in this screenshot of the exhaust valve open and close position at the min/max lift of the cam.  The helix height is directly a function of the cam lift and the pitch is simply the helix height/no. of coils.
It is also possible to easily relate the valve spring helix properties (height and pitch) to the cam lift using expressions as shown in this screenshot of the exhaust valve open and close position at the min/max lift of the cam. The helix height is directly a function of the cam lift and the pitch is simply the helix height/no. of coils.
Picture5.jpg (82.36 KiB) Viewed 1850 times
~
I probably should not share the model due to copyright restrictions but can gladly include more screenshots if anyone has a question or comment on the process or if there is further interest in any of the details.

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.18356 (Git)
Build type: Release
Branch: master
Hash: 12335c7d52376c140c5328d57902d2c0afdeb588
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United States (en_US)
"It is a poor workman who blames his tools..." ;)
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: V0.19_Rupnow Vertical Cylinder Engine--A Mastersketch Study

Post by chrisb »

Many thanks for sharing the model and the extended explanations. I am deeply impressed; as always by your models.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply