summaryrefslogtreecommitdiff
path: root/suspension_cube.scad
diff options
context:
space:
mode:
Diffstat (limited to 'suspension_cube.scad')
-rw-r--r--suspension_cube.scad45
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();
contact: Jan Huwald // Impressum