diff options
| author | Jan Huwald <jh@sotun.de> | 2015-07-13 07:26:52 (GMT) | 
|---|---|---|
| committer | Jan Huwald <jh@sotun.de> | 2015-07-13 07:26:52 (GMT) | 
| commit | 2a66bcad7501358426036ba27aed014bd9929446 (patch) | |
| tree | 0acec7f56bdc3314eb77c2251fe024d3325d724f | |
| parent | 7f6ee72cda6600c1b9fad67b5ce69c815a60b442 (diff) | |
add suspension cube (model & drill stencil)
| -rw-r--r-- | suspension_cube.scad | 45 | ||||
| -rw-r--r-- | suspension_cube.svg | 57 | ||||
| -rw-r--r-- | suspension_cube_stencil.scad | 10 | 
3 files changed, 112 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(); 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 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg +   xmlns:dc="http://purl.org/dc/elements/1.1/" +   xmlns:cc="http://creativecommons.org/ns#" +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" +   xmlns:svg="http://www.w3.org/2000/svg" +   xmlns="http://www.w3.org/2000/svg" +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" +   width="1033.15" +   height="532.46002" +   viewBox="-21 0 291.57772 150.27186" +   version="1.1" +   id="svg2" +   inkscape:version="0.48.3.1 r9886" +   sodipodi:docname="suspension_cube.svg"> +  <metadata +     id="metadata12"> +    <rdf:RDF> +      <cc:Work +         rdf:about=""> +        <dc:format>image/svg+xml</dc:format> +        <dc:type +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> +      </cc:Work> +    </rdf:RDF> +  </metadata> +  <defs +     id="defs10" /> +  <sodipodi:namedview +     pagecolor="#ffffff" +     bordercolor="#666666" +     borderopacity="1" +     objecttolerance="10" +     gridtolerance="10" +     guidetolerance="10" +     inkscape:pageopacity="0" +     inkscape:pageshadow="2" +     inkscape:window-width="1198" +     inkscape:window-height="798" +     id="namedview8" +     showgrid="false" +     inkscape:zoom="0.37454771" +     inkscape:cx="476.5748" +     inkscape:cy="223.22835" +     inkscape:window-x="1200" +     inkscape:window-y="0" +     inkscape:window-maximized="0" +     inkscape:current-layer="svg2" /> +  <title +     id="title4">OpenSCAD Model</title> +  <path +     d="m 93.566518,30.969469 18.000002,0 0,-18.000016 -118.0000022,0 0,99.054307 100.0000002,0 z m -22.1964,26.837 -1.8036,-0.7078 -1.5148,-1.2081 -1.0915,-1.6009 -0.5711,-1.8514 0,-1.9376 0.5711,-1.8515 1.0915,-1.6008 1.5148,-1.2081 1.8036,-0.7078 1.9321,-0.1448 1.889,0.4311 1.678,0.9688 1.3178,1.4203 0.8407,1.7457 0.2888,1.9159 -0.2888,1.9159 -0.8407,1.7457 -1.3178,1.4203 -1.678,0.9688 -1.889,0.4311 z m -58.49998,53.999701 -1.80362,-0.70779 -1.5148302,-1.20808 -1.09146,-1.60087 -0.57111,-1.85137 0,-1.93756 0.57111,-1.85147 1.09146,-1.60077 1.5148302,-1.208084 1.80362,-0.70779 1.932113,-0.1448 1.888977,0.4311 1.67796,0.968784 1.31787,1.42027 0.84067,1.74567 0.28879,1.91587 -0.28879,1.91586 -0.84067,1.74567 -1.31787,1.42028 -1.67796,0.96878 -1.888977,0.43109 z m 230.696382,-80.836701 18,0 0,-18.000016 -118,0 0,32.054616 100,0 z m 0,107.999671 0,-81.054271 -100,0 0,81.054271 z m -22.196,-68.162671 -1.804,-0.7078 -1.515,-1.2081 -1.091,-1.6009 -0.571,-1.8514 0,-1.9376 0.571,-1.8515 1.091,-1.6008 1.515,-1.2081 1.804,-0.7078 1.932,-0.1448 1.889,0.4311 1.678,0.9688 1.318,1.4203 0.84,1.7457 0.289,1.9159 -0.289,1.9159 -0.84,1.7457 -1.318,1.4203 -1.678,0.9688 -1.889,0.4311 z m -58.5,53.999671 -1.804,-0.708 -1.515,-1.208 -1.091,-1.601 -0.571,-1.851 0,-1.938 0.571,-1.851 1.091,-1.601 1.515,-1.20819 1.804,-0.70779 1.932,-0.1448 1.889,0.43109 1.678,0.96869 1.318,1.42 0.84,1.746 0.289,1.916 -0.289,1.916 -0.84,1.746 -1.318,1.42 -1.678,0.969 -1.889,0.431 z m -69.304002,0.108 -100.0000002,0 0,14.055 100.0000002,0 z" +     id="path6" +     style="fill:none;stroke:#000000;stroke-width:0.5" +     inkscape:connector-curvature="0" /> +</svg> 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<suspension_cube.scad>; + +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();  | 
