chiark / gitweb /
nook-case: wip DiagonaliseNearHinge, slope
[reprap-play.git] / nook-case.scad
index 78f4f4b1661390e48e7d1f72434f0d2fa47630e1..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,6 +249,22 @@ module FaceCore(z0,z1, extra_left, extra_right){
   }
 }
 
+module DiagonaliseNearHinge(wider){
+  sz = spp0[1] - spp30[1] + gap[1];
+
+  for (my=[0,1]) mirror([0,my,0]) {
+      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([[  -1, 0 ],
+                [   0, 0 ],
+                [  sz/diag_near_hinge_slope, sz ],
+                [  sz/diag_near_hinge_slope, sz + 0.1 ],
+                [  -1, sz + 0.1 ]]);
+    }
+}    
+
 module Base(){ ////toplevel
   difference(){
     FaceCore(spp7[1],spp8[1], 0.3, 0) {
@@ -257,6 +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]);
+    translate([ gap[0], 0,0 ])
+      DiagonaliseNearHinge(10);
 /*
     translate([nook_w/2, 0, 0])
       linextr_y_xz(oprb, opra)
@@ -277,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();