chiark / gitweb /
fairphone-case: adjust sizes for inner tube (back to v1 sizes)
[reprap-play.git] / fairphone-case.scad
index 34b4221e0eb6743e6b4fd3d57344baef1c63d725..0b73f657e2654df6e58b460341ae5a69d2bda72f 100644 (file)
@@ -1,7 +1,7 @@
 // -*- C -*-
 
-phone_height = 146.5 - .80;
-phone_width = 76.75 - .50;
+phone_height = 146.5;
+phone_width = 76.75;
 
 phone_cnr_rad = 6.0;
 
@@ -47,6 +47,8 @@ $fs = 0.1;
 
 button_l_fudge = 4.5;
 
+strut_min_at_end = 1.5;
+
 // ---------- calculated ----------
 
 // ----- could be changed -----
@@ -245,6 +247,18 @@ module AroundEdges(fill_zstart, fill_th, fill_downwards=0){
               [phone_width, -phone_height] + [-1,+1] * phone_cnr_rad);
 }
 
+module SideButton(y,l){
+  $button_l= l;
+  translate([0, -y, 0])
+    mirror([1,0,0])
+    rotate([90,0,90])
+    children();
+}
+
+module Buttons(){
+  CaseBase_rhsflip([1]) SideButton(20.6, 8.8) children(); // power
+}
+
 module Struts(x_start, z_min, th){
   // if th is negative, starts at z_min and works towards -ve z
   // and object should then be printed other way up
@@ -254,8 +268,8 @@ module Struts(x_start, z_min, th){
               z_min])
       mirror([0,0, th<0 ? 1 : 0])
       translate([0,
-              -phone_height * i / (case_struts_count+1),
-              case_struts_solid_below])
+                -phone_height * i / (case_struts_count+1),
+                case_struts_solid_below])
       linear_extrude(height= abs(th)
                     -(case_struts_solid_below+case_struts_solid_above))
       rectfromto([               x_start, -0.5 * case_struts_width ],
@@ -309,12 +323,26 @@ module Case(){ ////toplevel
 
     // struts (invisible, because they're buried in the case)
     Struts(epp2i[0], epp2i[1] - case_th_bottom, case_th_bottom);
+
+    Buttons(){
+      translate([0,0,-10])
+       linear_extrude(height= 20)
+       ButtonPlan($button_l, 0,1);
+      translate([0,0, -bppR[0]])
+       linear_extrude(height= 20)
+       ButtonPlan($button_l, 1,1);
+    }
   }
 }
 
 module Lid(){ ////toplevel
-  AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
-    LidEdgeProfile();
+  difference(){
+    union(){
+      AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
+        LidEdgeProfile();
+    }
+    Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
+  }
 }
 
 module TestLength(){ ////toplevel