chiark / gitweb /
fairphone-case: DemoHinge: translate so default view is of hinges
[reprap-play.git] / fairphone-case.scad
index 8fe6e40c4a85d0f3c29433cde5d7c2dfabba908e..43e847eac2c38680a402368d6ea5008475d2db61 100644 (file)
@@ -79,13 +79,18 @@ foldover_lever_gap = 0.50;
 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_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_real = 1.93;
 hingescrew_head_th = 1.38 + 0.75;
 hingescrew_head_dia = 3.92;
 lever_cover_th = 0.75;
 hingemount_th = 2.5;
 
+hingescrew_nut_recess_portion = 2/3; // portion of nut in recess
+
 $fa = 5;
 $fs = 0.1;
 
@@ -195,7 +200,7 @@ bppV = lpp11;
 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;
@@ -228,8 +233,20 @@ hex21 = hex20 + hingescrew_portion_len;
 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(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);
 //echo(hingescrew_portion_len);
 
 // catch
@@ -899,9 +916,13 @@ module HingeLever(){ ////toplevel
       HingeLeverOuterProfile();
 
     // space for the screws
-    HingePortion(hex23, hex24)
+    HingePortion(hex26, hex24)
       HingeLeverInnerProfile();
 
+    // recesses for the nuts
+    HingePortion(hex23, hex26+1)
+      HingeLeverNutProfile();
+
     // bores for the screws
     HingeScrews();
 
@@ -1143,9 +1164,11 @@ module DemoHingedFrame(){ ///toplevel
 }
 
 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