chiark / gitweb /
fairphone4-case: adjust from v2 (rework?)
[reprap-play.git] / fairphone4-case.scad
index 49c2bf3a350f3085e946064f48043d8cebc3ace7..dd36f74e7dc948d9495be1282c50716144fea94d 100644 (file)
@@ -165,10 +165,10 @@ led_window_ledge = 0.75; // each side
 noisecancelmic_pos = [ 15.08 + .720, 4.35 ];   // from rhs, from top edge
 noisecancelmic_dia = 4.00;
 
-mainmic_pos = [ 21.0, 4.35 ];   // from lhs, from top edge
+mainmic_pos = [ 20.5, 4.65 ];   // from lhs, from top edge
 mainmic_dia = 4.00;
 
-lhshole_pos = [ phone[1]/2, 4.35 ];
+lhshole_pos = [ phone[1]/2 - 0.80, 4.35 ];
 
 // fingerpushhole_dias = [];
 fingerpushhole_dias = [ 15, 18 ]; // this is for testing
@@ -179,8 +179,8 @@ lanyard_channel_len = 8;
 //rearspeaker_pos_bl = [ 12.64, 18.72 ];
 //rearspeaker_size   = [  3.76,  7.36 ];
 
-bottomspeaker_size = [ 11.35, 1.40 ] + [1,1] * 0.5;
-bottomspeaker_pos = [ 19.45, 4.82 ]; // from rhs, from top
+bottomspeaker_size = [ 12.35, 1.40 ] + [1,1] * 0.5;
+bottomspeaker_pos = [ 18.05, 5.52 ]; // from rhs, from top
 
 microusb_above = 1.64 - 0.25;
 microusb_below = 2.42;
@@ -208,6 +208,8 @@ keeper_gap_z_top = 0.25;
 keeper_gap_z_bot = 0.75;
 keeper_gap_x     = 0.25;
 keeper_gap_x_holes = 0.75;
+keeper_fatter = 0.30;
+keeper_fatter_hole = 1.20;
 
 keeper_side = 0; // 0 = lhs; 1 = rhs
 
@@ -224,8 +226,8 @@ foldover_gap = 0.50;
 foldover_lever_gap = 0.50;
 
 // properties of the hinge fasteners
-hingescrew_shaft_dia = 2.0 + 0.25; // M2 x 12mm machine screw
-hingescrew_shaft_len = 12;
+hingescrew_shaft_dia = 1.600 + 0.45; // beading wire
+hingescrew_shaft_len = 10;
 hingescrew_fasteners_extra_thick = 0.40;
 // ^ amount of thread protruding if everything was completely nominal
 //   and we are using two nuts
@@ -257,7 +259,7 @@ hinge_x_gap = 0.125;
 hinge_x_postscrew_gap = 0.75;
 hinge_x_arms_gap = 0.35;
 hinge_r_arms_gap = 0.55;
-hinge_over_nut_plate = 1.0;
+hinge_over_nut_plate = -0.50; // bodge apropos slope
 
 // there isn't one of these, speaker is by hinge
 // rearspeaker_gap    = [ 2.0, 2.0 ]; // each side
@@ -503,9 +505,15 @@ module AdhocMultiprintFrame(phase, z0, zs) {
     }
 }
 
-module KeeperProfile(slant=0){
+module KeeperProfile(fatter, slant=0){
   use_e = kppe + [0,-1] * slant * keeper_inner_width / keeper_slant_slope;
-  polygon([use_e, kppd, kppc, kppb, kppa, kppf]);
+  polygon([use_e + [+1,-1] * fatter,
+          kppd  + [ 0,-1] * fatter,
+          kppc,
+          kppb,
+          kppa,
+          kppf  + [+1, 0] * fatter
+          ]);
 }
 
 module EdgeProfile(){
@@ -829,7 +837,7 @@ module Buttons(){
   Flip_rhs(1) SideButton(64.220, +1, 14.500  ) children(); // power
   Flip_rhs(1) LidButtonishLeg(14, -1) children();
   Flip_rhs(0) LidButtonishLeg(21, -1) children();
-  Flip_rhs(0) LidButtonishLeg(14, +1) children();
+  Flip_rhs(0) LidButtonishLeg(21, +1) children();
 }
 
 module Struts(x_start, z_min, th){
@@ -1122,7 +1130,7 @@ module Case(){ ////toplevel
       Flip_rhs(1-keeper_side) intersection(){
        rotate([90, 0, 0])
          linear_extrude(height = phone_height + phone_cnr_rad * 2)
-         KeeperProfile(1);
+         KeeperProfile(fatter=0, slant=1);
 
        // outline of the whole case, to stop it protruding
        translate([0,0, -25])
@@ -1152,7 +1160,7 @@ module Case(){ ////toplevel
       rotate([90, 0, 0])
       linear_extrude(height = phone_height + phone_cnr_rad * 2)
       minkowski(){
-        KeeperProfile();
+        KeeperProfile(fatter=keeper_fatter_hole);
        rectfromto([ -keeper_gap_x,    -keeper_gap_z_bot ],
                   [ keeper_gap_x_holes,    +keeper_gap_z_top ]);
       }
@@ -1332,12 +1340,12 @@ module HingeLever(){ ////toplevel
       HingeLeverOuterProfile();
 
     // space for the screws
-    HingePortion(hex26, hex24)
-      HingeLeverInnerProfile();
+//    HingePortion(hex26, hex24)
+//      HingeLeverInnerProfile();
 
     // recesses for the nuts
-    HingePortion(hex23, hex26+1)
-      HingeLeverNutProfile();
+//    HingePortion(hex23, hex26+1)
+//      HingeLeverNutProfile();
 
     // bores for the screws
     HingeScrews();
@@ -1491,7 +1499,7 @@ module OneKeeper(){ ////toplevel
   translate([0, -phone_cnr_rad, 0])
     rotate([90, 0, 0])
     linear_extrude(height = phone_height - phone_cnr_rad * 2)
-    KeeperProfile();
+    KeeperProfile(fatter=keeper_fatter);
 }
 
 module OneKeeperPrint(){ ////toplevel
@@ -1513,6 +1521,11 @@ module TestSelectFrame(){
       linear_extrude(height=200)
       rectfromto(include,  inside_br - include);
   }
+
+  for (i= [1,2]) {
+    translate([ 0, -phone[1] * i/3, 0 ])
+      cube(center=true, [1000, 4, 100]);
+  }
 }
 
 module TestSelectLidFrame(){