chiark / gitweb /
fairphone-case: drop unused args to LidAdhocMultiprintFrame
[reprap-play.git] / fairphone-case.scad
index 093a647b3159ec12b54a988073844bee3c4ab99a..27d3c983e3e7d14d718a37aeeca4b888201c2317 100644 (file)
@@ -41,7 +41,7 @@ jack_pos = [ 13.83, 8.485 ];
 jack_dia = 10.64 + .5; // some jack I had lying around
 
 led_pos = [ 13.98, 10.00 ];
-led_aperture = 8;
+led_aperture = 9;
 led_window_ledge = 0.75; // each side
 
 noisecancelmic_pos = [ 19.54, 7.37 ];   // from rhs
@@ -407,7 +407,8 @@ module LidEdgeProfile(){
 module ButtonCoverProfile(){
   intersection(){
     polygon(concat([ bppM, bppP, bppO, bppJ ],
-                  (enable_support ? [ bppU, bppV, bppW ] : []),
+                  (enable_support && !$button_suppress_over_keeper
+                   ? [ bppU, bppV, bppW ] : []),
                   [ bppL, bppK ]));
     hull(){
       EdgeProfile();
@@ -553,12 +554,13 @@ module CaseAperture(pos, dia, $fn) {
             h = 60);
 }
 
-module SideButton(y, y_ref_sign, l){
+module SideButton(y, y_ref_sign, l, suppress_over_keeper=0){
   // y_ref_sign:
   //   +1  measured from top    of actual phone to top    of button
   //   -1  measured from bottom of actual phone to bottom of button
   //    0  y is centre of button in coordinate system
   $button_l= l;
+  $button_suppress_over_keeper= suppress_over_keeper;
   eff_y = y_ref_sign > 0 ?         -bumper [1] -y -l/2 :
          y_ref_sign < 0 ? (-phone -bumper)[1] +y +l/2 :
          y;
@@ -573,9 +575,9 @@ module LidButtonishLeg(y, y_ref_sign, l=buttonishleg_default_l_is_fudge) {
 }
 
 module Buttons(){
-  Flip_rhs(1) SideButton(15.580, +1, 8.9) children(); // power
-  Flip_rhs(1) SideButton(48.700, -1, 8.920) children(); // camera
-  Flip_rhs(0) SideButton(30.800, +1, 21.96) children(); // volume
+  Flip_rhs(1) SideButton(15.580, +1, 8.9     ) children(); // power
+  Flip_rhs(1) SideButton(48.700, -1, 8.920   ) children(); // camera
+  Flip_rhs(0) SideButton(30.800, +1, 21.96, 1) children(); // volume
   Flip_rhs(   ) LidButtonishLeg(14, -1) children();
 //  Flip_rhs(0) LidButtonishLeg(20, +1, 20) children();
 }
@@ -879,7 +881,7 @@ module Case(){ ////toplevel
                translate([phone_width/2, -400, kppe[1]])
                mirror([1-abs($rhsflip - keeper_side),0,0])
                cube([400, 800, 50]);
-           if (enable_support)
+           if (enable_support && !$button_suppress_over_keeper)
              rotate([-90,90,0])
              translate([-400, -400, kppd[1]])
                mirror([0,0,1])
@@ -1019,7 +1021,7 @@ 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);
+  LidAdhocMultiprintFrame(0);
 }
 
 module LidWindowPrint(){ ////toplevel
@@ -1177,12 +1179,30 @@ module TestFrameCase(){ ////toplevel
   }
 }
 
+module TestSelectTopApertures(){
+  translate([-100, -35, -100])
+    cube([400, 100, 200]);
+}
+
 module TestTopApertures(){ ////toplevel
   intersection(){
     Case();
     TestSelectFrame();
-    translate([-100, -35, -100])
-      cube([400, 100, 200]);
+    TestSelectTopApertures();
+  }
+}
+
+module TestLidTopAperturesPrint(){ ////toplevel
+  rotate([0,180,0]) intersection(){
+    Lid();
+    TestSelectTopApertures();
+  }
+}
+
+module TestLidWindowTopAperturesPrint(){ ////toplevel
+  rotate([0,180,0]) intersection(){
+    LidWindow();
+    TestSelectTopApertures();
   }
 }
 
@@ -1257,6 +1277,17 @@ module DemoPropAngles(){ ////toplevel
     DemoPropAngle(prop_angles[i]);
 }
 
+module DemoSelectAdhocLeftRight(right=0) {
+  translate([phone_width/2, -400, -100]) // , -15, -100  to cross-section
+    mirror([1-right, 0,0])
+    cube([400, 800, 200]);
+}
+
+module DemoLeft(){ ////toplevel
+  color("red")  intersection(){ Case(); DemoSelectAdhocLeftRight(); }
+  color("blue") intersection(){ Lid();  DemoSelectAdhocLeftRight(); }
+}
+
 module DemoFrame(){ ////toplevel
   color("red") TestFrameCase();
   color("blue") intersection(){ Lid(); TestSelectLidFrame(); }