jack_pos = [ 13.83, 8.485 ];
jack_dia = 10.64 + .5; // some jack I had lying around
-led_pos = [ 10.86, 8.58 ];
-led_aperture = 5;
+led_pos = [ 13.98, 10.00 ];
+led_aperture = 8;
led_window_ledge = 0.75; // each side
noisecancelmic_pos = [ 19.54, 7.37 ]; // from rhs
case_th_side = 2;
case_th_lip = 1.2;
+lid_screen_gap_extra = .66;
+
case_struts_count = 6;
case_struts_solid_below = 1.00;
case_struts_solid_above = 0.75;
// exact x posn not very important; must extend past end of keeper
lpp15 = [ lpp14[0],
- epp0[1] - phone_rim_depth + 1/2.5 * case_th_lid ];
+ epp0[1] - phone_rim_depth + 1/2.5 * case_th_lid
+ + lid_screen_gap_extra ];
// ^ beam theory says to maximise force before contact,
// the gap below the `beam' (the lid) must be 1/3
// the thickness (ie the lid thickness) if the beam
module ButtonCoverProfile(){
intersection(){
polygon(concat([ bppM, bppP, bppO, bppJ ],
- (enable_support ? [ bppU, bppV, bppW ] : []),
+ (enable_support && !$button_suppress_over_keeper
+ ? [ bppU, bppV, bppW ] : []),
[ bppL, bppK ]));
hull(){
EdgeProfile();
h = 60);
}
-module SideButton(y, y_ref_sign, l){
+module SideButton(y, y_ref_sign, l, suppress_over_keeper=0){
// y_ref_sign:
// +1 measured from top of actual phone to top of button
// -1 measured from bottom of actual phone to bottom of button
// 0 y is centre of button in coordinate system
$button_l= l;
+ $button_suppress_over_keeper= suppress_over_keeper;
eff_y = y_ref_sign > 0 ? -bumper [1] -y -l/2 :
y_ref_sign < 0 ? (-phone -bumper)[1] +y +l/2 :
y;
translate([phone_width/2, -400, kppe[1]])
mirror([1-abs($rhsflip - keeper_side),0,0])
cube([400, 800, 50]);
- if (enable_support)
+ if (enable_support && !$button_suppress_over_keeper)
rotate([-90,90,0])
translate([-400, -400, kppd[1]])
mirror([0,0,1])
DemoPropAngle(prop_angles[i]);
}
+module DemoSelectAdhocLeftRight(right=0) {
+ translate([phone_width/2, -400, -100]) // , -15, -100 to cross-section
+ mirror([1-right, 0,0])
+ cube([400, 800, 200]);
+}
+
+module DemoLeft(){ ////toplevel
+ color("red") intersection(){ Case(); DemoSelectAdhocLeftRight(); }
+ color("blue") intersection(){ Lid(); DemoSelectAdhocLeftRight(); }
+}
+
module DemoFrame(){ ////toplevel
color("red") TestFrameCase();
color("blue") intersection(){ Lid(); TestSelectLidFrame(); }