chiark / gitweb /
pattress-boxes-3-cover: introduce lid_inner_w_nom (nfc)
[reprap-play.git] / pattress-boxes-3-cover.scad
index d0b7e9a7194177d8bad00d5b89b428a510e2930a..1fb88b0ef9ddb08de540bfc07102bbe04a49160b 100644 (file)
@@ -34,6 +34,7 @@ peg_outer_slop = 0.1;
 peg_slope = 1;
 
 lid_side_slop = 0.5;
+lid_rail_behindslop = 0.5;
 
 // computed
 
@@ -43,7 +44,8 @@ lid_inner_min_h = lid_fatbox_overlap + lid_fatbox_switches_h;
 
 lid_inner_kink = [thinbox_len, thinbox_len*2];
 
-lid_inner_w = patbox_side + lid_side_slop * 2;
+lid_inner_w_nom = patbox_side;
+lid_inner_w = lid_inner_w_nom + lid_side_slop * 2;
 
 lid_seatline_w = (lid_inner_w - lid_max_switches_w)/2 - lid_switches_y_slop;
 
@@ -64,6 +66,19 @@ module LidSideProfile(){
           [-lid_top_wall,     -lid_front_wall]]);
 }
 
+module RailProfile(){
+  yt_base = lid_seatline_h + lid_fatbox_h - lid_thinbox_h;
+  yt = yt_base - lid_rail_behindslop;
+  pegx = (lid_inner_w - patbox_centres)/2;
+  
+  polygon([[-0.1,                  yt],
+          [pegx - peg_main_dia/2, yt],
+          [pegx - peg_main_dia/2, yt_base - peg_straight_len],
+          [-0.1,
+           yt_base - peg_straight_len - (pegx - peg_main_dia/2)/peg_slope
+          -0.1]]);
+}
+
 module LidSide(){
   overlap = [0.1, 0.1, 0.1];
 
@@ -83,6 +98,12 @@ module LidSide(){
   // lid top
   translate([-lid_top_wall, -lid_side_wall, -lid_front_wall])
     cube([lid_top_wall, lid_inner_w/2 + 10, lid_front_wall + lid_inner_max_h]);
+
+  // rail
+  rotate([90,0,90])
+    translate([0,0,-0.1])
+    linear_extrude(height=100.1) //todo
+    RailProfile();
 }
 
 module PegProfile(){
@@ -137,4 +158,5 @@ module Demo(){
 //PegProfile();
 //Peg();
 //TopPattressBox();
+//RailProfile();
 Demo();