40 lines
2.6 KiB
OpenSCAD
40 lines
2.6 KiB
OpenSCAD
include <util.scad>
|
|
|
|
$fn = 64;
|
|
|
|
difference() {
|
|
// case
|
|
hull() {
|
|
translate([-case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
}
|
|
// pcb
|
|
translate([0, 0, case_bottom_thickness]) hull() {
|
|
cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([pcb_width-2*pcb_radius, 0, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([0, pcb_depth-2*pcb_radius, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius);
|
|
}
|
|
// plate_mounting
|
|
translate([20, pcb_depth - pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_height]) lug(hole=false);
|
|
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_height]) lug(hole=false);
|
|
translate([20, -pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_height]) lug(north_facing=false, hole=false);
|
|
translate([pcb_width-2*pcb_radius - 20, -pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_height]) lug(north_facing=false, hole=false);
|
|
// screw holes
|
|
translate([20, pcb_depth - pcb_radius + 2, case_thickness+standoff_height+pcb_thickness+5-plate_height-3]) cylinder(h=3, d=2);
|
|
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius + 2, case_thickness+standoff_height+pcb_thickness+5-plate_height-3]) cylinder(h=3, d=2);
|
|
translate([20, -pcb_radius - 2, case_thickness+standoff_height+pcb_thickness+5-plate_height-3]) cylinder(h=3, d=2);
|
|
translate([pcb_width-2*pcb_radius - 20, -pcb_radius - 2, case_thickness+standoff_height+pcb_thickness+5-plate_height-3]) cylinder(h=3, d=2);
|
|
}
|
|
|
|
// mounting standoffs
|
|
for(i = [0 : len(mounting_holes)-1]) {
|
|
translate([mounting_holes[i][0] - pcb_radius, mounting_holes[i][1] - pcb_radius, case_bottom_thickness]) difference() {
|
|
cylinder(h=standoff_height, d=4);
|
|
cylinder(h=standoff_height, d=2);
|
|
}
|
|
}
|
|
|
|
// TODO:USB daughter board
|