From 15fd88a9c5e709b409643e0275e718604496df08 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 8 Jul 2015 16:25:56 +0200 Subject: Lenkachse und Gabelung modelliert diff --git a/suspension_fork.scad b/suspension_fork.scad index 4c12d2f..20466fc 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -1,21 +1,61 @@ -// all used measuress are pure phantasy -module suspension_fork(depth=0) { - // from top to bottom ... + thread_height=38; + thread_diameter=25.4; + + shaft_height1=110; + shaft_diameter1=thread_diameter; + + shaft_height2=6; + shaft_diameter2=27; - 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); - } - translate([0, -50/2, -110]) - cube([5, 50, 20]); +axe_shift=18.2; +shaft_distance=53; +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(){ +} + +module suspension_fork(depth=0) { + // from top to bottom ... + + %fork_shaft(); + %translate([0,0,-(thread_height+shaft_height1+shaft_height2)]) forking(); + // all following measuress are pure phantasy + + + *translate([0, -50/2, -110]) + cube([5, 50, 20]); + + *for (side = [-1,1]) translate([0, side * 50, -210]) { cylinder(r=25, h=120); -- cgit v0.10.1 From 771afbed02a8ec39c16347eac72f569eb06032ce Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 8 Jul 2015 16:38:56 +0200 Subject: =?UTF-8?q?seitliche=20Sch=C3=A4ft=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/suspension_fork.scad b/suspension_fork.scad index 20466fc..722e599 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -1,14 +1,3 @@ - thread_height=38; - thread_diameter=25.4; - - shaft_height1=110; - shaft_diameter1=thread_diameter; - - shaft_height2=6; - shaft_diameter2=27; - - - axe_shift=18.2; shaft_distance=53; module fork_shaft(){ @@ -42,16 +31,23 @@ module forking(){ } module side_shaft(){ + + translate([0,0,-38.5])cylinder(d=25.5,h=38.5); + 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 suspension_fork(depth=0) { // from top to bottom ... %fork_shaft(); - %translate([0,0,-(thread_height+shaft_height1+shaft_height2)]) forking(); + %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([0, -50/2, -110]) cube([5, 50, 20]); -- cgit v0.10.1 From 15f9c62a32af0ed3ef5333c49c00c2703d57637b Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 8 Jul 2015 17:03:45 +0200 Subject: =?UTF-8?q?Radhalter=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/suspension_fork.scad b/suspension_fork.scad index 722e599..284063a 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -38,43 +38,39 @@ module side_shaft(){ translate([0,0,-(38.5+184)]) cylinder(d1=32,d2=32.5,h=176); } +module wheel_holder(){ + thick=4.5; + 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]); + } + } +} + module suspension_fork(depth=0) { // from top to bottom ... - %fork_shaft(); - %translate([0,0,-154]) forking(); + fork_shaft(); + translate([0,0,-154]) forking(); // all following measuress are pure phantasy - %for (side=[-1,1]){ + for (side=[-1,1]){ translate([axe_shift,side * shaft_distance,-(210)]) side_shaft(); } - *translate([0, -50/2, -110]) - cube([5, 50, 20]); - *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); - } - } - } - } + translate([45,shaft_distance,-460]) wheel_holder(); + mirror([0,1,0])translate([45,shaft_distance,-460]) wheel_holder(); } function wheel_offset(depth=0) = depth - 330; -- cgit v0.10.1 From 18945189a732d49f672a3e6be14f0fe511ec7fd1 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 8 Jul 2015 17:12:52 +0200 Subject: wheel offset angepasst und rad neu positioniert diff --git a/lasttretrad.scad b/lasttretrad.scad index 55ef4a8..a5dec0f 100644 --- a/lasttretrad.scad +++ b/lasttretrad.scad @@ -51,10 +51,11 @@ module wheel_position(fcb, lr) { // specify (f)ront/(b)ack and (l)eft/(r)ight as -1/1 module steered_wheel(fb=-1, lr=-1, rot=0, suspension_depth=0) { - rotate([ 0, 0, fb*rot]) suspension_fork(suspension_depth); - - translate([0, 0, wheel_offset(suspension_depth)]) - rotate([90, 0, fb*rot]) wheel(); + rotate([ 0, 0, fb*rot]) { + suspension_fork(suspension_depth); + translate([45, 0, wheel_offset(suspension_depth)]) + rotate([90, 0, 0]) wheel(); + } } // specify (l)eft/(r)ight as -1/1 diff --git a/suspension_fork.scad b/suspension_fork.scad index 284063a..e0f7b93 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -73,6 +73,6 @@ module suspension_fork(depth=0) { mirror([0,1,0])translate([45,shaft_distance,-460]) wheel_holder(); } -function wheel_offset(depth=0) = depth - 330; +function wheel_offset(depth=0) = depth - 510; suspension_fork(); -- cgit v0.10.1 From 7f6ee72cda6600c1b9fad67b5ce69c815a60b442 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 8 Jul 2015 21:09:08 +0200 Subject: gabel verbessert diff --git a/suspension_fork.scad b/suspension_fork.scad index e0f7b93..dc2084c 100644 --- a/suspension_fork.scad +++ b/suspension_fork.scad @@ -1,5 +1,6 @@ axe_shift=18.2; shaft_distance=53; +dark=[.1,.1,.1]; module fork_shaft(){ thread_height=38; thread_diameter=25.4; @@ -10,6 +11,7 @@ module fork_shaft(){ shaft_height2=6; shaft_diameter2=27; + translate([0,0,-thread_height]) cylinder(h=thread_height,d=thread_diameter); @@ -18,7 +20,7 @@ module fork_shaft(){ translate([0,0,-(thread_height+shaft_height1+shaft_height2)]) cylinder(h=shaft_height2,d=shaft_diameter2); - + } module forking(){ @@ -32,14 +34,17 @@ module forking(){ module side_shaft(){ - translate([0,0,-38.5])cylinder(d=25.5,h=38.5); - 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); + 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(){ @@ -58,11 +63,39 @@ module wheel_holder(){ } } + + +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(); + } +} + + + +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 ... - fork_shaft(); - translate([0,0,-154]) forking(); + color("gainsboro",1) fork_shaft(); + color(dark,1) translate([0,0,-154]) forking(); // all following measuress are pure phantasy for (side=[-1,1]){ @@ -71,8 +104,13 @@ module suspension_fork(depth=0) { 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 - 510; suspension_fork(); -- cgit v0.10.1 From 2a66bcad7501358426036ba27aed014bd9929446 Mon Sep 17 00:00:00 2001 From: Jan Huwald Date: Mon, 13 Jul 2015 09:26:52 +0200 Subject: add suspension cube (model & drill stencil) diff --git a/suspension_cube.scad b/suspension_cube.scad new file mode 100644 index 0000000..e3be454 --- /dev/null +++ b/suspension_cube.scad @@ -0,0 +1,45 @@ +cube_side = 100; +min_cube_height = 116; + +shaft_hole_rad=15; +blind_hole_depth = 5; // arbitrary value, TODO +clamp_hole_rad = 13/2; + +board_width=18; + +cube_height = board_width * ceil(min_cube_height / board_width); + +clamp_hole_excentricity = (shaft_hole_rad + cube_side/2 - clamp_hole_rad) / 2; + +module suspension_cube() { + + difference() { + translate([-cube_side/2, -cube_side/2, 0]) + union() { + cube([cube_side, cube_side, cube_height]); + cube([cube_side + board_width, cube_side + board_width, board_width]); + } + + // bore hole for bike shaft (radius of the smallest available + // tool larger than the shaft radius) + cylinder(r=shaft_hole_rad, h=2*cube_height, center=true); + + // blind holes to capture the bearing + for (h = [-0.001, cube_height - blind_hole_depth + 0.001]) + translate([0, 0, h]) + cylinder(r=20, h=blind_hole_depth); + + // holes for clamping screws + for (i = [-1, 1]) + for (j = [-1, 1]) + rotate([0, 0, 45+j*45]) + translate([i * clamp_hole_excentricity, + 0, + board_width + (0.5 - i/4)*(cube_height - board_width) + j*clamp_hole_rad]) + rotate([90, 0, 0]) + cylinder(r=clamp_hole_rad, h=2*cube_height, center=true); + } +} + +if (no_master == undef) +suspension_cube(); diff --git a/suspension_cube.svg b/suspension_cube.svg new file mode 100644 index 0000000..4f4716f --- /dev/null +++ b/suspension_cube.svg @@ -0,0 +1,57 @@ + + + + + + image/svg+xml + + + + + + + OpenSCAD Model + + diff --git a/suspension_cube_stencil.scad b/suspension_cube_stencil.scad new file mode 100644 index 0000000..c950074 --- /dev/null +++ b/suspension_cube_stencil.scad @@ -0,0 +1,10 @@ +no_master = true; + +include; + +for (i = [0, 1]) +translate([i*1.5*cube_side, 0]) +projection(cut=true) +translate([clamp_hole_excentricity, 0, clamp_hole_excentricity]) +rotate([90, i*90, 0]) +suspension_cube(); -- cgit v0.10.1 From 42fad9cc9817101d710c05c958a7e333088801aa Mon Sep 17 00:00:00 2001 From: Jan Huwald Date: Mon, 13 Jul 2015 09:28:25 +0200 Subject: add chain module diff --git a/chain.scad b/chain.scad new file mode 100644 index 0000000..d0d17e9 --- /dev/null +++ b/chain.scad @@ -0,0 +1,19 @@ +// a chain around two gears of given radii (r1, r2) and distance; +// coord origin is at the gear with r1 +module chain(r1, r2, dist, chain_width, chain_height) { +// rotate([90, 0, 0]) + difference() { + chain_template(r1 + chain_height, r2 + chain_height, dist, chain_width); + chain_template(r1, r2, dist, chain_width + 1); + } +} + +module chain_template(r1, r2, dist, chain_width) + hull () { + cylinder(r=r1, h=chain_width, center=true); + + translate([dist, 0, 0]) + cylinder(r=r2, h=chain_width, center=true); + } + +chain(20, 30, 100, 10, 5); \ No newline at end of file -- cgit v0.10.1