keeper_gap_z_bot = 0.75;
keeper_gap_x = 0.25;
keeper_gap_x_holes = 0.75;
-keeper_fatter = 1.20; // todo: use proper size as determined
+keeper_fatter = 0.30;
+keeper_fatter_hole = 1.20;
keeper_side = 0; // 0 = lhs; 1 = rhs
}
}
-module KeeperProfile(slant=0){
+module KeeperProfile(fatter, slant=0){
use_e = kppe + [0,-1] * slant * keeper_inner_width / keeper_slant_slope;
- polygon([use_e + [+1,-1] * keeper_fatter,
- kppd + [ 0,-1] * keeper_fatter,
+ polygon([use_e + [+1,-1] * fatter,
+ kppd + [ 0,-1] * fatter,
kppc,
kppb,
kppa,
- kppf + [+1, 0] * keeper_fatter
+ kppf + [+1, 0] * fatter
]);
}
Flip_rhs(1-keeper_side) intersection(){
rotate([90, 0, 0])
linear_extrude(height = phone_height + phone_cnr_rad * 2)
- KeeperProfile(1);
+ KeeperProfile(fatter=0, slant=1);
// outline of the whole case, to stop it protruding
translate([0,0, -25])
rotate([90, 0, 0])
linear_extrude(height = phone_height + phone_cnr_rad * 2)
minkowski(){
- KeeperProfile();
+ KeeperProfile(fatter=keeper_fatter_hole);
rectfromto([ -keeper_gap_x, -keeper_gap_z_bot ],
[ keeper_gap_x_holes, +keeper_gap_z_top ]);
}
translate([0, -phone_cnr_rad, 0])
rotate([90, 0, 0])
linear_extrude(height = phone_height - phone_cnr_rad * 2)
- KeeperProfile();
+ KeeperProfile(fatter=keeper_fatter);
}
module OneKeeperPrint(){ ////toplevel