hingescrew_shaft_dia = 2.0 + 0.25; // M2 x 12mm machine screw
hingescrew_shaft_len = 12;
-hingescrew_nut_thick = 1.93 + 0.20; // incl. washer
-hingescrew_nut_dia = 4.72 + 0.50; // washer, actually
-hingescrew_nut_across = 3.92 + 0.25;
-hingescrew_nut_thick_real = 1.93;
+hingescrew_fasteners_extra_thick = 0.40;
+hingescrew_nut_access_dia = 4.72 + 0.50;
+// ^ washer is 4.72 dia
+// also, want to get pliers or tiny spanner in to do up locknut
+hingescrew_nut_across = 3.92 + 0.25; // incl. slop around recess slop
+hingescrew_nut_thick = 1.93;
hingescrew_head_th = 1.38 + 0.75;
hingescrew_head_dia = 3.92;
lever_cover_th = 0.75;
hingemount_th = 2.5;
+hingemount_wd = 4.8725;
hingescrew_nut_recess_portion = 2/3; // portion of nut in recess
bppW = lpp10;
// hinge plan
-hp_rn = hingescrew_nut_dia/2;
+hp_rn = hingescrew_nut_access_dia/2;
hp_r2_min = hp_rn + lever_cover_th;
hp_rs = hingescrew_shaft_dia/2;
hp_r1_min = hp_rs + hingemount_th;
// hinge elevation x coords
-hingescrew_portion_len =
- 0.5* (hingescrew_shaft_len - hingescrew_nut_thick - hinge_x_gap);
-
hex20 = max(epp2o[0],
phone_cnr_rad,
kppd[0] + hingescrew_head_th + keeper_gap_x_holes);
-hex21 = hex20 + hingescrew_portion_len;
+hex21 = hex20 + hingemount_wd;
hex22 = hex21 + hinge_x_gap;
-hex23 = hex22 + hingescrew_portion_len
- - hingescrew_nut_thick; // bodge, need to divvy this up more sensibly
-hex26 = hex23 + hingescrew_nut_thick_real * 2/3;
-hex24 = hex20 + hingescrew_shaft_len + hinge_x_postscrew_gap;
-//echo(hex20, hex21, hex22, hex23, hex24);
-//echo(hingescrew_portion_len);
+hex27 = hex20 + hingescrew_shaft_len;
+hex24 = hex27 + hinge_x_postscrew_gap;
+hex23 = hex27 - (hingescrew_nut_thick*2
+ + hingescrew_fasteners_extra_thick);
+hex26 = hex23 + hingescrew_nut_thick * 2/3;
+
+echo(hex20, hex21, hex22, hex23, hex24);
+// 6, 10.8725, 10.9975, 13.74, 18.75
+module chk(act,exp) {
+ if (abs(act-exp) > 1e-9) echo("WRONG", act, exp);
+ else echo("ok", act);
+}
+chk(hex20, 6);
+chk(hex21, 10.8725);
+chk(hex22, 10.9975);
+chk(hex23, 13.74);
+chk(hex24, 18.75);
// catch
}
module DemoHinge(){ ////toplevel
- DemoFrame();
- translate([0,0, -hp_k*3])
- DemoHingedFrame();
+ translate([ -0.5*phone_width, phone_height, hp_k*3 ]) {
+ DemoFrame();
+ translate([0,0, -hp_k*3])
+ DemoHingedFrame();
+ }
}
module DemoProfiles(){ ////toplevel