chiark / gitweb /
air-hockey-puck: wip
[reprap-play.git] / flyscreen-wall-spacer.scad
index 6dbf6f0f52b8c037bd8563a643cc0c4a6170ae2f..4abe1ef48b97798b6ad8adf7b1c41d120ffe4114 100644 (file)
@@ -11,21 +11,52 @@ screw_dia = 5;
 bucket_wall = 2.5;
 bucket_floor = 2.5;
 whole_dia = plug_dia + bucket_wall *2;
-spacing = 14;
+
+min_spacing = 8;
+max_spacing = 19;
+
+general_spacer_height = 10;
+
+// calculated
+
+module Oval(r, dc) {
+  hull(){
+    circle(r);
+    translate([0, dc])
+      circle(r);
+  }
+}
 
 module MainCircle() {
   difference(){
     circle(r = whole_dia/2);
-    rectfromto([-100, spacing/2],
-              [+100, +100]);
     circle(r = screw_dia/2);
   }
 }
 
-module Spacer(inboard_to_wall) {
+module MultiSpacer() {
+  difference(){
+    linextr(0, $inboard_to_wall - bracket_th){
+      Oval(whole_dia/2, max_spacing);
+    }
+
+    linextr(bucket_floor, 100) {
+      Oval(plug_dia/2, max_spacing);
+    }
+
+    linextr(-1, 100) {
+      circle(screw_dia/2);
+
+      translate([0, min_spacing])
+       Oval(screw_dia/2, max_spacing - min_spacing);
+    }
+  }
+}
+
+module AnySpacer(max_z) {
   linextr(0, bucket_wall)
     MainCircle();
-  linextr(0, inboard_to_wall - bracket_th){
+  linextr(0, max_z){
     difference(){
       MainCircle();
       circle(r = plug_dia/2);
@@ -33,10 +64,37 @@ module Spacer(inboard_to_wall) {
   }
 }
 
-module Spacers() {
-  Spacer(left_inboard_to_wall);
-  translate([0, 40])
-    Spacer(right_inboard_to_wall);
+module Spacer($inboard_to_wall) {
+  AnySpacer($inboard_to_wall - bracket_th);
+}
+
+module Spacers1() {
+  for (dy = [0, 30]) {
+    translate([0,dy,0]) {
+      Spacer($inboard_to_wall = left_inboard_to_wall);
+      translate([0, 70, 0])
+       Spacer($inboard_to_wall = right_inboard_to_wall);
+    }
+  }
+
+  translate([40, 0, 0])
+    MultiSpacer($inboard_to_wall = left_inboard_to_wall);
+  translate([40, 70, 0])
+    MultiSpacer($inboard_to_wall = right_inboard_to_wall);
+}
+
+module Spacers2() {
+  for (dy = 30 * [0]) {
+    echo(dy);
+    translate([0, dy, 0])
+      AnySpacer(general_spacer_height);
+  }
+}
+
+module Spacers3() {
+  AnySpacer(6.08);
+  translate([0, 30, 0])
+    AnySpacer(8.18);
 }
 
-Spacers();
+Spacers3();