From 87a0c3431e76e72e5037c4b9e652238f43421074 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Wed, 10 Sep 2025 18:19:03 +0100 Subject: [PATCH] Subframe now switchable between aluminium and carbon versions; TODO carbon variant lacks its wheel leg. --- model/hull.scad | 22 ++++++++++++---------- model/subframe.scad | 34 +++++++++++++++++++++++++++++++--- model/tricycle.scad | 4 +--- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/model/hull.scad b/model/hull.scad index cf08e2a..ba189b5 100644 --- a/model/hull.scad +++ b/model/hull.scad @@ -34,32 +34,34 @@ module hull_i() { module hull() { intersection() { - translate([2000,0,0]) + translate([2500,0,500]) rotate([180, 90, 0]) - scale([20, 16, 20]) + scale([20, 15.5, 20]) rotate_extrude() //rotate([ 0, 90, 0]) import("library/hull-volume-of-rotation.svg"); - translate([-900,0, -110]) + translate([-400,0, 350]) rotate([0, 90, 0]) - prismoid(size1=[1100, 1000], + prismoid(size1=[900, 1000], size2=[400, 600], height=3000); } rotate([0,90,0]) - translate([0,0,-2070]) + translate([-500,0,-1570]) difference() { skin( - [ellipse($fn=64,r=[350,30],center=true), - ellipse($fn=64,r=[430,340],center=true)], z=[0,1200], + [ellipse($fn=64,r=[350,30]), + ellipse($fn=64,r=[430,340])], + z=[0,1200], slices=40,sampling="length",method="reindex"); skin( - [ellipse($fn=64,r=[344,24],center=true), - ellipse($fn=64,r=[424,334],center=true)], z=[-1,1201], + [ellipse($fn=64,r=[344,24]), + ellipse($fn=64,r=[424,334])], + z=[-1,1201], slices=40,sampling="length",method="reindex"); } } -hull(); \ No newline at end of file +hull(); diff --git a/model/subframe.scad b/model/subframe.scad index 5286e1d..1a79ee0 100644 --- a/model/subframe.scad +++ b/model/subframe.scad @@ -9,7 +9,6 @@ include include include - module subframe_cycleparts(rim=451, chainring_teeth=82, crank=140) { // wheel translate([0, 382, 93]) @@ -30,7 +29,8 @@ module subframe_cycleparts(rim=451, chainring_teeth=82, crank=140) { epicyclic(); } -module subframe (rim=451, chainring_teeth=82, crank=140) { + +module aluminium_subframe (rim=451, chainring_teeth=82, crank=140) { // front leg (supports cross-shaft, epicyclic, motor translate([-25, 820, -60]) color("silver") @@ -64,5 +64,33 @@ module subframe (rim=451, chainring_teeth=82, crank=140) { 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"); -// subframe(chainring_teeth=90, crank=140); diff --git a/model/tricycle.scad b/model/tricycle.scad index 75f8ed4..fc5aa83 100644 --- a/model/tricycle.scad +++ b/model/tricycle.scad @@ -4,11 +4,9 @@ // Top level final rendering -include - include include -// include +//include rotate([0, 0, 270]) translate([0, 1200, 180])