fingerpushhole_dias = [ 14, 17 ];
-rearspeaker_pos_bl = [ 14.92, 18.72 ];
+rearspeaker_pos_bl = [ 12.64, 18.72 ];
rearspeaker_size = [ 3.76, 7.36 ];
case_th_bottom = 2.5;
hingescrew_nut_thick = 1.93 + 0.20; // incl. washer
hingescrew_nut_dia = 4.72 + 0.50; // washer, actually
hingescrew_head_th = 1.38 + 0.75;
+hingescrew_head_dia = 3.92;
lever_cover_th = 0.75;
hingemount_th = 2.5;
hinge_x_gap = 0.125;
hinge_x_postscrew_gap = 0.75;
+hinge_x_arms_gap = 0.35;
+hinge_r_arms_gap = 0.55;
rearspeaker_gap = [ 1.0, 1.0 ]; // each side
hex21 = hex20 + hingescrew_portion_len;
hex22 = hex21 - hinge_x_gap;
hex23 = hex22 + hingescrew_portion_len;
-hex24 = hex23 + hinge_x_postscrew_gap;
+hex24 = hex20 + hingescrew_shaft_len + hinge_x_postscrew_gap;
+echo(hex20, hex21, hex22, hex23, hex24);
+echo(hingescrew_portion_len);
// ---------- modules ----------
CaseAperture(noisecancelmic_pos, noisecancelmic_dia, 20);
OrdinaryRearApertures();
+
+ // gaps for the lid's hinge arms
+ HingePortion(hex20 - hinge_x_arms_gap,
+ hex21 + hinge_x_arms_gap)
+ minkowski(){
+ HingeLidProfile();
+ circle(r= hinge_r_arms_gap, $fn= 8);
+ }
+
+ // screw holes in the hinge arms
+ DemoHingeScrews();
}
}
ButtonCoverProfile();
}
}
+
+ // hinge arms
+ HingePortion(hex20, hex21) HingeLidProfile();
}
Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
+
+ // screw holes in the hinge arms
+ DemoHingeScrews();
}
}
+module HingeLever(){ ////toplevel
+ difference() {
+ // outer body, positive
+ HingePortion(hex22, hex22 + phone_width/2)
+ HingeLeverOuterProfile();
+
+ // space for the screws
+ HingePortion(hex23, hex24)
+ HingeLeverInnerProfile();
+
+ // bores for the screws
+ DemoHingeScrews();
+ }
+}
+
+module HingeLeverPrint(){ ////toplevel
+ rotate([90,0,0])
+ HingeLever();
+}
+
module TestSelectLength(){
translate([-30, -200, -20])
cube([30 + 15, 250, 40]);
}
module TestFrameLidPrint(){ ////toplevel
- rotate([0,0,180]) intersection(){
+ rotate([0,180,0]) intersection(){
Lid();
TestSelectFrame();
}
ButtonPlan(8, deep, cut);
}
+module DemoHingeScrews(){
+ Flip_rhs() Flip_bot(1){
+ for (c= [ hppT, hppB ])
+ translate([ hex20,
+ -c[0],
+ c[1] ]){
+ rotate([0,90,0])
+ translate([0,0,-.2])
+ cylinder( r= hingescrew_shaft_dia/2,
+ h = hingescrew_shaft_len+0.2 );
+ rotate([0,-90,0])
+ translate([0,0,+.1])
+ cylinder( r= hingescrew_head_dia/2, h = hingescrew_head_th );
+ }
+ }
+}
+
+module DemoFrame(){ ////toplevel
+ color("red") TestFrameCase();
+ color("blue") intersection(){ Lid(); TestSelectFrame(); }
+ color("black") DemoHingeScrews();
+ %HingeLever();
+}
+
+module DemoHingedFrame(){ ///toplevel
+ hinge_origin = [0, -(phone_height - hppB[0]), hppB[1]];
+
+ color("red") TestFrameCase();
+ translate([0,0, -2*hp_k])
+ color("blue") intersection(){ Lid(); TestSelectFrame(); }
+
+ translate(hinge_origin)
+ rotate([180,0,0])
+ translate(-hinge_origin) {
+ color("orange") HingeLever();
+ color("black") DemoHingeScrews();
+ }
+}
+
+module DemoHinge(){ ////toplevel
+ DemoFrame();
+ translate([0,0, -hp_k*3])
+ DemoHingedFrame();
+}
+
module DemoProfiles(){ ////toplevel
LidEdgeProfile();
%EdgeProfile();