13 basex = holedia + sidewidth*2;
14 basey = holedia + tapewidth*2;
18 bevely = bevelz * bevelslope;
30 module sheared_cube(sz, xperz, yperz) {
31 multmatrix([[1,0,xperz,0],
42 for (mir=[0,1]) mirror([0,mir,0]) {
43 translate([0, basey/2 - sidewallt, 0])
44 sheared_cube([basex, sidewallt, bevelz], 0, bevelslope);
45 cube([basex, basey/2, basebaset]);
48 translate([basex/2, 0, -1])
49 cylinder(r=holedia/2, h=bevelz+2);
52 linear_extrude(height=endwallt) {
54 for (mir=[0,1]) mirror([mir,0,0]) {
57 [basey/2 + bevely, bevelz],
58 [basey/2 + bevely, innerz],
61 translate([cutouty, 0])
62 square(size=[cutoutsz, 3*innerz], center=true);
69 lidx = basex + endslop + endwallt;
70 for (mir=[0,1]) mirror([0,mir,0]) {
71 translate([0, basey/2 + sideslop + bevely, 0])
73 linear_extrude(height = lidx)
77 [0, innerz + lidt + zslop],
78 [sidewallt, innerz + lidt + zslop],
79 [sidewallt, -tapethick],
81 translate([0, -1, innerz + zslop])
82 cube([lidx, 1 + basey/2 + sideslop + bevely + sidewallt, lidt]);
83 translate([basex + endslop, -1, -tapethick])
84 cube([endwallt, 1 + basey/2 + sideslop + bevely + sidewallt,
85 tapethick + innerz + zslop + 0.1]);
89 module LidT(){ ////toplevel
90 rotate([180,0,0]) Lid();
93 module BaseCMid(){ ////toplevel
97 module BaseCTop(){ ////toplevel
98 Base(basey/2 + bevely - cutoutsz/2);
101 module BaseCBot(){ ////toplevel
102 Base(-(basey/2 + bevely - cutoutsz/2));
105 module Demo(){ ////toplevel