chiark / gitweb /
nook-case: wip DiagonaliseNearHinge, slope
[reprap-play.git] / nook-case.scad
index 5ac06b5d1d9d4cf02ddf1452efd985363c6ab106..e6025df92aceb36f1ceea1434ee9fa6d4d288b99 100644 (file)
@@ -1,5 +1,6 @@
 // -*- C -*-
 
+include <funcs.scad>
 include <utils.scad>
 
 nook_th = 12.41 + 0.50 - 1.50;
@@ -39,6 +40,8 @@ engage_l2 = 3;
 tooth_inward = gap[0] * 1.0 + 0.25;
 tooth_w = 15;
 
+diag_near_hinge_slope = 0.5;
+
 $test = false;
 
 $fa = $test ? 10 : 3;
@@ -246,18 +249,19 @@ module FaceCore(z0,z1, extra_left, extra_right){
   }
 }
 
-module DiagonaliseNearHinge(shift){
-  sz = spp0[1] - spp30[1];
+module DiagonaliseNearHinge(wider){
+  sz = spp0[1] - spp30[1] + gap[1];
 
   for (my=[0,1]) mirror([0,my,0]) {
-      translate([-nom_cnr[0], -nook_h/2, 0])
-      linextr_y_xz(-30,30)
+      translate([-etxa, -nook_h/2, 0])
+       mirror([1,0,0])
+       linextr_y_xz(spp31[0] - wider, spp30[0] + gap[0] + 0.1)
        translate([ 0, spp30[1] ])
-       polygon([[        -0.1, 0 ],
-                [  shift +  0, 0 ],
-                [  shift + sz, sz ],
-                [  shift + sz, sz + 0.1 ],
-                [        -0.1, sz + 0.1 ]]);
+       polygon([[  -1, 0 ],
+                [   0, 0 ],
+                [  sz/diag_near_hinge_slope, sz ],
+                [  sz/diag_near_hinge_slope, sz + 0.1 ],
+                [  -1, sz + 0.1 ]]);
     }
 }    
 
@@ -272,7 +276,8 @@ module Base(){ ////toplevel
       mirror([0,1,0])
       linextr_x_yz(-usb_w/2, usb_w/2)
       rectfromto(spp8 + [-40, usb_below], [40, 40]);
-    %DiagonaliseNearHinge(0);
+    translate([ gap[0], 0,0 ])
+      DiagonaliseNearHinge(10);
 /*
     translate([nook_w/2, 0, 0])
       linextr_y_xz(oprb, opra)
@@ -293,6 +298,8 @@ module Top(){ ////toplevel
       linextr_y_xz(opqb, opqa)
       rectfromto(spp8, tppC + [-1,1]);
   }
+  translate([0,0, gap[1]])
+    DiagonaliseNearHinge(0);
   translate([nook_w/2, tooth_y, 0])
     linextr_y_xz(-tooth_w/2, +tooth_w/2)
     ToothProfile();