chiark / gitweb /
poster-tube-lid: catch: adjust stalk height from v1
[reprap-play.git] / ksafe-base.scad
index 9ea0ccd8e4ff62750f498d2ec359d4f9aa9a393e..c2e2704557e494b15ffc4097faf3e6a8122b13b7 100644 (file)
@@ -4,10 +4,11 @@
 bolt_above = 8.50 - 0.50;
 bolthole_height = 4.24 + 1.00;
 wall_thick = 4.50;
-bolthole_width = 16.62 + 2.00;
-main_sz = 150.56 + 0.75;
-cnr_rad = 13.5; // approx
+bolthole_width = 16.62 + 1.00;
+main_sz = 149.06 - 0.25;
+cnr_rad = 19.5;
 lidinner_thick_allow = 20.78 + 0.50;
+display_width = 69.81 - 0.50;
 
 dpp3 = [ -5.5, 8.5 ];
 dpp2 = [ -11.0, 7.0 ];
@@ -31,17 +32,19 @@ thumbslot_depth = 5.0;
 thumbslot_width = 15.0;
 thumbslot_between = 10;
 ksafecover_lip = 4.62;
-display_width = 69.81 - 0.50;
+display_rhs_secs = 15;
 dcover_endthick = 3.0;
 dcover_mainthick = 5.0;
 dcover_slop_height = 0.35;
 dcover_slop_depth = 0.25;
 dcover_slop_inside = 1.50;
 dcover_commonvertoff = 0.00; // slop_height or slop_inside is added too
+dcover_edge_gap_more_width = 2.0; // each side
 
 // ----- calculated -----
 
 hsz = main_sz/2;
+cut = main_sz + 20;
 
 gppA = [0,0];
 gppB = gppA - [ wall_thick, 0 ];
@@ -61,17 +64,17 @@ yw12 = yw11 + wall_thick;
 yw13 = -yw6;
 
 cpp1 = dpp1 + [  dcover_slop_depth, dcover_slop_height ];
-cpp2 = dpp2 + [ -dcover_slop_depth, dcover_slop_height ];
+cpp2 = [ dpp2[0] - dcover_slop_depth, dpp3[1] + dcover_slop_height ];
 cppH = cpp1 + [ 0, dcover_endthick ];
 cppA = [ cpp2[0], dpp3[1] + dcover_slop_inside ];
 cppK = cppA + [ 0, dcover_mainthick ];
 cppZ = [ -ksafecover_lip, -dcover_commonvertoff ];
 cppD = cppZ + [ 0, -dcover_slop_inside ];
-cppE = cppD + [ 0, -dcover_mainthick ];
 cppC = [ dcover_slop_inside, cppD[1] ];
 cppF = cppC + dcover_mainthick * [1,-1];
 cppB = [ cppC[0], cppA[1] ];
 cppG = [ cppF[0], cppK[1] ];
+cppE = [ cppD[0], cppF[1] - (cppF[0] - cppD[0]) ];
 
 // anchor
 
@@ -270,15 +273,34 @@ module Box(){
   rotate([0,0,90]) SWalls(yw6, yw13, bevel) UsualProfile();
 }
 
+module DCover(){ ////toplevel
+  translate([ -display_width/2, -hsz, 0 ])
+    rotate([0,90,0])
+    rotate([0,0,90])
+    linear_extrude( display_width - display_rhs_secs, convexity = 10)
+    DCoverProfile();
+}
+
+module DCoverSupportAllowance(){
+  translate([0, -hsz, 0])
+    cube(center=true,
+        [ display_width + 2 * dcover_edge_gap_more_width,
+          wall_thick * 2,
+          dcover_slop_inside * 2 + 0.01 ]);
+}
+
+module BoltHoles(){
+  translate([0,0, -(bolt_above + 0.5 * bolthole_height)])
+    cube(center=true, [ cut, bolthole_width, bolthole_height ]);
+}
+
 module KsafeBase(){ ////toplevel
-  cut = main_sz + 20;
+  DCover();
 
   difference(){
     Box();
 
-    // bolt holes
-    translate([0,0, -bolt_above -0.5 * bolthole_height])
-      cube(center=true, [ cut, bolthole_width, bolthole_height ]);
+    BoltHoles();
 
     // string slot
     translate([ -cut,
@@ -298,6 +320,8 @@ module KsafeBase(){ ////toplevel
               cut,
               thumbslot_depth+1 ]);
     }
+
+    DCoverSupportAllowance();
   }
 }
 
@@ -318,6 +342,22 @@ module RimTest(){ ////toplevel
   }
 }
 
+module DCoverTest(){ ////toplevel
+  intersection(){
+    difference(){
+      union(){
+       Box();
+       DCover();
+      }
+      DCoverSupportAllowance();
+      BoltHoles();
+    }
+    translate([0,0,60])
+    cube(center=true, [ main_sz*2, main_sz*2,
+                       2 * (60 + 10) ]);
+  }
+}
+
 module BoltTest(){ ////toplevel
   dy = 0.5 * (bolthole_width+4);
   intersection(){