keeper_gap_x = 0.25;
keeper_gap_x_holes = 0.75;
+keeper_side = 1; // 0 = lhs; 1 = rhs
+
case_lip = 1.25;
lid_gap_x = 0.25;
module HingeLeverInnerProfile(){
for (c = [hppT, hppB]) {
hull()
- for (x=[0,20])
- translate([x,0])
- circleat(c, hp_rn);
- circleat(hppB, hp_rn);
+ for (x=[-20,20])
+ for (y=[0, c[1] - hppM[1]])
+ translate([x,y])
+ circleat(c, hp_rn);
}
}
CaseBase();
// ledge (fixed keeper)
- intersection(){
+ Flip_rhs(1-keeper_side) intersection(){
rotate([90, 0, 0])
linear_extrude(height = phone_height + phone_cnr_rad * 2)
KeeperProfile(1);
translate([0,0, -25])
linear_extrude(height = 50)
hull()
- // Flip_rhs() // actually, we only care about the LH
Flip_bot()
circleat([+1,-1] * phone_cnr_rad, phone_cnr_rad + case_th_side/2);
}
}
// slot for keeper
- Flip_rhs(1)
+ Flip_rhs(keeper_side)
translate([0, -phone_cnr_rad, 0])
rotate([90, 0, 0])
linear_extrude(height = phone_height + phone_cnr_rad * 2)
if ($button_leg_only)
rotate([-90,90,0])
translate([phone_width/2, -400, kppe[1]])
- mirror([$rhsflip,0,0]) cube([400, 800, 50]);
+ mirror([1-abs($rhsflip - keeper_side),0,0]) cube([400, 800, 50]);
}
translate([0,0, -bppR[0]])
linear_extrude(height= 20)
}
}
-module Keeper(){ ////toplevel
- Flip_rhs()
- OneKeeper();
-}
-
module ButtonPlanForDemo(z, deep, cut){
translate([0,0,z])
ButtonPlan(8, deep, cut);