Greatly improved pedal; both secondary chain sprockets in place.

This commit is contained in:
Simon Brooke 2025-09-06 07:53:11 +01:00
parent 68b34d2f35
commit 012a888b85
4 changed files with 55 additions and 26 deletions

View file

@ -3,17 +3,16 @@
// (c) Simon Brooke 2025; CC-BY-SA
// Derived from Hampus Andersson's Sprocket Generator
include <SprocketGenerator2/files/Sprocket_Generator_v2_example_10.scad>
include <BOSL2/std.scad>
include <pedal.scad>
function sprocket_radius(teeth=52, roller=7.9, pitch=12.7) = let(roller_radius = roller/2,
radius = pitch/(2*sin(180/teeth)))
sqrt((radius*radius) - (pitch*(roller_radius+tolerance))+((roller_radius+tolerance)*(roller_radius+tolerance)));
function sprocket_radius(teeth=52, roller=7.9, pitch=12.7) =
let(roller_radius = roller/2,
radius = pitch/(2*sin(180/teeth)))
sqrt((radius*radius) - (pitch*(roller_radius+tolerance))+((roller_radius+tolerance)*(roller_radius+tolerance)));
module chainring( teeth=52, roller=7.9, pitch=12.7) {
radius = sprocket_radius(teeth=teeth, roller=roller, pitch=pitch);
@ -36,6 +35,14 @@ module spider(radius, arms) {
}
/**
* parameterised chainset with, currently, only one chainring; and,
* currently, derailleur-sized chain. Parameters are:
* `teeth`: the number of teeth, obviously;
* `arms`: the number of arms on the spider;
* `crank`: the length of the crank, in millimetres;
* `bbshell`: the width of the bottom bracket shell, in millimetres.
*/
module chainset(teeth=53, arms=5, crank=172, bbshell=68) {
radius = sprocket_radius(teeth=teeth);
@ -54,9 +61,9 @@ module chainset(teeth=53, arms=5, crank=172, bbshell=68) {
prismoid(size1=[10, 25], size2=[7, 18], h=crank +20);
// pedals
translate([0-crank, 0, 20 + bbshell])
translate([0-crank, 0, 8+bbshell])
pedal();
translate([crank, 0, 0-4])
translate([crank, 0, 0-2])
mirror([0, 0, 1])
pedal();
@ -73,4 +80,4 @@ module chainset(teeth=53, arms=5, crank=172, bbshell=68) {
// chainring();
// spider(90, 1);
chainset(teeth=82, crank=140);
// chainset(teeth=82, crank=140);