diff options
Diffstat (limited to 'suspension_fork.scad')
-rw-r--r-- | suspension_fork.scad | 142 |
1 files changed, 106 insertions, 36 deletions
diff --git a/suspension_fork.scad b/suspension_fork.scad index 4c12d2f..dc2084c 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -1,46 +1,116 @@ -// all used measuress are pure phantasy -module suspension_fork(depth=0) { - // from top to bottom ... +axe_shift=18.2; +shaft_distance=53; +dark=[.1,.1,.1]; +module fork_shaft(){ + thread_height=38; + thread_diameter=25.4; + + shaft_height1=110; + shaft_diameter1=thread_diameter; + + shaft_height2=6; + shaft_diameter2=27; + + + translate([0,0,-thread_height]) + cylinder(h=thread_height,d=thread_diameter); + + translate([0,0,-(thread_height+shaft_height1)]) + cylinder(h=shaft_height1,d=shaft_diameter1); + + translate([0,0,-(thread_height+shaft_height1+shaft_height2)]) + cylinder(h=shaft_height2,d=shaft_diameter2); + +} + +module forking(){ + for (side = [-1,1]) + hull() { + translate([0,0,-34]) cylinder(d=39,h=34); + translate([axe_shift, side * shaft_distance, -56]) cylinder(d=31.3, h=29); + } + translate([0,0,-43]) cylinder(d=39,h=9); +} + +module side_shaft(){ + + color("Gainsboro",1)translate([0,0,-38.5])cylinder(d=25.5,h=38.5); + color(dark,1){ + translate([0,0,-(38.5+14.8)]) cylinder(d1=41.5,d2=25.5,h=14.8); + translate([0,0,-(38.5+22)]) cylinder(d1=32.5,d2=41.5,h=22-14.8); + translate([0,0,-(38.5+184)]) cylinder(d1=32,d2=32.5,h=176); + } +} + +module wheel_holder(){ + thick=4.5; + color(dark,1) + rotate([270,90,0]) + translate([0,0,-thick/2]) + difference(){ + union(){ + hull(){ + cylinder(d=32.5,h=thick); + translate([-57.35,5.35,0])cube([35.3,35.3,thick]); + } + translate([0,0,1.9-thick])cylinder(d=25,h=thick); + } + translate([0,0,1.9])cylinder(d=25,h=thick); + hull(){ + translate([0,0,-3])cylinder(d=10,h=15); + translate([10,-5,-3])cube([10,10,15]); + } + } +} + - translate([0, 0, -50]) cylinder(h=50, r=15); - translate([0, 0, -60]) cylinder(h=10, r1=25, r2=15); - translate([0, 0, -70]) cylinder(h=10, r=25); - hull() { - for (side = [-1,1]) - translate([0, side * 50, -90]) - cylinder(r=27, h=20); +module bow_shape(){ + polygon(points=[[0,0],[28,0],[22,8],[14,11],[6,8]]); +} + +module bow(){ + translate([0,0,-68.5]){ + difference(){ + rotate([0,90,0]) + rotate_extrude(convexity = 10) + translate([40.5,0,0]) bow_shape(); + translate([-100,-100,-200])cube([200,200,200]); + } + translate([0,-40.5,-77.5])rotate([0,0,-90]) linear_extrude(height=77.5) bow_shape(); + translate([0,68.5,-77.5])rotate([0,0,-90]) linear_extrude(height=77.5) bow_shape(); } +} + - translate([0, -50/2, -110]) - cube([5, 50, 20]); + +module brake_holder(){ + color("gainsboro",1) + rotate([0,90,0]){ + translate([0,0,-20])cylinder(d=9.8,h=26); + translate([0,0,6])cylinder(d=7.9,h=16); + } +} +module suspension_fork(depth=0) { + // from top to bottom ... - for (side = [-1,1]) - translate([0, side * 50, -210]) { - cylinder(r=25, h=120); - - translate([0, 0, depth - 100]) { - cylinder(r=20, h=120); - - difference() { - translate([0, 0, -20]) - rotate([90, 0, 0]) - hull() { - cylinder(r=20, h=5, center=true); - translate([0, 20, 0]) cube([39, 39, 5], center=true); - } - - translate([0, 0, -20]) - rotate([90, 0, 0]) - hull() { - cylinder(r=5, h=50, center=true); - translate([0, -20, 0]) cube([10, 10, 50], center=true); - } - } - } + color("gainsboro",1) fork_shaft(); + color(dark,1) translate([0,0,-154]) forking(); + // all following measuress are pure phantasy + + for (side=[-1,1]){ + translate([axe_shift,side * shaft_distance,-(210)]) side_shaft(); } + + translate([45,shaft_distance,-460]) wheel_holder(); + mirror([0,1,0])translate([45,shaft_distance,-460]) wheel_holder(); + color(dark,1) translate([40,0,-207]) bow(); + translate([51,-41.5,-340]) brake_holder(); + translate([51,41.5,-340]) brake_holder(); + } -function wheel_offset(depth=0) = depth - 330; + +function wheel_offset(depth=0) = depth - 510; suspension_fork(); |