97 lines
2.6 KiB
OpenSCAD
97 lines
2.6 KiB
OpenSCAD
// subframe.scad:
|
|
|
|
// (c) Simon Brooke 2025; CC-BY-SA
|
|
|
|
|
|
include <BentSim/Library/Bike_accessories.scad>
|
|
include <SprocketGenerator2/files/Sprocket_Generator_v2_example_10.scad>
|
|
|
|
include <chainset.scad>
|
|
include <epicyclic.scad>
|
|
|
|
module subframe_cycleparts(rim=451, chainring_teeth=82, crank=140) {
|
|
// wheel
|
|
translate([0, 382, 93])
|
|
rotate([0, 0, 90])
|
|
wheel(rim=rim, spoke_nbr=0);
|
|
|
|
translate([-42, 382, 93])
|
|
rotate([0, 90, 0])
|
|
color("grey")
|
|
sprocket(teeth=30, roller=7.9, pitch=12.7);
|
|
|
|
rotate([90, 0, 90])
|
|
translate([660, 180, -40])
|
|
chainset( teeth=chainring_teeth, crank=crank);
|
|
|
|
rotate([0,90,0])
|
|
translate([-93, 900, 24])
|
|
epicyclic();
|
|
}
|
|
|
|
|
|
module aluminium_subframe (rim=451, chainring_teeth=82, crank=140) {
|
|
// front leg (supports cross-shaft, epicyclic, motor
|
|
translate([-25, 820, -60])
|
|
color("silver")
|
|
cube([50, 25, 366]);
|
|
// bottom bracket leg
|
|
translate([-25, 680, -90])
|
|
color("silver")
|
|
cube([50, 25, 443]);
|
|
|
|
// wheel leg
|
|
translate([-100, 345, -111])
|
|
rotate([0, 7, 0])
|
|
color("silver")
|
|
cube([25, 75, 519]);
|
|
// front upper
|
|
translate([-25, 1100, 200])
|
|
rotate([70, 0, 0])
|
|
color("silver")
|
|
cube([50, 25, 425]);
|
|
// central upper
|
|
translate([-25, 714, 343])
|
|
rotate([82, 0, 0])
|
|
color("silver")
|
|
cube([50, 25, 529]);
|
|
// rear leg
|
|
translate([-25, 0, 0])
|
|
rotate([-23, 0, 0])
|
|
color("silver")
|
|
cube([50, 25, 485]);
|
|
|
|
subframe_cycleparts(rim, chainring_teeth, crank);
|
|
}
|
|
|
|
/**
|
|
* this is more or less right. I need to sculpt out a depression for
|
|
* the secondary chain, and make a bracket to hold the epicyclic and
|
|
* motor.
|
|
*/
|
|
module carbon_subframe(rim=451, chainring_teeth=82, crank=140) {
|
|
translate([-25, 0, 0])
|
|
color("black")
|
|
difference() {
|
|
rotate([90, 0, 90])
|
|
linear_extrude( height=50)
|
|
polygon([[1020, 306], [680, 400], [150,408], [50, 0], [1020, 0]]);
|
|
translate([-26, 382, 93])
|
|
rotate([90,0,90])
|
|
cylinder( h=100, r=rim * 0.61);
|
|
}
|
|
|
|
subframe_cycleparts(rim, chainring_teeth, crank);
|
|
}
|
|
|
|
module subframe( structure="carbon", rim=451, chainring_teeth=82, crank=140) {
|
|
if (structure == "carbon") {
|
|
carbon_subframe(rim=rim, chainring_teeth=chainring_teeth, crank=crank);
|
|
} else {
|
|
aluminium_subframe(rim=rim, chainring_teeth=chainring_teeth, crank=crank);
|
|
}
|
|
}
|
|
|
|
// subframe( structure="carbon");
|
|
|