bolt_above = 8.50 - 0.50;
bolthole_height = 4.24 + 1.00;
wall_thick = 4.50;
-bolthole_width = 16.62 + 2.00;
-main_sz = 150.56 + 0.75;
-cnr_rad = 13.5; // approx
+bolthole_width = 16.62 + 1.00;
+main_sz = 149.06 - 0.25;
+cnr_rad = 19.5;
lidinner_thick_allow = 20.78 + 0.50;
display_width = 69.81 - 0.50;
// ----- calculated -----
hsz = main_sz/2;
+cut = main_sz + 20;
gppA = [0,0];
gppB = gppA - [ wall_thick, 0 ];
yw13 = -yw6;
cpp1 = dpp1 + [ dcover_slop_depth, dcover_slop_height ];
-cpp2 = dpp2 + [ -dcover_slop_depth, dcover_slop_height ];
+cpp2 = [ dpp2[0] - dcover_slop_depth, dpp3[1] + dcover_slop_height ];
cppH = cpp1 + [ 0, dcover_endthick ];
cppA = [ cpp2[0], dpp3[1] + dcover_slop_inside ];
cppK = cppA + [ 0, dcover_mainthick ];
cppZ = [ -ksafecover_lip, -dcover_commonvertoff ];
cppD = cppZ + [ 0, -dcover_slop_inside ];
-cppE = cppD + [ 0, -dcover_mainthick ];
cppC = [ dcover_slop_inside, cppD[1] ];
cppF = cppC + dcover_mainthick * [1,-1];
cppB = [ cppC[0], cppA[1] ];
cppG = [ cppF[0], cppK[1] ];
+cppE = [ cppD[0], cppF[1] - (cppF[0] - cppD[0]) ];
// anchor
DCoverProfile();
}
-module KsafeBase(){ ////toplevel
- cut = main_sz + 20;
+module DCoverSupportAllowance(){
+ translate([0, -hsz, 0])
+ cube(center=true,
+ [ display_width + 2 * dcover_edge_gap_more_width,
+ wall_thick * 2,
+ dcover_slop_inside * 2 + 0.01 ]);
+}
+
+module BoltHoles(){
+ translate([0,0, -(bolt_above + 0.5 * bolthole_height)])
+ cube(center=true, [ cut, bolthole_width, bolthole_height ]);
+}
+module KsafeBase(){ ////toplevel
DCover();
difference(){
Box();
- // bolt holes
- translate([0,0, -bolt_above -0.5 * bolthole_height])
- cube(center=true, [ cut, bolthole_width, bolthole_height ]);
+ BoltHoles();
// string slot
translate([ -cut,
thumbslot_depth+1 ]);
}
- // support frass area by display cover
- translate([0, -hsz, 0])
- cube(center=true,
- [ display_width + 2 * dcover_edge_gap_more_width,
- wall_thick * 2,
- dcover_slop_inside * 2 + 0.01 ]);
+ DCoverSupportAllowance();
}
}
}
}
+module DCoverTest(){ ////toplevel
+ intersection(){
+ difference(){
+ union(){
+ Box();
+ DCover();
+ }
+ DCoverSupportAllowance();
+ BoltHoles();
+ }
+ translate([0,0,60])
+ cube(center=true, [ main_sz*2, main_sz*2,
+ 2 * (60 + 10) ]);
+ }
+}
+
module BoltTest(){ ////toplevel
dy = 0.5 * (bolthole_width+4);
intersection(){