chiark / gitweb /
ksafe-base: demoprofiles toplevel
[reprap-play.git] / ksafe-base.scad
index c9ddf77cd0a9e2d79084e800653cc2501e6a932a..381176952b226251949850863272dcd938efc3c8 100644 (file)
@@ -9,6 +9,10 @@ main_sz = 150.56 + 0.75;
 cnr_rad = 13.5; // approx
 lidinner_thick_allow = 20.78 + 0.50;
 
+dpp3 = [ -5.5, 8.5 ];
+dpp2 = [ -11.0, 7.0 ];
+dpp1 = [ -34.0, 14.0 ];
+
 // other parameters
 web_thick = 4;
 web_height = 20; // excluding wall and base thick
@@ -21,6 +25,16 @@ space = 25;
 anchor_thick = 4;
 anchor_rad = 4;
 bevel = 8;
+string_slot = 3.0;
+string_depth = 6.0;
+thumbslot_depth = 5.0;
+thumbslot_width = 15.0;
+thumbslot_between = 10;
+dcover_endthick = 3.0;
+dcover_mainthick = 5.0;
+dcover_slop_height = 0.25;
+dcover_slop_depth = 0.25;
+dcover_slop_inside = 1.25;
 
 // ----- calculated -----
 
@@ -219,7 +233,7 @@ module Box(){
   rotate([0,0,90]) SWalls(yw6, yw13, bevel) UsualProfile();
 }
 
-module KsafeBase(){
+module KsafeBase(){ ////toplevel
   cut = main_sz + 20;
 
   difference(){
@@ -228,10 +242,29 @@ module KsafeBase(){
     // bolt holes
     translate([0,0, -bolt_above -0.5 * bolthole_height])
       cube(center=true, [ cut, bolthole_width, bolthole_height ]);
+
+    // string slot
+    translate([ -cut,
+               -(bolthole_width/2 + bolthole_rhs),
+               1 ])
+      mirror([0,1,0]) mirror([0,0,1])
+      cube([ cut*2,
+            string_slot,
+            lidinner_thick_allow + string_depth + 1 ]);
+
+    // thumb slots
+    for (mx=[0,1]) mirror([mx,0,0]) {
+      translate([ thumbslot_between/2,
+                 0,
+                 -thumbslot_depth ])
+       cube([ thumbslot_width,
+              cut,
+              thumbslot_depth+1 ]);
+    }
   }
 }
 
-module DemoProfiles(){
+module DemoProfiles(){ ////toplevel
   translate([0,0,-2]) color("yellow") AnchorWallProfile();
   color("red") AnchorProfile();
   translate([0,0,2]) color("black") NearAnchorProfile();
@@ -239,6 +272,24 @@ module DemoProfiles(){
   translate([0,0,-4]) color("pink") WebProfile();
 }
 
+module RimTest(){ ////toplevel
+  intersection(){
+    Box();
+    cube(center=true, [ main_sz*2, main_sz*2,
+                       2.5 ]);
+  }
+}
+
+module BoltTest(){ ////toplevel
+  dy = 0.5 * (bolthole_width+4);
+  intersection(){
+    KsafeBase();
+    translate([ 0, -dy, -(bolt_above + bolthole_height + 1) ])
+      cube([ main_sz, dy*2, 50 ]);
+  }
+}
+
 //DemoProfiles();
 //Box();
-KsafeBase();
+//KsafeBase();
+//RimTest();