chip_cutout = [[ -sw_to_edge + 4.20, -3.75 ],
[ -sw_to_edge + 11.95, -11.90 ]];
-strain_w = 2.0 + 0.5;
-strain_t = 1.0 + 0.5;
+strain_w = 3.5 + 0.5;
+strain_t = 1.5 + 0.5;
strain_pitch_across = 5;
strain_pitch_along = 10;
strain_groove_d = 2;
-strain_groove_w = 3;
+strain_groove_w = 4.5;
+strain_around = [2.25, 2.00];
cover_strap_c_d_y = 5.5; // from front of board
cover_registration_sz_y = 2;
midbot_registraton_sz_x = 3;
cable_space_z = 6;
-cable_dia = 5;
+cable_dia = 6;
bottom_floor_th = 1.5;
fit_gap_z = 0.5;
+ wall_th*2;
midbot_registration_bottom_x = board_w/2 - midbot_registraton_sz_x;
+midbot_strap_c_y = 0.5 * (strain_0_y_c + strain_1_y_c);
+
module BothSides(){
for (m=[0,1]) {
mirror([m,0,0]) {
module BottomStrapCutouts(y_c){
NormalStrapCutouts(y_c, bottom_base_z, -45);
}
-// XXXX check strap width
-// XXXX check cable diameter
-// XXXX need rear strap
module CoverStrapCutouts(){
BothSides(){
translate([ -total_side_wall_x, -cover_strap_c_d_y, cover_top_z ])
}
}
+module MiddleStrainHoles(){
+ BothSides(){
+ for (y_c = [strain_0_y_c, strain_1_y_c]) {
+ translate([strain_pitch_across/2, y_c, 0])
+ square([ strain_t, strain_w ], center=true);
+ }
+ }
+}
module Middle(){ ////toplevel
difference(){
union(){
MidBotRegistrations();
}
- for (y_c = [strain_0_y_c, strain_1_y_c]) {
- for (x_c = [-1,+1] * strain_pitch_across/2) {
- translate([x_c, y_c, 0])
- linextr(-20, 20)
- square([ strain_t, strain_w ], center=true);
- }
- }
+ linextr(-20, 20)
+ MiddleStrainHoles();
linextr_y_xz(total_y_min-1, main_y_min)
translate([0, middle_base_z])
scale([1, strain_groove_d/strain_groove_w])
circle(strain_groove_w/2, $fn = 8);
+ NormalStrapCutouts(midbot_strap_c_y,
+ middle_top_z, 45);
}
}
module MiddlePrint(){ ////toplevel
RegistrationsMinkowski()
MidBotRegistrations();
BottomStrapCutouts(-cover_strap_c_d_y);
+ BottomStrapCutouts(midbot_strap_c_y);
}
}
CoverRegistrations();
}
CoverStrapCutouts();
+ linextr(-20,20) {
+ minkowski(){
+ square(strain_around * 2, center=true);
+ hull() MiddleStrainHoles();
+ }
+ }
}
}
module CoverPrint(){ ////toplevel
%Middle();
translate([0, 0, +0.25]) Cover();
}
+module ImpressionDemo(){ ////toplevel
+ color("black") translate([0, 0, -0.25]) Bottom();
+ %Middle();
+ %translate([0, 0, +0.25]) Cover();
+}