13 basex = holedia + sidewidth*2;
14 basey = holedia + tapewidth*2;
18 bevely = bevelz * bevelslope;
31 module sheared_cube(sz, xperz, yperz) {
32 multmatrix([[1,0,xperz,0],
43 for (mir=[0,1]) mirror([0,mir,0]) {
44 translate([0, basey/2 - basebevelt, 0])
45 sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
46 cube([basex, basey/2, basebaset]);
49 translate([basex/2, 0, -1])
50 cylinder(r=holedia/2, h=bevelz+2);
53 linear_extrude(height=endwallt) {
55 for (mir=[0,1]) mirror([mir,0,0]) {
58 [basey/2 + bevely, bevelz],
59 [basey/2 + bevely, innerz],
62 translate([cutouty, 0])
63 square(size=[cutoutsz, 3*innerz], center=true);
70 lidx = basex + endslop + endwallt;
71 for (mir=[0,1]) mirror([0,mir,0]) {
72 translate([0, basey/2 + sideslop + bevely, 0])
74 linear_extrude(height = lidx)
78 [0, innerz + lidt + zslop],
79 [sidewallt, innerz + lidt + zslop],
80 [sidewallt, -tapethick],
82 translate([0, -1, innerz + zslop])
83 cube([lidx, 1 + basey/2 + sideslop + bevely + sidewallt, lidt]);
84 translate([basex + endslop, -1, -tapethick])
85 cube([endwallt, 1 + basey/2 + sideslop + bevely + sidewallt,
86 tapethick + innerz + zslop + 0.1]);
90 module LidT(){ ////toplevel
91 rotate([180,0,0]) Lid();
94 module BaseCMid(){ ////toplevel
98 module BaseCTop(){ ////toplevel
99 Base(basey/2 + bevely - cutoutsz/2);
102 module BaseCBot(){ ////toplevel
103 Base(-(basey/2 + bevely - cutoutsz/2));
106 module Demo(){ ////toplevel