chiark / gitweb /
poster-tube-lid: WallMountForBase wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 28 Aug 2023 11:27:41 +0000 (12:27 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 28 Aug 2023 11:27:41 +0000 (12:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
poster-tube-lid.scad

index 70e00de6322db87f0b3fd4314b09524da1620896..d887c9bca5a52a161f388771bf95f45b44c38626 100644 (file)
@@ -95,12 +95,13 @@ wm_screw_head = 7.5; // XXX
 
 wmb_screw_dia = 5;
 wmb_screw_around_x = 4; // XXX
-wmb_screw_around_y = 6; // XXX
-wmb_screw_depth = 10; // XXX
+wmb_screw_around_z = 6; // XXX
+wmb_screw_depth_min = 10;
 wmb_nut_across = 8; // XXX
 wmb_nut_around_min = 2; // XXX
+wmb_nut_behind_min = 3; // XXX
 wmb_nut_th = 4; // XXX
-wmb_gap = 1.0;
+wmb_ring_gap = 1.0;
 
 catch_stalk_h = 4.5;
 catch_stalk_len = 50;
@@ -176,7 +177,8 @@ wm_z_slotc_screw = wm_z_slot0_screw + wm_screw_slot/2;
 wm_z_slot1_screw = wm_z_slot0_screw + wm_screw_slot;
 wm_z_max = wm_z_slot1_screw + wm_screw_around;
 
-wmb_mount_cut_rad = sm_outer_rad + wmb_gap;
+wmb_mount_cut_rad = sm_outer_rad + wmb_ring_gap;
+wmb_nut_rad = wmb_nut_across / cos(30) * 0.5;
 wmb_x_screw = -sm_outer_rad + max(
                                  wmb_screw_around_x + wmb_screw_dia/2,
                                  wmb_nut_around_min + wmb_nut_across/2
@@ -187,7 +189,15 @@ function wmb_screw_thing_y_min(dia) = sqrt(
                       );
 wmb_y_screw_end = wmb_screw_thing_y_min(wmb_screw_dia);
 wmb_y_nut_min = wmb_screw_thing_y_min(wmb_nut_across + wmb_nut_around_min*2);
-wmb_z_screw = 10; // XXX
+wmb_y_mount_max = max(
+                     wmb_y_nut_min + wmb_nut_th + wmb_nut_behind_min,
+                     wmb_y_screw_end + wmb_screw_depth_min
+                     );
+wmb_z_screw = max(
+                 wmb_screw_around_z + wmb_screw_dia/2,
+                 wmb_nut_around_min + wmb_nut_rad
+                 );
+wmb_z_max = wmb_z_screw * 2;
 
 smc_pos = [ 0, sm_inner_rad, 0 ];
 
@@ -665,6 +675,13 @@ module WallMount(){ ////toplevel
 }
 
 module WallMountBaseMounts(){
+  linextr(0, wmb_z_max) {
+    difference(){
+      rectfromto([ -sm_outer_rad,            -wmb_y_mount_max ],
+                [ -sm_outer_rad + wm_thick, +wmb_y_mount_max ]);
+      circle(r = wmb_mount_cut_rad);
+    }
+  }
 }
 
 // screws, nuts, slots for nuts to go down into
@@ -673,13 +690,13 @@ module WallMountBaseScrewsEtc(){
     mirror([0, my, 0]) {
       translate([wmb_x_screw, 0, wmb_z_screw]) {
        linextr_y_xz(wmb_y_screw_end,
-                    wmb_y_screw_end + wmb_screw_depth)
+                    wmb_y_screw_end + 100) // XXX change 100
          circle(r = wmb_screw_dia/2);
        linextr_y_xz(wmb_y_nut_min,
                     wmb_y_nut_min + wmb_nut_th){
          hull(){
            rotate(30)
-             circle(r = wmb_nut_across / cos(30) * 0.5, $fn = 6);
+             circle(r = wmb_nut_rad, $fn = 6);
            translate([0, 100]) // XXX change 100
              square(wmb_nut_across, center=true);
          }
@@ -702,12 +719,13 @@ module WallMountBaseScrewsEtc(){
     }
   }
 }*/
-//       circle(r = wmb_mount_cut_rad);
+
 
 module WallMountForBase(){ ////toplevel
   SomeStrap(sm_main_width, wm_z_max + 2){
     union(){
       WallMountMounts();
+      WallMountBaseMounts();
     }
     union(){
       WallMountScrewHoles();