diff options
author | Jan Huwald <jh@sotun.de> | 2015-01-21 13:37:21 (GMT) |
---|---|---|
committer | Jan Huwald <jh@sotun.de> | 2015-01-21 13:37:21 (GMT) |
commit | 85868b1ca679a16561f0b3ea5710972e15d3b9d7 (patch) | |
tree | 6d63fe377547a61a051dddc1b56f25b75ac8f290 |
Initial commit
-rw-r--r-- | ball.scad | 3 | ||||
-rw-r--r-- | gimbal.scad | 59 | ||||
-rw-r--r-- | shell.scad | 3 |
3 files changed, 65 insertions, 0 deletions
diff --git a/ball.scad b/ball.scad new file mode 100644 index 0000000..08cf8ac --- /dev/null +++ b/ball.scad @@ -0,0 +1,3 @@ +use <gimbal.scad> + +ball(); diff --git a/gimbal.scad b/gimbal.scad new file mode 100644 index 0000000..03a524a --- /dev/null +++ b/gimbal.scad @@ -0,0 +1,59 @@ +// sphere diameter +d = 30; +cutoff = 3; +c = 3; +base = 10; + +screw_len = 0.8 * (d - 2*cutoff); +screw_dia = 25.4/4; + +mount_screw_dia = 3; +mount_screw_head_dia = 8; + +e = 0.01; +$fn = 500; + +module screw() { + cylinder(r=screw_dia/2, h=screw_len); +} + +module ball() + difference() { + 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); + } + +module shell() { + difference() { + // sphere with cylinder to bottom + mirror([0, 0, 1]) + assign(r2=d/2+c) + union() { + sphere(r=r2); + cylinder(r=r2, h=r2 + base); + } + + // hollow out the sphere + sphere(d/2); + + // add intro region + translate([0, 0, d]) + cube([d-2*cutoff, d*2, 2*d], center=true); + + // mounting screw hole + assign(rs=mount_screw_dia) + assign(rh=mount_screw_head_dia) + union() { + cylinder(r=rs/2, h=3*(d+base), center=true); + # translate([0, 0, -d/2-rh]) cylinder(r1=0, r2=rh/2, h=rh); + translate([0, 0, -d/2 ]) cylinder(r=rh/2, h=d); + } + } +} + +union() { +shell(); +translate([0,0,20]) rotate([90, 0, 90]) ball(); +} diff --git a/shell.scad b/shell.scad new file mode 100644 index 0000000..d30489f --- /dev/null +++ b/shell.scad @@ -0,0 +1,3 @@ +use <gimbal.scad> + +shell(); |