11 basex = holedia + endsflatbase*2;
12 basey = holedia + sidesflatbase*2;
16 bevelz = bevely / bevelslope;;
29 module sheared_cube(sz, xperz, yperz) {
30 multmatrix([[1,0,xperz,0],
41 for (mir=[0,1]) mirror([0,mir,0]) {
42 translate([0, basey/2 - basebevelt, 0])
43 sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
44 cube([basex, basey/2, basebaset]);
47 translate([basex/2, 0, -1])
48 cylinder(r=holedia/2, h=bevelz+2);
51 linear_extrude(height=endwallt) {
53 for (mir=[0,1]) mirror([mir,0,0]) {
56 [basey/2 + bevely, bevelz],
57 [basey/2 + bevely, innerz],
60 translate([cutouty, 0])
61 square(size=[cutoutsz, 3*innerz], center=true);
68 lidx = basex + endslop + endwallt;
69 for (mir=[0,1]) mirror([0,mir,0]) {
70 translate([0, basey/2 + sideslop + bevely, 0])
72 linear_extrude(height = lidx)
76 [0, innerz + lidt + zslop],
77 [sidewallt, innerz + lidt + zslop],
78 [sidewallt, -tapethick],
80 translate([0, -1, innerz + zslop])
81 cube([lidx, 1 + basey/2 + sideslop + bevely + sidewallt, lidt]);
82 translate([basex + endslop, -1, -tapethick])
83 cube([endwallt, 1 + basey/2 + sideslop + bevely + sidewallt,
84 tapethick + innerz + zslop + 0.1]);
88 module LidT(){ ////toplevel
89 rotate([180,0,0]) Lid();
92 module BaseCMid(){ ////toplevel
96 module BaseCTop(){ ////toplevel
97 Base(basey/2 + bevely - cutoutsz/2);
100 module BaseCBot(){ ////toplevel
101 Base(-(basey/2 + bevely - cutoutsz/2));
104 module BaseCNone(){ ////toplevel
108 module Demo(){ ////toplevel