chiark / gitweb /
ksafe-base: introduce BaseProfile
[reprap-play.git] / ksafe-base.scad
index abb74e6ff241326a46b2871e6513c432cf2eb770..973ec8d3bd49478493628caf3a4558351e539874 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C -*-
 
 // -*- C -*-
 
-// xxx from actual ksafe
+// xxx from actual ksafe, needs slop adding
 bolt_above = 14.30;
 bolthole_height = 4.24;
 wall_thick = 4.50;
 bolt_above = 14.30;
 bolthole_height = 4.24;
 wall_thick = 4.50;
@@ -15,12 +15,12 @@ web_height = 20; // excluding wall and base thick
 bolthole_rhs = 20;
 bolthole_lhs = 20;
 boltreinf_thick = 6;
 bolthole_rhs = 20;
 bolthole_lhs = 20;
 boltreinf_thick = 6;
-anchor_wall_space = 45;
+anchor_wall_space = 25;
 base_thick = 4;
 space = 25;
 anchor_thick = 4;
 anchor_rad = 4;
 base_thick = 4;
 space = 25;
 anchor_thick = 4;
 anchor_rad = 4;
-bevel = 5;
+bevel = 8;
 
 // ----- calculated -----
 
 
 // ----- calculated -----
 
@@ -31,6 +31,18 @@ gppB = gppA - [ wall_thick, 0 ];
 
 gppL = [ gppB[0], -(lidinner_thick_allow + space + base_thick) ];
 
 
 gppL = [ gppB[0], -(lidinner_thick_allow + space + base_thick) ];
 
+yw1 = -web_thick/2;
+yw2 = yw1 - bolthole_rhs;
+yw3 = yw2 - anchor_thick;
+yw4 = yw3 - anchor_wall_space;
+yw5 = yw4 - wall_thick;
+yw6 = -(hsz - cnr_rad + 0.1);
+
+yw10 = web_thick/2;
+yw11 = yw2 + anchor_wall_space;
+yw12 = yw11 + wall_thick;
+yw13 = -yw6;
+
 // anchor
 
 anchor_b = anchor_thick + anchor_rad;
 // anchor
 
 anchor_b = anchor_thick + anchor_rad;
@@ -139,9 +151,30 @@ module WebProfile(){
   }
 }
 
   }
 }
 
+module BaseProfile(){
+  polygon([ $xppI,
+           $xppF,
+           [ hsz+1, $xppF[1] ],
+           [ hsz+1, $xppI[1] ] ]);
+}
+
+module SWalls(ymin, ymax, t_bevel) {
+  upp_app_Vars(t_bevel) {
+    translate([0,ymin,0])
+      mirror([0,1,0])
+      rotate([90,0,0])
+      linear_extrude(height= ymax-ymin, convexity=10)
+      for (xm=[0,1])
+       mirror([xm,0])
+         translate([-hsz, 0])
+           children();
+  }
+}
+
 module KsafeBase(){
 module KsafeBase(){
+  /// corners
   for (xm=[0,1]) for (ym=[0,1]) {
   for (xm=[0,1]) for (ym=[0,1]) {
-    mirror([xm,0]) mirror([0,ym])
+    mirror([xm,0,0]) mirror([0,ym,0])
     translate((hsz - cnr_rad) * [1,1])
     intersection(){
       rotate_extrude(convexity=10)
     translate((hsz - cnr_rad) * [1,1])
     intersection(){
       rotate_extrude(convexity=10)
@@ -151,6 +184,14 @@ module KsafeBase(){
        cube([50,50,500]);
     }
   }
        cube([50,50,500]);
     }
   }
+
+  // side walls and base
+  SWalls(yw6 , yw4 , bevel  ) { UsualProfile();      BaseProfile(); }
+  SWalls(yw5 , yw4 , a_bevel) { AnchorWallProfile(); BaseProfile(); }
+  SWalls(yw5 , yw12, a_bevel) { NearAnchorProfile(); BaseProfile(); }
+  SWalls(yw3 , yw2 , a_bevel) { AnchorProfile();     BaseProfile(); }
+  SWalls(yw11, yw12, a_bevel) { AnchorWallProfile(); BaseProfile(); }
+  SWalls(yw11, yw13, bevel  ) { UsualProfile();      BaseProfile(); }
 }
 
 module DemoProfiles(){
 }
 
 module DemoProfiles(){