Added a model of an epicyclic.

This commit is contained in:
Simon Brooke 2025-09-05 12:31:41 +01:00
parent 4cdce5dc0a
commit 5d5649ab48
3 changed files with 65 additions and 0 deletions

53
model/epicyclic.scad Normal file
View file

@ -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 <Library/SprocketGenerator2/files/Sprocket_Generator_v2_example_10.scad>
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();

View file

@ -1,5 +1,8 @@
// fourbar.scad
// (c) Simon Brooke 2025; CC-BY-SA
include <Library/BentSim/Bike_accessories.scad>
include <Library/NACAAirfoils/files/Naca4.scad>
include <Library/skew.scad>

View file

@ -1,9 +1,14 @@
// tricycle.scad:
// (c) Simon Brooke 2025; CC-BY-SA
include <Library/BentSim/Bike_accessories.scad>
include <Library/SprocketGenerator2/files/Sprocket_Generator_v2_example_10.scad>
include <epicyclic.scad>
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();