From b95f639c30c42301ce7d2fc7097cc40abdeb0e68 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Tue, 16 Sep 2025 21:10:10 +0100 Subject: [PATCH] Well, the nose is too long, and there are other problems with the hull, but that's a visualisation that works. --- model/fourbar.scad | 6 ++--- model/hull.scad | 2 +- model/subframe.scad | 7 +++--- model/tricycle.scad | 8 +++--- model/wheel.scad | 61 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 model/wheel.scad diff --git a/model/fourbar.scad b/model/fourbar.scad index 340cdb0..3769381 100644 --- a/model/fourbar.scad +++ b/model/fourbar.scad @@ -3,9 +3,9 @@ // (c) Simon Brooke 2025; CC-BY-SA -include include include +include module fourbar_leg(length=1000, chord=100, long_skew=30, lat_skew=30) { h = length * cos(lat_skew) * cos( long_skew); @@ -47,8 +47,8 @@ module fourbar_axle_half( length, chord) { // wheel translate([0, length + 50, -50]) - // Pierre Rouzeau's wheel is beautifully modelled and parameterised, but it doesn't seem to be scaled as I'd expect... - wheel(rim=451, spoke_nbr=32); + rotate([270, 0, 0]) + wheel(iso=451); } diff --git a/model/hull.scad b/model/hull.scad index ba189b5..dca117b 100644 --- a/model/hull.scad +++ b/model/hull.scad @@ -64,4 +64,4 @@ module hull() { } } -hull(); +//hull(); diff --git a/model/subframe.scad b/model/subframe.scad index 4972f4b..705c543 100644 --- a/model/subframe.scad +++ b/model/subframe.scad @@ -2,18 +2,17 @@ // (c) Simon Brooke 2025; CC-BY-SA - -include include +include include include 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); + rotate([0, 90, 0]) + wheel(iso=rim); translate([-42, 382, 93]) rotate([0, 90, 0]) diff --git a/model/tricycle.scad b/model/tricycle.scad index d7ca0cc..a80f81a 100644 --- a/model/tricycle.scad +++ b/model/tricycle.scad @@ -6,15 +6,17 @@ include include -//include +include rotate([0, 0, 270]) translate([0, 1200, 180]) subframe(structure="carbon"); -translate([0,-50, 320]) +translate([0, 0, 320]) fourbar(700, 100, 30, 35, 650); -//hull(); +translate([500, 0, 100]) +rotate([0, 3, 0]) +hull(); /* prop=0.1; diff --git a/model/wheel.scad b/model/wheel.scad new file mode 100644 index 0000000..eb9dcce --- /dev/null +++ b/model/wheel.scad @@ -0,0 +1,61 @@ +// wheel.scad + +// I don't actually need spoked wheels + + +// ISO standard numbers refer to the tyre bead diameter in +// millimetres; the outer diameter of the rim is about 14mm +// more. Rim width varies but 22mm is common. The wheel sizes +// I'm interested in are ISO 406 and ISO 451. Fronmt hubs (and +// the hubs I'm planning to use are all front hubs) typically +// have an over locknut dimension of 100mm, but the lefties, +// which I plan to use, are narrower: 50mm flange to flange, and +// 65mm overall (with a 5mm spacing to the inner side of the +// fork leg). +// +// Outer diameter over the inflated tyre is obviously larger than +// the rim diameter but how much larget depends on the tyre; +// for road tyres, 20mm seems about typical. + +module wheel (iso=451) { + radius=(iso/2)+7; + + // rim + color("grey") + difference() { + cylinder(h=22, r=radius, center=true); + translate([0,0, -11]) + cylinder(h=26, r=(radius-10)); + } + + // carbon cones covering the spokes + color("black") + translate([0,0, 4]) + cylinder(h=26.6, r1=radius, r2=22.5); + color("black") + mirror([0, 0, -1]) + translate([0,0, 4]) + cylinder(h=14.4, r1=radius, r2=29); + + // tyre + color("black") + rotate_extrude(convexity = 10) + translate([radius +10, 0, 0]) + circle(r = 12, $fn = 100); + + // hub + color("grey") + translate([0, 0, -40]) + cylinder(h=65, r=22.5); + + // axle + color("silver") { + translate([0, 0, -45]) + cylinder(h=70, r1=12.5, r2=7.5); + translate([0, 0, -85]) + cylinder(h=40, r=12.5); + } + +} + +// wheel(); \ No newline at end of file