lid_lip = 1.75;
lid_edgepart_width = 5.0;
lid_buttoncover_thick = 1.3;
-
-catch_slop = 0.50;
+lid_buttoncover_reinf = 0.65;
foldover_gap = 0.50;
foldover_lever_gap = 0.50;
rearspeaker_gap = [ 2.0, 2.0 ]; // each side
-catch_len = 7.5;
+catch_slop = -0.75;
+
+catch_len = 4.5;
catch_width = 15;
catch_thickness = 1.3;
catch_side_gap = 0.75; // each side
-catch_depth = 1.25;
+catch_depth = 0.75;
catch_height = 0.35;
catch_finger_height = 1.5;
catch_finger_depth = 2.5;
-catch_catch_slope = 0.25;
+catch_catch_slope = 2.00;
+catch_close_slope = 3.00;
catch_topcurve_r = 5.0;
cppC = [ cppB[0], cppD[1] ];
cppT = cppS + [1, -catch_catch_slope] * catch_depth;
cppU = cppT + [0,-1] * catch_height;
-cppV = [ cppS[0], cppU[1] - catch_depth ];
+cppV = [ cppS[0], cppU[1] - catch_depth * catch_close_slope ];
cppR = 0.5*(cppP + cppJ);
}
}
+module ButtonCoverReinf(){ ////toplevel
+ minkowski(){
+ rotate([90,0,0])
+ linear_extrude(height=0.01)
+ intersection(){
+ ButtonCoverProfile();
+ translate([bppJ[0] + 0.1, -50]) mirror([1,0])
+ square([100,100]);
+ }
+ mirror([0,0,1]) linear_extrude(height=0.01) intersection(){
+ circle(r= lid_buttoncover_reinf);
+ translate([-20,0]) square(40, center=true);
+ }
+ }
+}
+
module CatchCatchProfile(){
hull(){
for (c=[ cppR, cppQ ])
children();
}
-module PropProfile(gamma, cut=0, rot=0){ ////toplevel
+module PropProfile(gamma, cut=0, rot=0){
PropProfileAssignments(gamma){
//#circleat($prpp3,1);
translate([0,0,-10])
linear_extrude(height= 20)
ButtonPlan($button_l, 1,0);
- rotate([90,0,0])
- translate([0,0,-100])
- linear_extrude(height= 200)
- ButtonCoverProfile();
+ union(){
+ rotate([90,0,0])
+ translate([0,0,-100])
+ linear_extrude(height= 200)
+ ButtonCoverProfile();
+ hull()
+ for (y= [-1,+1] * (($button_l + button_l_fudge)/2
+ - lid_buttoncover_reinf))
+ translate([0,y,0])
+ ButtonCoverReinf();
+ }
}
}
%EdgeProfile();
%LidEdgeProfile();
//translate([0,0,1]) CatchCutProfile();
+ translate([0,0,+1]) color("red")
+ difference(){ EdgeProfile(); CatchCutProfile(); }
color("blue") CatchCatchProfile();
- color("red") difference(){ EdgeProfile(); CatchCutProfile(); }
}
translate([40,-30]) {