Cord/examples/spe_contact_jig.scad

64 lines
1.9 KiB
OpenSCAD

// SPE Press-Contact Jig
spe_length = 31.0;
spe_width = 12.0;
spe_thick = 0.35;
strip_count = 3;
strip_y = [3.1, 6.05, 9.0];
strip_length = 18.0;
wire_dia = 0.65;
wall = 1.8;
floor_t = 1.2;
rim = 1.5;
tol = 0.15;
nest = 0.8;
lid_coverage = strip_length - 1.0;
tray_inner_l = spe_length + 2*tol;
tray_inner_w = spe_width + 2*tol;
tray_outer_l = tray_inner_l + 2*wall;
tray_outer_w = tray_inner_w + 2*wall;
lid_inner_l = lid_coverage + 2*tol;
lid_outer_l = lid_inner_l + 2*wall;
lid_outer_w = tray_outer_w;
blade_w = 1.2;
blade_drop = rim + 0.3;
module bottom() {
difference() {
cube([tray_outer_l, tray_outer_w, floor_t + rim]);
translate([wall, wall, floor_t])
cube([tray_inner_l + wall + 1, tray_inner_w, rim + 0.1]);
for (i = [0:strip_count-1]) {
wy = wall + tol + strip_y[i];
translate([-0.1, wy - (wire_dia + tol)/2, floor_t])
cube([wall + 0.2, wire_dia + tol, rim + 0.1]);
}
}
}
module top() {
lip_inset = tol;
difference() {
cube([lid_outer_l, lid_outer_w, floor_t]);
for (i = [0:strip_count-1]) {
wy = wall + tol + strip_y[i];
translate([-0.1, wy - (wire_dia + tol)/2, -0.1])
cube([wall + 0.2, wire_dia + tol, floor_t + 0.2]);
}
}
translate([wall + lip_inset, wall + lip_inset, -nest])
difference() {
cube([lid_inner_l - 2*lip_inset, tray_inner_w - 2*lip_inset, nest]);
translate([tol, tol, -0.1])
cube([lid_inner_l - 2*lip_inset - 2*tol, tray_inner_w - 2*lip_inset - 2*tol, nest + 0.2]);
}
for (i = [0:strip_count-1]) {
wy = wall + tol + strip_y[i];
translate([wall, wy - blade_w/2, -blade_drop])
cube([lid_inner_l, blade_w, blade_drop]);
}
}
bottom();
translate([tray_outer_l + 8, 0, blade_drop])
top();