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;
-bevel = 5;
+bevel = 8;
// ----- calculated -----
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;
}
}
+module SomeBaseProfile(I, F){
+ polygon([ I,
+ F,
+ [ hsz+1, F[1] ],
+ [ hsz+1, I[1] ] ]);
+}
+
+module BaseProfile(){
+ SomeBaseProfile($xppI, $xppF);
+}
+
+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(){
+ /// corners
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)
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(){