Miniature oscillating steam engine

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Miniature oscillating steam engine

Post by troyp76 »

Hi, I'm Troy from Melbourne, Australia.

I'm new on this forum and I'd like to introduce myself.
I have been using FreeCAD off and on for about 1 year now mostly to create 3D printed parts while at home during lockdowns.
Projects so far include parts for my 1928 Willys Overland Whippet vintage car, camper trailer and general household items.

During this time, I have been amazed at how far FreeCAD has come since I first installed 0.8 out of curiosity many years ago.
Congratulations to all the contributors and developers.

In the spirit of giving back I have attached an animated miniature oscillating steam engine model that I used to learn the A2Plus and the Exploded Assembly workbenches.
steam_animation.gif
steam_animation.gif (919.78 KiB) Viewed 4417 times

This steam engine design is relatively simple, but it has served me well over the years as my go to project when learning new tools.
(See my next post for more background)

The engine components are modelled using Part Design except the bolt and nut which are created using the Fasteners workbench. A2Plus was then used for assembly.
  • Some parts like the piston have an additional hidden body for the 3D print support structure.
  • The bolt (aka screw) occasionally had/has invalid geometry (unthreaded shaft would be missing a face) when created by the workbench. This caused issues when exporting a .amf file for 3D printing. A boolean fuse between the screw and a Cylinder was used to force the export to produce the expected solid as a workaround.
The python script from the A2Plus wiki page was then adapted to animate the engine by rotating the crankshaft angle, solve the constraints and then save a .bmp file for each frame. These frames were then combined into the above GIF.

Exploded Assembly workbench was then used to create the following GIF using a screen grabber.
steam_explode.gif
steam_explode.gif (333.83 KiB) Viewed 4417 times
From here I exported all the components (with the relevant custom supports enabled) as .amf files for importing into prusaSlicer to print.

My goal was to design a fully 3D printed model that snapped together and included a functional bolt, nut and spring.
3dprint assembly components.png
3dprint assembly components.png (886.74 KiB) Viewed 4417 times

The bolt, nut, piston and cylinder head needed some post processing to smooth the surfaces but otherwise it assembled and ran (using compressed air) as printed.
steam_3dprintRun.gif
steam_3dprintRun.gif (523.85 KiB) Viewed 4417 times

Printing the spring was the most challenging aspect requiring a strategically placed support and a lot of patience to remove it after printing.
spring with support.png
spring with support.png (18.66 KiB) Viewed 4417 times

[ Post 1 of 3 ]

OS: Windows 10 Version 1909
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24291 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: 7b5e18a0759de778b74d3a5c17eba9cb815035ac
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/Australia (en_AU)
Last edited by troyp76 on Tue Jun 08, 2021 11:43 pm, edited 1 time in total.
chrisb
Veteran
Posts: 54288
Joined: Tue Mar 17, 2015 9:14 am

Re: Miniature oscillating steam engine

Post by chrisb »

Hi and welcome to the forum!

Thanks for sharing! It's the first time I have seen a 3D printed spring!
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Re: Miniature oscillating steam engine

Post by troyp76 »

All the required components, assembly and macro files required to reproduce the above are attached.
Note: The original spring.FCStd file with the supports was too large to post so I only included a refined copy for the A2plus assembly to use.

[ Post 2/3 ]
Attachments
flywheel.FCStd
(14.63 KiB) Downloaded 85 times
enginepole.FCStd
(48.2 KiB) Downloaded 87 times
cylinderhead.FCStd
(51.77 KiB) Downloaded 81 times
crankshaft.FCStd
(104.87 KiB) Downloaded 82 times
bolt.FCStd
(226.84 KiB) Downloaded 78 times
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Re: Miniature oscillating steam engine

Post by troyp76 »

Remaining files attached.

[ Post 3/3 ]
Attachments
SteamAnimate.FCMacro
(1.68 KiB) Downloaded 92 times
steamengineAssembly.FCStd
(279.18 KiB) Downloaded 84 times
spring.FCStd
(81.32 KiB) Downloaded 79 times
piston.FCStd
(164.17 KiB) Downloaded 73 times
nut.FCStd
(72.44 KiB) Downloaded 72 times
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Re: Miniature oscillating steam engine

Post by troyp76 »

Background Information

As mentioned in the first post, this miniature steam engine model has served me well over the years as my go to project when learning new tools.
It all started when my father gave me a copy of a 1949 Popular Science magazine to read while in high school. On page 201 there were plans for a Midget / Miniature oscillating steam engine.
Popular Science October 1949.png
Popular Science October 1949.png (496.38 KiB) Viewed 4369 times
https://books.google.com.au/books?id=gi ... &q&f=false

I convinced my Engineering Workshop Practices teacher at the time to allow me to make this model instead of the “Plumb Bob” that the rest of the class was making. He agreed and as a result, I learnt how to use a manual lathe to make the working engine in the picture below.
original_engine.png
original_engine.png (135.86 KiB) Viewed 4369 times

Then while studying Computer Science I again turned to this model to learn interactive 3D graphics programming using the OpenGL and GLUT libraries.
3D graphics (OpenGL) was relatively new back then and we only had limited access to Silicon Graphics Indy workstations for development during lab times at university.
To help learn and to develop the application I built my own Linux 1.x kernel and Mesa3D 1.x (OpenGL SW rendering) library from source to run on my home 386 PC. It was painfully slow and unreliable but amazingly powerful and inspiring knowing that I could do all this using only open-source software without a very expensive SGI machine.

steam_openg.gif
steam_openg.gif (393.97 KiB) Viewed 4369 times

The source code “steam.c” for the above application was sent to and then accepted by the GLUT developers as an example. It is still available today and has since been ported to several other programming languages, used for teaching, and even discussed in textbooks.

https://www.opengl.org/archives/resourc ... ntrib.html

The recent discovery of the textbooks covering “steam.c” inspired me to reproduce the model in FreeCAD and then contribute it to the FreeCAD community.

Back in the mid 90’s it took months to create the build environment and then actually develop “steam.c”. Even then I was not able to fully capture the model as I wanted given the time available for the assignment.
In contrast it only took hours to model the components, assembly them and then animate it using FreeCAD.

Just goes to show how far things have come.
kisolre
Veteran
Posts: 4166
Joined: Wed Nov 21, 2018 1:13 pm

Re: Miniature oscillating steam engine

Post by kisolre »

"But can it run Crysis" for hardware :)
Nice model. How thick are the spring supports? Maybe you could model just a shorter one (just 1-2 turns) to show the modelled supports?
chrisb
Veteran
Posts: 54288
Joined: Tue Mar 17, 2015 9:14 am

Re: Miniature oscillating steam engine

Post by chrisb »

And again: thanks for sharing. (You definitely need a double-extruder printer).
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Re: Miniature oscillating steam engine

Post by troyp76 »

chrisb wrote: Tue Jun 08, 2021 6:24 am And again: thanks for sharing. (You definitely need a double-extruder printer).
Yes that would be very useful!
troyp76
Posts: 32
Joined: Thu May 06, 2021 8:05 am

Re: Miniature oscillating steam engine

Post by troyp76 »

kisolre wrote: Tue Jun 08, 2021 5:49 am "But can it run Crysis" for hardware :)
Yes in deed. I thought I was being too optimistic with the print but I was surprised how well it assembled and that it actually ran without disintegrating.
When I pulled it apart after the run there was no obvious wear marks or cracks etc. :)

How thick are the spring supports? Maybe you could model just a shorter one (just 1-2 turns) to show the modelled supports?
I just retried attaching the original spring model with the support and the forum accepted it this time.
(see attached)

To make the support as thin as possible I used a 0.4mm thick pad to match the printer's nozzle diameter.

Then there are 3 triangular pockets cut from the pad.
  • Centre hole to allow access with pliers to carefully pry the supports away. It helped to have something inserted through the spring to avoid pulling the spring itself apart.
  • Top and bottom holes where the helix meets the top and bottom rings respectively. This caused some bridging issues in the print but it was better than trying to pry the support out of the tight area.
Attachments
spring.FCStd
(984.82 KiB) Downloaded 75 times
Post Reply