chiark / gitweb /
fairphone-case: led window seems done
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 30 Jan 2018 23:45:30 +0000 (23:45 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 30 Jan 2018 23:45:30 +0000 (23:45 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
fairphone-case.scad

index c0df34586c8f547aa319c0e852f1871676bb8ab3..46529e6bbbcf99969e35cfc5bfb351ac3fdf4e67 100644 (file)
@@ -41,7 +41,7 @@ jack_dia = 10.64 + .5; // some jack I had lying around
 
 led_pos = [ 12.50, 8.00 ];
 led_aperture = 5;
-led_windowledge = 0.75; // each side
+led_window_ledge = 0.75; // each side
 
 noisecancelmic_pos = [ 19.54, 7.37 ];   // from rhs
 noisecancelmic_dia = 4.00;
@@ -221,7 +221,7 @@ bppW = lpp10;
 // notification led aperture
 
 nla_r0 = led_aperture/2;
-nla_r1 = nla_r0 + led_windowledge;
+nla_r1 = nla_r0 + led_window_ledge;
 nla_r2 = nla_r1 + multicolour_gap;
 nla_t =
   led_window_style >= 3 ? initial_layer_thick :
@@ -342,7 +342,7 @@ module AdhocMultiprintFrame(phase, z0, zs) {
   p1 = [ xrange[1], yrange[1] ];
   echo(p0, p1);
   translate([0,0, z0])
-    mirror([0,0, zs<0])
+    mirror([0,0, zs<0 ? 1 : 0])
     linear_extrude(height= initial_layer_thick)
     difference(){
       rectfromto(p0 - [1,1] * initial_layer_width,
@@ -912,6 +912,12 @@ module Case(){ ////toplevel
   }
 }
 
+module LidAdhocMultiprintFrame(phase){
+  if (led_window_style >= 3) {
+    AdhocMultiprintFrame(phase, lpp13[1], -1);
+  }
+}
+
 module Lid(){ ////toplevel
   difference(){
     union(){
@@ -965,9 +971,7 @@ module Lid(){ ////toplevel
 
     }
 
-  if (led_window_style >= 3) {
-    AdhocMultiprintFrame(1, lpp13[1], -1);
-  }
+  LidAdhocMultiprintFrame(1);
 }
 
 module HingeLever(){ ////toplevel
@@ -993,6 +997,33 @@ module HingeLever(){ ////toplevel
   }
 }
 
+module LidWindow(){ ////toplevel
+  translate([led_pos[0], -led_pos[1], lpp13[1]])
+    mirror([0,0,1])
+    cylinder(r= nla_r1, h=nla_t);
+  LidAdhocMultiprintFrame(0, lpp13[1], -1);
+}
+
+module LidWindowPrint(){ ////toplevel
+  rotate([0,180,0])
+    LidWindow();
+}
+
+module DemoLidWindowSelect(){
+  translate([led_pos[0], led_pos[1], -100]) {
+    translate([0, -30, 0]) cube([400, 400, 200]);
+  }
+}
+
+module DemoLidWindow(){ ////toplevel
+  %Lid();
+  LidWindow();
+  translate([0,40,0]){
+    color("blue") intersection(){ Lid(); DemoLidWindowSelect(); }
+    color("red") intersection(){ LidWindow(); DemoLidWindowSelect(); }
+  }
+}
+
 module HingeLeverPrint(){ ////toplevel
   rotate([-90,0,0])
     translate([-phone_width/2, phone_height, 0])