From 64f75f21a7c9b146edebfc4f539266be8e48d308 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Fri, 5 Sep 2025 18:20:59 +0100 Subject: [PATCH] Added the new model files! --- model/chainset.scad | 77 ++++++++++++++++++++++++++++++++++++++ model/library/look-keo.svg | 42 +++++++++++++++++++++ model/pedal.scad | 16 ++++++++ 3 files changed, 135 insertions(+) create mode 100644 model/chainset.scad create mode 100644 model/library/look-keo.svg create mode 100644 model/pedal.scad diff --git a/model/chainset.scad b/model/chainset.scad new file mode 100644 index 0000000..62580ba --- /dev/null +++ b/model/chainset.scad @@ -0,0 +1,77 @@ +// chainset.scad + +// (c) Simon Brooke 2025; CC-BY-SA +// Derived from Hampus Andersson's Sprocket Generator + + +include + +include + +include + +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); + + echo( "Radius=", radius, "mm"); + + difference() { + color("grey") + sprocket( teeth=teeth, roller=roller, pitch=pitch); + + translate([0, 0, -10]) + cylinder(h=20, r=radius*.75); + } +} + +module spider(radius, arms) { + for(i=[0:1:5]) + rotate([0,90,i*(360/5)]) + color("grey") + prismoid(size1=[7, radius/5], size2=[5, radius/7], height=radius*.9); +} + + +module chainset(teeth=53, arms=5, crank=172, bbshell=68) { + radius = sprocket_radius(teeth=teeth); + + chainring(teeth=teeth); + spider(radius*.9, 5); + + // cranks + rotate([0, 90, 0]) + translate([6, 0, -10]) + color("grey") + prismoid(size1=[10, 25], size2=[7, 18], h=crank+20); + + rotate([0, 90, 180]) + translate([0 - (12+bbshell), 0, -10]) + color("grey") + prismoid(size1=[10, 25], size2=[7, 18], h=crank +20); + + // pedals + translate([0-crank, 0, 20 + bbshell]) + pedal(); + translate([crank, 0, 0-4]) + mirror([0, 0, 1]) + pedal(); + + translate([0, 0, 5]) + color("black") + cylinder(h=bbshell, r=17); + + translate([0, 0, -5]) + color("black") + cylinder(h= bbshell+20, r=6); + +} + +// chainring(); +// spider(90, 1); + +chainset(teeth=82, crank=140); \ No newline at end of file diff --git a/model/library/look-keo.svg b/model/library/look-keo.svg new file mode 100644 index 0000000..8d5c73f --- /dev/null +++ b/model/library/look-keo.svg @@ -0,0 +1,42 @@ + + + + diff --git a/model/pedal.scad b/model/pedal.scad new file mode 100644 index 0000000..c0d0902 --- /dev/null +++ b/model/pedal.scad @@ -0,0 +1,16 @@ +// pedal.scad + +// (c) Simon Brooke 2025; CC-BY-SA + + +module pedal(){ + rotate([0, 270, 0]) + scale([.6, .6, .6]) + translate([-50, -160, 0]) + linear_extrude(height = 10, center = true) + // color("black") + import("library/look-keo.svg"); + cylinder(h=80, r=6); + } + +// pedal(); \ No newline at end of file