tapewidth = 7;
tapethick = 1;
+cutoutsz= 10;
+
innerz = 10;
basex = holedia + sidewidth*2;
lidt = 2;
endwallt = 2;
zslop = 0.75;
+endslop = 0.75;
module sheared_cube(sz, xperz, yperz) {
multmatrix([[1,0,xperz,0],
cube(sz);
}
-module Base(){
+module Base(cutouty){
+ echo(cutouty);
difference(){
union(){
for (mir=[0,1]) mirror([0,mir,0]) {
translate([0, basey/2 - sidewallt, 0])
sheared_cube([basex, sidewallt, bevelz], 0, bevelslope);
cube([basex, basey/2, basebaset]);
- rotate([90, 0, 90])
- linear_extrude(height=endwallt)
- polygon([[-0.1, 0],
- [basey/2, 0],
- [basey/2 + bevely, bevelz],
- [basey/2 + bevely, innerz],
- [-0.1, innerz]]);
}
}
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;
+ lidx = basex + endslop + endwallt;
for (mir=[0,1]) mirror([0,mir,0]) {
translate([0, basey/2 + sideslop, 0])
sheared_cube([lidx, sidewallt, bevelz], 0, bevelslope);
translate([0, basey/2 + sideslop + bevely, -tapethick])
cube([lidx, sidewallt, innerz + tapethick + lidt + zslop]);
- translate([0, 0, innerz + zslop])
- cube([lidx, basey/2 + sideslop + bevely + sidewallt, lidt]);
+ 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]);
}
}
-Base();
-Lid();
+module LidT(){ ////toplevel
+ rotate([180,0,0]) Lid();
+}
+
+module BaseCMid(){ ////toplevel
+ Base(0);
+}
+
+module BaseCTop(){ ////toplevel
+ Base(basey/2 + bevely - cutoutsz/2);
+}
+
+//BaseCTop();
+//BaseCMid();
+//LidT();