diff --git a/upper_case.png b/upper_case.png index 8b16bff..8b4afc9 100644 Binary files a/upper_case.png and b/upper_case.png differ diff --git a/upper_case.scad b/upper_case.scad index 30d64fa..35b807c 100644 --- a/upper_case.scad +++ b/upper_case.scad @@ -6,19 +6,27 @@ $fn = 64; color("SaddleBrown") difference() { // case - hull() { - translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius+1); - translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius+1); - translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius+1); - translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r=pcb_radius+1); + union() { + hull() { + translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+1); + translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+1); + translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+1); + translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+1); + } + translate([0,0,upper_case_height/2]) hull() { + translate([-case_thickness, -case_thickness, 0]) resize(newsize=[2*(pcb_radius+1),2*(pcb_radius+1),upper_case_height]) sphere(r=pcb_radius+1); + translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) resize(newsize=[2*(pcb_radius+1),2*(pcb_radius+1),upper_case_height]) sphere(r=pcb_radius+1); + translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) resize(newsize=[2*(pcb_radius+1),2*(pcb_radius+1),upper_case_height]) sphere(r=pcb_radius+1); + translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) resize(newsize=[2*(pcb_radius+1),2*(pcb_radius+1),upper_case_height]) sphere(r=pcb_radius+1); + } } // pcb hull() { - cylinder(h=upper_case_height+0.1, r=pcb_radius+1); - translate([pcb_width-2*pcb_radius, 0, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); - translate([0, pcb_depth-2*pcb_radius, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); - translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); + translate([3,3,0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); + translate([pcb_width-2*pcb_radius-3, 3, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); + translate([3, pcb_depth-2*pcb_radius-3, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); + translate([pcb_width-2*pcb_radius-3, pcb_depth-2*pcb_radius-3, 0]) cylinder(h=upper_case_height+0.1, r=pcb_radius+1); } // threaded inserts