rearspeaker_pos_bl = [ 12.64, 18.72 ];
rearspeaker_size = [ 3.76, 7.36 ];
+microusb_above = 4.48 + 0.50;
+microusb_below = 1.82 + 0.50;
+microusb_width = 10.60 + 1.00;
+
case_th_bottom = 2.5;
case_th_lid = 2.5;
case_th_side = 2;
hppM = [ epp4[0] - foldover_lever_gap - hp_r2,
0.5 * (hppU + hppS)[1] ];
-hppT = hppM + 0.5 * [0,+1] * hp_k;
-hppB = hppM + 0.5 * [0,-1] * hp_k;
+hppT = [ hppM[0], hppU[1] - hp_r1 ];
+hppB = hppT + [0,-1] * hp_k;
// hinge elevation x coords
children();
}
+module MicroUSB(){
+ Flip_bot(1){
+ rotate([90,0,0])
+ mirror([0,0,1])
+ linextr(-epp2i[0], 60)
+ translate([0.5 * phone_width, 0, 0])
+ rectfromto([-microusb_width/2, epp2i[1] + microusb_below],
+ [+microusb_width/2, epp0[1] + -microusb_above]);
+ }
+}
+
module OrdinaryRearApertures(){
// rear speaker
OrdinaryRearAperture(1,1, rearspeaker_pos_bl)
}
}
+module Flip_hinge(){
+ hinge_origin = [0, -(phone_height - hppB[0]), hppB[1]];
+ translate(hinge_origin)
+ rotate([180,0,0])
+ translate(-hinge_origin)
+ children();
+}
+
module HingePortion(x0,x1){
Flip_rhs() Flip_bot(1)
translate([x0,0,0])
OrdinaryRearApertures();
+ MicroUSB();
+
// gaps for the lid's hinge arms
HingePortion(hex20 - hinge_x_arms_gap,
hex21 + hinge_x_arms_gap)
HingeLidProfile();
circle(r= hinge_r_arms_gap, $fn= 8);
}
+
+ // screw holes in the hinge arms
+ HingeScrews();
}
}
HingePortion(hex20, hex21) HingeLidProfile();
}
Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
+
+ // screw holes in the hinge arms
+ HingeScrews();
}
}
// space for the screws
HingePortion(hex23, hex24)
HingeLeverInnerProfile();
+
+ // bores for the screws
+ HingeScrews();
+
+ // space for the charging cable
+ MicroUSB();
+ Flip_hinge() MicroUSB();
}
}
+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(){
+module HingeScrews(){
Flip_rhs() Flip_bot(1){
for (c= [ hppT, hppB ])
translate([ hex20,
module DemoFrame(){ ////toplevel
color("red") TestFrameCase();
color("blue") intersection(){ Lid(); TestSelectFrame(); }
- color("black") DemoHingeScrews();
+ color("black") HingeScrews();
%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();
- }
+
+ Flip_hinge(){
+ color("orange") HingeLever();
+ color("black") HingeScrews();
+ }
}
module DemoHinge(){ ////toplevel