diff options
author | Jan Huwald <jh@sotun.de> | 2015-07-13 07:29:13 (GMT) |
---|---|---|
committer | Jan Huwald <jh@sotun.de> | 2015-07-13 07:29:13 (GMT) |
commit | 6dc93ada6ed161468c240ff8c4a2a1147247b3bf (patch) | |
tree | e1f3be829ddd19a7db98d55f6768bca0ab3cb9af /suspension_cube.scad | |
parent | 2878fa2b7c059a95860bc5e6accc5f7f04ced9b0 (diff) | |
parent | 42fad9cc9817101d710c05c958a7e333088801aa (diff) |
Diffstat (limited to 'suspension_cube.scad')
-rw-r--r-- | suspension_cube.scad | 45 |
1 files changed, 45 insertions, 0 deletions
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(); |