include <utils.scad>
-nook_th = 8; // xxx
+nook_th = 12.41 + 0.50;
nook_cnr_rad = 10;
case_th = 2.5;
ledge_w = 4;
-tape_th = 1.5;
+tape_th = 1.75;
tape_inside = 2.0;
+gap = 0.5 * [1,1];
+
+tape_w = 15;
+
+test_pillar = 4;
+
// calculated
ledge_h = case_th;
+lid_th = case_th;
spp0 = [0,0];
spp1 = spp0 + case_th * [-1,0];
spp7 = spp8 + case_th * [-1,-1];
spp11y = spp1[1] - tape_th;
-spp4y = 0.5 * (spp0[1] + spp8[1]);
+spp4y = 0.5 * (spp0[1] + spp7[1]);
spp3y = spp4y + tape_inside/2; spp5y = spp4y - tape_inside/2;
spp2y = spp3y + tape_th; spp6y = spp5y - tape_th;
spp20 = spp8 + nook_cnr_rad * [1,0];
spp20x = spp20[0];
+tppA = spp0 + gap;
+tppB = spp1 + [0, gap[1]];
+tppC = tppB + lid_th * [0,1];
+tppD = [ spp20x, tppC[1] ];
+tppE = [ spp20x, tppB[1] ];
+tppF = tppA + ledge_w * [1,0];
+tppG = tppF + ledge_h * [0,-1];
+tppH = [ tppA[0], tppG[1] ];
+
+tppJx = tppA[0] + tape_th;
+
module SideMainProfile() {
rectfromto(spp7, spp0);
rectfromto(spp7, spp20);
}
+module TopTapeCutout() {
+ polygon([ tppA,
+ tppA + [-1,-1],
+ tppH + [-1,-1],
+ [ tppJx, tppH[1]-1 ],
+ [ tppJx, tppC[1]+1 ],
+ [ tppA[0], tppC[1]+1 ]]);
+}
+
+module TopMainProfile() {
+ l = [ tppA, tppB, tppC, tppD, tppE, tppF, tppG, tppH ];
+ echo(l);
+ polygon(l);
+}
+
module SideTapeCutout1(y0,y1) {
rectfromto([ spp7[0]-1, y0 ],
[ spp8[0]+1, y1 ]);
SideTapeCutout1(spp11y, spp1[1] + 1);
}
-module Demo(){
- translate([0,0,-2]) color("red") SideMainProfile();
- difference(){
+module Demo(){ ////toplevel
+ translate([0,0,-2]) SideMainProfile();
+ translate([0,0,-2]) color("yellow") TopMainProfile();
+ color("red") difference(){
SideMainProfile();
SideTapeCutout();
}
+ translate([0,0,0]) color("purple") difference(){
+ TopMainProfile();
+ TopTapeCutout();
+ }
//%SideTapeCutout();
}
-Demo();
+module TestExtrude(){
+ difference(){
+ linextr_y_xz(-test_pillar, tape_w+test_pillar) children(0);
+ linextr_y_xz( 0, tape_w ) children(1);
+ }
+}
+
+module TestSide(){ ////toplevel
+ TestExtrude() { SideMainProfile(); SideTapeCutout(); }
+}
+
+module TestTop(){ ////toplevel
+ TestExtrude() { TopMainProfile(); TopTapeCutout(); }
+}
+module TestTopPrint(){ ////toplevel
+ rotate([180,0,0]) TestTop();
+}