chiark / gitweb /
air-hockey-puck: wip
[reprap-play.git] / poster-tube-lid.scad
index 7b15c7ad65f37431b665d3e95c835296998e259e..000dec775fabe10c90f7c9b31de28cc1cbcfc998 100644 (file)
@@ -94,25 +94,25 @@ sm_bolt_y_over = 0.5;
 sm_closure_cnr = 3.0;
 
 wm_thick = 5;
-wm_screw_dia = 4.5; // XXX
-wm_screwdriver_dia = 6.0; // XXX
-wm_screw_around = 4.0; // XXX
+wm_screw_dia = 4.5; // Timco wood screw 40mm, use brown plug
+wm_screwdriver_dia = 6.3 + 1.5;
+wm_screw_around = 5.0;
 wm_screw_slot = 3.5;
-wm_screw_head = 7.5; // XXX
+wm_screw_head = 8.0;
 
 wmb_screw_dia = 5;
-wmb_screw_head_dia = 10; // XXX
-wmb_screw_around_x = 4; // XXX
-wmb_screw_around_z = 6; // XXX
+wmb_screw_head_dia = 8.7 + 0.5;
+wmb_screw_around_x = 4;
+wmb_screw_around_z = 6;
 wmb_screw_depth_min = 10;
-web_screw_len = 15 + 1; // XXX
-wmb_nut_across = 8; // XXX
-wmb_nut_around_min = 2; // XXX
+web_screw_len = 16 + 0.5;
+wmb_nut_across = 7.82 + 0.35;
+wmb_nut_around_min = 2;
 wmb_nut_behind_min = 5;
-wmb_nut_th = 4; // XXX
+wmb_nut_th = 3.84 + 0.75;
 wmb_mount_wall = 4.5;
-wmb_mount_gap_xy = 0.5;
-wmb_mount_gap_z = 0.5;
+wmb_mount_gap_xy = 0.1;
+wmb_mount_gap_z = 0.2;
 wmb_mount_y_width = 10;
 wmb_bottom_gap = 35; // includes allowance for padding, etc.
 wmb_bottom_th = 7;
@@ -188,9 +188,10 @@ wm_y_min = sqrt( pow(sm_inner_rad, 2) -
                 pow(sm_inner_rad - (wm_thick - sm_main_thick), 2) );
 wm_y_screw = wm_y_min + wm_screw_around + wm_screw_dia/2;
 wm_y_max = wm_y_screw + wm_screw_dia/2 + wm_screw_around;
+wm_lhs_y_min = -wm_y_max;
 wm_y_slotc_screw = wm_y_screw + wm_screw_slot/2;
 wm_y_slot1_screw = wm_y_screw + wm_screw_slot;
-wm_y_slot1_max = wm_y_max + wm_screw_slot;
+wm_y_slot1_max = wm_y_max + wm_screw_slot/2;
 wm_z_slot0_screw = wm_main_width + wm_screwdriver_dia/2;
 wm_z_slotc_screw = wm_z_slot0_screw + wm_screw_slot/2;
 wm_z_slot1_screw = wm_z_slot0_screw + wm_screw_slot;
@@ -222,7 +223,10 @@ wmb_z_screw = max(
                  wmb_nut_around_min + wmb_nut_rad
                  );
 wmb_z_max = wmb_z_screw * 2;
-wmbb_y_max = wmb_y_mount_max + wmb_mount_gap_xy + wmb_mount_wall;
+wmbb_y_max = max(
+                wmb_y_mount_max + wmb_mount_gap_xy + wmb_mount_wall,
+                wmb_y_screw_end + web_screw_len
+                );
 wmbb_x_outer = wmb_x_outer + (wmb_mount_gap_xy + wmb_mount_wall);
 wmbb_z_flat_max = -wmb_bottom_gap;
 wmbb_z_flat_whole_min = wmbb_z_flat_max - wmb_bottom_th_min;
@@ -684,12 +688,12 @@ module WallScrewHoleSlot(){ ////toplevel
 module WallMountMounts(){
   linextr(0, wm_z_max){
     translate([ -sm_outer_rad, 0 ])
-      rectfromto([ 0, -wm_y_max ],
+      rectfromto([ 0,        wm_lhs_y_min ],
                 [ wm_thick, wm_y_slot1_max ]);
   }
 }
 module WallMountScrewHoles(){
-  translate([ -sm_outer_rad + wm_thick, 0, wm_z_slotc_screw]) {
+  translate([ -sm_outer_rad + wm_thick, 0, wm_z_slotc_screw ]) {
     translate([ 0, wm_y_slotc_screw, 0 ])
       WallScrewHoleSlot();
     translate([ 0, -wm_y_slotc_screw, 0 ])
@@ -725,17 +729,17 @@ module WallMountBaseScrewsEtc(){ ////toplevel
     mirror([0, my, 0]) {
       translate([wmb_x_screw, 0, wmb_z_screw]) {
        linextr_y_xz(wmb_y_screw_end,
-                    wmb_y_screw_end + 100) // XXX change 100
+                    wmb_y_screw_end + 50)
          circle(r = wmb_screw_dia/2);
        linextr_y_xz(wmb_y_screw_end + web_screw_len,
-                    wmb_y_screw_end + 100) // XXX change 100
+                    wmb_y_screw_end + 50)
          circle(r = wmb_screw_head_dia/2);
        linextr_y_xz(wmb_y_nut_min,
                     wmb_y_nut_min + wmb_nut_th) {
          hull(){
            rotate(30)
              circle(r = wmb_nut_rad, $fn = 6);
-           translate([0, 100]) // XXX change 100
+           translate([0, 50])
              square(wmb_nut_across, center=true);
          }
        }
@@ -757,6 +761,24 @@ module WallMountForBase(){ ////toplevel
   }
 }
 
+module WallMountForBaseFixingsTest(){ ////toplevel
+  intersection(){
+    WallMountForBase();
+    linextr(-100,100)
+      rectfromto([ -sm_outer_rad-10, -wm_y_min ],
+                [ wmb_x_outer + 1, -100 ]);
+  }
+}
+
+module WallMountBaseFixingsTest(){ ////toplevel
+  intersection(){
+    WallMountBase();
+    linextr(-2,100)
+      rectfromto([ -sm_outer_rad-10, -wm_y_min ],
+                [ wmbb_x_outer + 1, -100 ]);
+  }
+}
+
 module WallMountBasePillarsPlan(){
   for (my = [0,1]) {
     mirror([0, my]) {