I designed a fully 3D-printable mechanical clockwork mechanism incorporating a main spring for energy storage, a balance wheel and a simple (probably novel) mechanical escapement, for which I developed a mathematical model to compute it's geometry (i.e. a special profile curve applied to a profile wheel that is being traversed by teeth on the escape wheel).
Early thoughts and the mathematical model were published in Mathematikinformation, which is a mathematical journal targeted to teachers, gifted students and other people interested in mathematics.
Later I entered the branch of mathematics of the German Jugend forscht science contest with this project and it won me the fourth place. As some people I met have requested me to release CAD files and details, I'd hereby like to comply with their requests.
You can also find the paper I wrote for and submitted to Jugend forscht for the jury to read as pdf (in German): 2021 M069 Uhrwerk Minimized. Also, there is a pdf presentation for even more recent results and details.
In addition, there exists a video of me explaining and showing off my project in 3 minutes, recorded to comply with Jugend forscht's request: [https://vimeo.com/550613551](https://vimeo.com/550613551)
Technical
- The clockwork itself was designed in [FreeCAD](https://www.freecadweb.org), version 0.19 . There are two source files, one for most of the parts required to build it (Clockwork) and one dedicated to experimenting with profile curves (Profilewheel).
- All the parts print well in standard PLA. Depending on the particular part in question, 0.3 mm layer height will suffice, but I recommend printing
- the hairspring and profile wheel in 0.1 mm.
Remember however that any imprecision will affect clockwork performance!
- A better option than PLA might be any other material that has a low coefficient of friction against itself – my experiences show that iglidur tribofilament made by a company called igus in particular reduced problems inflicted by friction, thus improving the clockwork's performance (mainly it's accuracy).
- Before printing, be warned that fine tuning in the end requires a lot of effort before the clockwork will work as reliably as desired.
On generating custom profile wheels based on a parametric curve formula:
- Find attached a slightly modified version of the popular FreeCAD macro "3D parametric curve". After making it available to FreeCAD, open the Profilewheel project file.
- Now you can run the macro and enter a formula to generate a corresponding curve (a "wire" in FreeCAD terminology).
- You may find my more complicated functions defined in the python source file useful; there is:
- stepf(…,m,w): the function proposed in the attached pdfs: applys a simple impulse to the balance wheel at the beginning of the first half period of it's oscillation cycle followed by a similar impulse into the opposite direction at the beginning of the second half period. Parameters m and w represent the force transmission ratio and the angle of the escapement wheel's rotation over which it ought to be applied, respectively.
- stepfk(…,m,w,k): the same thing but with some biasing slope k to compensate for friction observed between escapement wheel teeth and outer perimeter of the profile wheel
- ellf(…,m,w): like stepf, but interpolates corners using ellipses (not in the final geometry, but in the angle vs. force transmission factor graph)
- ellfk(…,m,w,k): ellipse interpolating version of stepfk
- ellfkv(…,m,w,k): some variant of ellfk where timing of accelerations is not perfectly symmetric assuming the absence of any friction at the profile wheel, but should be assuming the biasing slope perfectly compensates friction
- protip: to view the angle vs. force transmission factor graph before actually applying it (which may take a while depending on the resolution/interval you choose), just enter "t" for "X(a,b,c,t)" and "a" for "Y(a,b,c,t)". I recommend deleting the wire after viewing, as the project structure will become even more confusing with increasing number of objects ;)
- To apply this wire, navigate to: SchnittT002 -> AdditivT002 -> Slice.2 -> Slice -> Extrude -> Offset2D. Select this element and edit it's "source" property. Here you can select whichever wire you want to have applied to the profile wheel.