-module Base(){
- translate([0, basey-basebevelt, 0])
- sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
- sheared_cube([basex, basebevelt, bevelz], 0, -bevelslope);
- cube([basex, basey, basebaset]);
-// sheared_cube([10,20,30], 0.5, 3);
-// cube([basew, baseh, 0.1]);
-// translate([
+module Base(cutouty){
+ echo(cutouty);
+ difference(){
+ union(){
+ for (mir=[0,1]) mirror([0,mir,0]) {
+ translate([0, basey/2 - basebevelt, 0])
+ sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
+ cube([basex, basey/2, basebaset]);
+ }
+ }
+ translate([basex/2, 0, -1])
+ cylinder(r=holedia/2, h=bevelz+2);
+ }
+ rotate([90, 0, 90]) {
+ linear_extrude(height=endwallt) {
+ difference(){
+ for (mir=[0,1]) mirror([mir,0,0]) {
+ polygon([[-0.1, 0],
+ [basey/2, 0],
+ [basey/2 + bevely, bevelz],
+ [basey/2 + bevely, innerz],
+ [-0.1, innerz]]);
+ }
+ translate([cutouty, 0])
+ square(size=[cutoutsz, 3*innerz], center=true);
+ }
+ }
+ }
+}
+
+module Lid(){
+ lidx = basex + endslop + endwallt;
+ for (mir=[0,1]) mirror([0,mir,0]) {
+ translate([0, basey/2 + sideslop + bevely, 0])
+ rotate([90,0,90])
+ linear_extrude(height = lidx)
+ polygon([[0, 0],
+ [-bevely, 0],
+ [0, bevelz],
+ [0, innerz + lidt + zslop],
+ [sidewallt, innerz + lidt + zslop],
+ [sidewallt, -tapethick],
+ [0, -tapethick]]);
+ translate([0, -1, innerz + zslop])
+ cube([lidx, 1 + basey/2 + sideslop + bevely + sidewallt, lidt]);
+ translate([basex + endslop, -1, -tapethick])
+ cube([endwallt, 1 + basey/2 + sideslop + bevely + sidewallt,
+ tapethick + innerz + zslop + 0.1]);
+ }
+}
+
+module LidT(){ ////toplevel
+ rotate([180,0,0]) Lid();
+}
+
+module BaseCMid(){ ////toplevel
+ Base(0);
+}
+
+module BaseCTop(){ ////toplevel
+ Base(basey/2 + bevely - cutoutsz/2);
+}
+
+module BaseCBot(){ ////toplevel
+ Base(-(basey/2 + bevely - cutoutsz/2));
+}
+
+module BaseCNone(){ ////toplevel
+ Base(basey);
+}
+
+module Demo(){ ////toplevel
+ BaseCTop();
+ %Lid();