// ^ One side. Overall size is increased by twice this.
// If no bumpers, is the gap around the phone.
+enable_support = 1;
+
phone_cnr_rad = 6.0;
button_cutout_depth = 9;
noisecancelmic_pos = [ 19.54, 7.37 ]; // from rhs
noisecancelmic_dia = 1.75;
-fingerpushhole_dias = [ 15, 18 ];
+//fingerpushhole_dias = [ 15, 18 ];
+fingerpushhole_dias = [];
rearspeaker_pos_bl = [ 12.64, 18.72 ];
rearspeaker_size = [ 3.76, 7.36 ];
keeper_gap_x = 0.25;
keeper_gap_x_holes = 0.75;
+keeper_side = 0; // 0 = lhs; 1 = rhs
+
case_lip = 1.25;
lid_gap_x = 0.25;
Flip_rhs(1) SideButton(15.580, +1, 8.9) children(); // power
Flip_rhs(1) SideButton(48.700, -1, 8.920) children(); // camera
Flip_rhs(0) SideButton(30.800, +1, 21.96) children(); // volume
- Flip_rhs( ) LidButtonishLeg(20, -1) children();
+ Flip_rhs( ) LidButtonishLeg(14, -1) children();
// Flip_rhs(0) LidButtonishLeg(20, +1, 20) children();
}
rearspeaker_size + rearspeaker_gap);
// finger hole to remove phone
- OrdinaryRearAperture(1,0, [ fingerpushhole_dias[0]/2 + epp2i[0],
- phone[1]/2 ])
+ if (len(fingerpushhole_dias))
+ OrdinaryRearAperture(1,0, [ fingerpushhole_dias[0]/2 + epp2i[0],
+ phone[1]/2 ])
scale(fingerpushhole_dias)
circle(r= 0.5 );
}
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)
Buttons(){
mirror([1,0,0])
rotate([90,0,90]) {
+ if (!($button_leg_only && enable_support))
intersection(){
translate([0,0,-10])
linear_extrude(height= 20)
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]);
+ if (enable_support)
+ rotate([-90,90,0])
+ translate([-400, -400, kppd[1]])
+ mirror([0,0,1])
+ cube([800,800,100]);
}
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);