diff options
author | Jan Huwald <jh@sotun.de> | 2015-01-26 11:22:31 (GMT) |
---|---|---|
committer | Jan Huwald <jh@sotun.de> | 2015-01-26 11:22:31 (GMT) |
commit | 3e67da7f9c7fcb528337e9a801f4abf9e9d39a49 (patch) | |
tree | 69e69867b96839a9438355801282f13534dd121c /gimbal.scad | |
parent | 751aa52ca18245516762ecfd73f1af5ad41c2812 (diff) |
add screw
Diffstat (limited to 'gimbal.scad')
-rw-r--r-- | gimbal.scad | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/gimbal.scad b/gimbal.scad index 192cc54..ff13158 100644 --- a/gimbal.scad +++ b/gimbal.scad @@ -4,8 +4,9 @@ cutoff = 3; c = 3; base = 10; -screw_len = 0.8 * (d - 2*cutoff); +screw_len = 15; screw_dia = 25.4/4; +screw_head_len = 5; mount_screw_dia = 4; mount_screw_head_dia = 10; @@ -16,10 +17,29 @@ retainer_dia = 1; e = 0.01; $fn = 500; +use <simplethreads.scad>; + module screw() { - cylinder(r=screw_dia/2, h=screw_len); + translate([0, 0, 2*screw_head_len - screw_dia/2]) + thread_imperial(1/16, screw_dia/25.4, 12, screw_len*16/25.4); + + intersection() { + cylinder(r1=2*screw_head_len, r2=0, h=2*screw_head_len); + cube([2*screw_head_len, 2*screw_head_len, 10*screw_head_len], center=true); + } } +module two_half_screws() + for (i = [0,1]) + translate([i*2*screw_head_len, -i*(screw_len + screw_head_len), 0]) + intersection() { + rotate([90, i*180, i*180]) + screw(); + + translate([0, 0, 50]) + cube(100, center=true); + } + module grip() for (i = [0:19]) rotate(i*360/20) @@ -28,11 +48,23 @@ module grip() module ball() difference() { + // sphere with top and bottom cap removed sphere(d/2); - translate([0, 0, d/2 - cutoff - screw_len + e]) screw(); for (i = [-1,1]) translate([0, 0, i * (d - cutoff)]) cube(d, center=true); + // screw hole (thin ot the top, thickening in the center, big + // square at the bottom) + translate([0, 0, d/2 - cutoff - screw_len/2 + screw_head_len/2]) { + cylinder(r=screw_dia/2, h=d, center=true); + + mirror([0, 0, 1]) + intersection() { + cylinder(r1=0, r2=d, h=d); + cube([2*screw_head_len, 2*screw_head_len, 10*screw_head_len], center=true); + } + } + // horizontal grip grip(); // vertical grip at the upper half sphere (but not at the top) |