This is the repository for my clockwork library, which I've been developing for the printable clock project. I will upload future versions here, to keep them separate from the clock scripts.
Current development version to be found on git hub here:
As code from the clock scripts matures, I will move it into this library to facilitate re-use. So far I have been able to keep the library backwards-compatible, and I will try to continue that way.
This is an OpenSCAD library to create various pinion wheels, escapements and other pieces of clockwork gearing
Uses the MCAD involute_gears library and will not work without it!
Created by syvwlch and licensed under the Attribution - Share Alike - Creative Commons license.
v1 - 2011 04 15
First library version of the code
Included escapement(), placeEscapement() and escapementWheel() in particular
v2 - 2011 04 21
Added spokes() module, and used it in escapement() module
Updated escapement(), ringtooth(), tooth() and ring() modules to render better/faster in openCSG mode
v3 - 2011 04 22
Renamed to clockworkLibrary
Added hand(), handNotch(), pinionWheel(), pinionEscapementWheel(), pinionDrum()
v4 - 2011 04 29
Added negative space toggle to the parts, which defaults to false
Strengthened pinion teeth.
v5 - 2011 05 01
Added herringbone gear option, with a default value of 0
v6 - 2011 05 04
Changed how drum height in pinionDrum() is measured to work like sleeve extension does, to simplify placement math
Corrected error in how sleeve extension is measured in pinionWheel() (wheels are 2thickness+1spacer thick)
Changed how drum height in pinionEscapementWheel() is measured, to standardize
Create a drum() module, and implemeted flanges to keep the string from falling off
Retrofitted drum() into pinionDrum(), as well as for the spacer in pinionEscapementWheel() and pinionWheel()
v7 - 2011 05 04
Added an assymetric spacer so that the herringbone gears would mesh without running into the drum flanges
Switched to using mirror() to implement the two halves of the herringbone as a result
v8 - 2011 05 06
Fixed a bug in spokes() which referenced the wrong spoke width parameter (thanks kitlaan!)
v9 - 2011 05 07
Modified the escapement wheel profile to support club teeth (still defaults to ratchet teeth)
Club tooth parameters accessible in tooth(), ringtooth(), escapementWheel() and pinionEscapementWheel()
Modified escapement to control angle of impulse faces on the pallets, defaults to 45o as per ideal Graham escapement w/o club teeth
Escapement will work if impulse face angles are set to 45o minus tooth lean plus club angle, and drop can be controlled via face angle
v10 -2011 05 08
Modified the drum() module to add holes to attach a string
Backwards compatible with no holes if the new arguments are not passed
Modified pinionDrum() to make use of this new feature, but backwards compatible with no holes if the new arguments are not passed
Summary of code changes:
v11 - 2011 05 18
Modified to support the ratcheting drum designed by rustedrobot: http://www.thingiverse.com/thing:8555
Backwards compatible, one-piece drum still available as an option
Include this library AND use the MCAD involute_gear library in your script.
It includes the modules necessary to create all the necessary parts for a gear-based, gravity-driven, pendulum-regulated clock with a graham escapement.
Now includes an option to use herringbone gears, to assist with alignment.
The negative space function allows you to generate an 3D outline (with an additional margin, if desired) of the clock mechanism your script builds, just by toggling a single boolean parameter. This is very handy to design frames, and will make mashups a lot easier, too!
You can now add drums on any pinion module, pinionWheel(), pinionDrum() and pinionEscapementWheel(), and the drums will have flanges to prevent the string from falling off the drum and into the gear-train.