module pcb_jig(width, height, thickness = 10, inset = 3, tolerance = 1) { difference() { translate([0, 0, thickness / 2]) cube([width + 50, height + 15, thickness], center = true); translate([0, 0, thickness - inset + (inset + 1) / 2]) cube([width + tolerance, height + tolerance, (inset + 1)], center = true); translate([0, height / 2 + 5, 2.5]) cube([15, 20, 20], center = true); translate([0, -height / 2 - 5, 2.5]) cube([15, 20, 20], center = true); translate([2.5, 0, -1]) { spacing = max(1, floor(height / 45)) * 45; translate([width / 2 + 10, 0, 0]) { translate([0, spacing / 2, 0]) cylinder(h = 20, d = 6.5); translate([0, -spacing / 2, 0]) cylinder(h = 20, d = 6.5); } translate([-width / 2 - 15, 0, 0]) { translate([0, spacing / 2, 0]) cylinder(h = 20, d = 6.5); translate([0, -spacing / 2, 0]) cylinder(h = 20, d = 6.5); } } } }