// This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. include $fn = 64; color("SaddleBrown") difference() { // case hull() { translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius); translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius); translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius); translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius); } // pcb hull() { cylinder(h=upper_case_height+0.1, r=pcb_radius); translate([pcb_width-2*pcb_radius, 0, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius); translate([0, pcb_depth-2*pcb_radius, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius); translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius); } // threaded inserts translate([-case_thickness, -case_thickness, 0]) cylinder(h=3, d=3); translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=3, d=3); translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=3, d=3); translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=3, d=3); translate([20, pcb_depth - pcb_radius, 0]) lug(hole=false); translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius, 0]) lug(hole=false); translate([20, -pcb_radius, 0]) lug(north_facing=false, hole=false); translate([pcb_width-2*pcb_radius - 20, -pcb_radius, 0]) lug(north_facing=false, hole=false); }