chiark / gitweb /
fairphone-case: slant keeper
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Jan 2018 22:43:15 +0000 (22:43 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Jan 2018 22:43:15 +0000 (22:43 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
fairphone-case.scad

index 1785a11..5ec6d8c 100644 (file)
@@ -29,6 +29,7 @@ keeper_th_z = 0.75;
 keeper_th_x = 0.75;
 keeper_inner_width = 2.75;
 keeper_inner_height = 2.75;
+keeper_slant_slope = 2; // larger means steeper
 
 keeper_gap_z_top = 0.25;
 keeper_gap_z_bot = 0.75;
@@ -96,8 +97,9 @@ module rectfromto(a,b) {
 }
 module circleat(c,r) { translate(c) circle(r); }
 
-module KeeperProfile(){
-  polygon([kppe, kppd, kppc, kppb, kppa, kppf]);
+module KeeperProfile(slant=0){
+  use_e = kppe + [0,-1] * slant * keeper_inner_width / keeper_slant_slope;
+  polygon([use_e, kppd, kppc, kppb, kppa, kppf]);
 }
 
 module EdgeProfile(){
@@ -252,7 +254,7 @@ module Case(){ ////toplevel
       intersection(){
        rotate([90, 0, 0])
          linear_extrude(height = phone_height + phone_cnr_rad * 2)
-         KeeperProfile();
+         KeeperProfile(1);
 
        // outline of the whole case, to stop it protruding
        translate([0,0, -25])
@@ -366,6 +368,7 @@ module DemoProfiles(){ ////toplevel
   LidEdgeProfile();
   %EdgeProfile();
   KeeperProfile();
+  translate([0,0,-1]) color("black") KeeperProfile(1);
 
   translate([20,0]) {
     LidEdgeProfile();