+module Pegs(){ ////toplevel
+ baseslop = 0.1;
+ dslops = [0, -0.5, -1.0, -1.5];
+ stride = peg_max_dia + 4;
+ for (i=[0:len(dslops)-1]) {
+ translate([i*stride,0,0])
+ assign($peg_outer_slop_engage= baseslop + dslops[i])
+ Peg();
+ }
+}
+
+module AtFixingCentres(){
+ for (fc=[-1,+1]) {
+ translate([patbox_side/2 + fc*patbox_centres/2,
+ patbox_side/2,
+ 0])
+ children();
+ }
+}
+
+module TopPattressBox(){
+ difference(){
+ translate([0,0, -lid_thinbox_h])
+ cube([patbox_side, patbox_side, lid_thinbox_h]);
+ AtFixingCentres(){
+ translate([0,0,-10]) cylinder(r=peg_engage_dia/2, h=20);
+ }
+ }
+}
+
+module Demo(){
+ Lid();
+ translate([0,0, thinbox_front_z])
+ rotate([0,180,0]) translate([0, -patbox_side/2, 0])
+ rotate([0,0,90]) union(){
+ %TopPattressBox();
+ color("blue") AtFixingCentres(){
+ rotate([180,0,0]) Peg();
+ }
+ }
+}
+