From 5d5649ab487a5c2a29b5b26cbbdc387c3123950b Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Fri, 5 Sep 2025 12:31:41 +0100 Subject: [PATCH] Added a model of an epicyclic. --- model/epicyclic.scad | 53 ++++++++++++++++++++++++++++++++++++++++++++ model/fourbar.scad | 3 +++ model/subframe.scad | 9 ++++++++ 3 files changed, 65 insertions(+) create mode 100644 model/epicyclic.scad diff --git a/model/epicyclic.scad b/model/epicyclic.scad new file mode 100644 index 0000000..7d96857 --- /dev/null +++ b/model/epicyclic.scad @@ -0,0 +1,53 @@ +// epicyclic.scad + +// an epicyclic gearbox, similar to a Rohloff or Shimano Nexus 11 +// dimensions in millimetres, mostly from https://www.rohloff.de/en/service/handbook/speedhub/technical-data +// (c) Simon Brooke 2025; CC-BY-SA + +include + +module epicyclic (olnd=135, disc=1) { + + body_width=116; + spoke_flange_width=3.2; + + // axle + color("grey") + cylinder(h=(olnd + 12), r=6, center=true); + + // locknuts, etc + color("black") + cylinder(h=olnd, r=15, center=true); + + // epicyclic body + color("red") + cylinder(h=body_width, r=46, center=true); + + // spoke flanges. TODO: yes, they need spoke holes. + translate([0, 0, (body_width/2) - spoke_flange_width]) + color("red") + cylinder(h=spoke_flange_width, r=54); + + translate([0, 0, 0 - (body_width/2)]) + color("red") + cylinder(h=spoke_flange_width, r=54); + + // primary chain sprocket, obvs + translate([0, 0, 3 - (olnd/2)]) + color("grey") + sprocket(teeth=20, roller=7.9, pitch=12.7); + + translate([0, 0, 0 - ((body_width/2) - spoke_flange_width)]) + color("grey") + sprocket(teeth=30, roller=7.9, pitch=12.7); + + // disc brake, if present. TODO: details of disc spider + if (disc==1) { + translate([0, 0, (olnd/2) - 7]) + color("silver") + cylinder(h=1.5, r=75); + } +} + +// rotate([90, 0, 0]) +// epicyclic(); \ No newline at end of file diff --git a/model/fourbar.scad b/model/fourbar.scad index 4cd7e7e..9fc1f4c 100644 --- a/model/fourbar.scad +++ b/model/fourbar.scad @@ -1,5 +1,8 @@ // fourbar.scad +// (c) Simon Brooke 2025; CC-BY-SA + + include include include diff --git a/model/subframe.scad b/model/subframe.scad index c5a11df..34d874c 100644 --- a/model/subframe.scad +++ b/model/subframe.scad @@ -1,9 +1,14 @@ // tricycle.scad: +// (c) Simon Brooke 2025; CC-BY-SA + + include include +include + module subframe () { // front leg (supports cross-shaft, epicyclic, motor translate([-25, 1820, -550]) @@ -83,6 +88,10 @@ module subframe () { rotate([0,90,0]) cylinder(h=80,r=4); + rotate([0,90,0]) + translate([450, 1900, 31]) + epicyclic(); + } subframe();