foo
This commit is contained in:
parent
0d8824c71d
commit
88e99e86fb
3 changed files with 79 additions and 76 deletions
|
|
@ -22,15 +22,15 @@ difference() {
|
|||
}
|
||||
|
||||
// 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);
|
||||
translate([20, pcb_depth - pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
||||
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
||||
translate([20, -pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(north_facing=false, hole=false);
|
||||
translate([pcb_width-2*pcb_radius - 20, -pcb_radius, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) 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);
|
||||
translate([20, pcb_depth - pcb_radius + 2, case_thickness+standoff_height+pcb_thickness+5-plate_thickness-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_thickness-3]) cylinder(h=3, d=2);
|
||||
translate([20, -pcb_radius - 2, case_thickness+standoff_height+pcb_thickness+5-plate_thickness-3]) cylinder(h=3, d=2);
|
||||
translate([pcb_width-2*pcb_radius - 20, -pcb_radius - 2, case_thickness+standoff_height+pcb_thickness+5-plate_thickness-3]) cylinder(h=3, d=2);
|
||||
|
||||
// USB-C daughter board
|
||||
translate([pcb_width/2-pcb_radius, pcb_depth-pcb_radius+1-pololu_depth/2, case_bottom_thickness - pcb_thickness/2]) {
|
||||
|
|
|
|||
65
plate.scad
65
plate.scad
|
|
@ -6,10 +6,10 @@ $fn = 64;
|
|||
|
||||
module plate() {
|
||||
hull() {
|
||||
cylinder(h=plate_height, r=pcb_radius);
|
||||
translate([pcb_width-2*pcb_radius, 0, 0]) cylinder(h=plate_height, r=pcb_radius);
|
||||
translate([0, pcb_depth-2*pcb_radius, 0]) cylinder(h=plate_height, r=pcb_radius);
|
||||
translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=plate_height, r=pcb_radius);
|
||||
cylinder(h=plate_thickness, r=pcb_radius);
|
||||
translate([pcb_width-2*pcb_radius, 0, 0]) cylinder(h=plate_thickness, r=pcb_radius);
|
||||
translate([0, pcb_depth-2*pcb_radius, 0]) cylinder(h=plate_thickness, r=pcb_radius);
|
||||
translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=plate_thickness, r=pcb_radius);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -19,43 +19,44 @@ module plate() {
|
|||
translate([pcb_width-2*pcb_radius - 20, -pcb_radius, 0]) lug(north_facing=false);
|
||||
}
|
||||
|
||||
// projection(cut=true)
|
||||
difference() {
|
||||
plate();
|
||||
color("gold") plate();
|
||||
translate([12.7-pcb_radius, 12.7-pcb_radius, 0]) {
|
||||
mx_1x1_cutout();
|
||||
translate([19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([4.5*19.05, 0, 0]) mx_2x1_cutout();
|
||||
translate([4.5*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([4.5*mx, 0, 0]) mx_2x1_cutout();
|
||||
translate([4.5*mx, 0, 0]) mx_1x1_cutout();
|
||||
|
||||
translate([(19.05*1.75)/2-19.05/2, 19.05, 0]) mx_1x1_cutout();
|
||||
translate([19.05*1.75-19.05, 19.05, 0]) {
|
||||
translate([19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*19.05+21.4312, 9.525, 0]) mx_1x2_cutout();
|
||||
translate([(mx*1.75)/2-mx/2, mx, 0]) mx_1x1_cutout();
|
||||
translate([mx*1.75-mx, mx, 0]) {
|
||||
translate([mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*mx+21.4312, 9.525, 0]) mx_1x2_cutout();
|
||||
};
|
||||
|
||||
translate([(19.05*1.5)/2-19.05/2, 2*19.05, 0]) mx_1x1_cutout();
|
||||
translate([(19.05*1.5)-19.05, 2*19.05, 0]) {
|
||||
translate([19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([(mx*1.5)/2-mx/2, 2*mx, 0]) mx_1x1_cutout();
|
||||
translate([(mx*1.5)-mx, 2*mx, 0]) {
|
||||
translate([mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*mx, 0, 0]) mx_1x1_cutout();
|
||||
};
|
||||
|
||||
translate([0, 3*19.05, 0]) {
|
||||
translate([0, 3*mx, 0]) {
|
||||
mx_1x1_cutout();
|
||||
translate([19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([5*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([6*19.05, 0, 0]) mx_1x1_cutout();
|
||||
translate([mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([2*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([3*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([4*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([5*mx, 0, 0]) mx_1x1_cutout();
|
||||
translate([6*mx, 0, 0]) mx_1x1_cutout();
|
||||
};
|
||||
};
|
||||
translate([127-pcb_radius, 12.45-pcb_radius, 0]) cylinder(h=plate_height, r=3);
|
||||
// poti
|
||||
translate([127-pcb_radius, 12.45-pcb_radius, 0]) cylinder(h=plate_thickness+0.1, r=3);
|
||||
};
|
||||
|
||||
|
|
|
|||
74
util.scad
74
util.scad
|
|
@ -7,7 +7,7 @@ pcb_depth = 82.55;
|
|||
pcb_radius = 3.175;
|
||||
pcb_thickness = 1.6;
|
||||
|
||||
plate_height = 1.5;
|
||||
plate_thickness = 1.5;
|
||||
|
||||
case_thickness = 5;
|
||||
case_bottom_thickness = 5;
|
||||
|
|
@ -15,6 +15,8 @@ case_height = 10;
|
|||
|
||||
standoff_height = 3;
|
||||
|
||||
mx = 19.05;
|
||||
|
||||
mounting_holes = [
|
||||
[36.5125, 21.0188],
|
||||
[30.9563, 57.9438],
|
||||
|
|
@ -31,12 +33,12 @@ pololu_hole_spacing = 0.1*2.54*10;
|
|||
module lug(north_facing=true, hole=true) {
|
||||
difference() {
|
||||
hull() {
|
||||
translate([0, north_facing ? 2 : -2, 0]) cylinder(h=plate_height, d=4);
|
||||
translate([-5, 0, 0]) cylinder(h=plate_height, d=2);
|
||||
translate([5, 0, 0]) cylinder(h=plate_height, d=2);
|
||||
translate([0, north_facing ? 2 : -2, 0]) cylinder(h=plate_thickness, d=4);
|
||||
translate([-5, 0, 0]) cylinder(h=plate_thickness, d=2);
|
||||
translate([5, 0, 0]) cylinder(h=plate_thickness, d=2);
|
||||
}
|
||||
if (hole) {
|
||||
translate([0, north_facing ? 2 : -2, 0]) cylinder(h=plate_height, d=2.2);
|
||||
translate([0, north_facing ? 2 : -2, 0]) cylinder(h=plate_thickness, d=2.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -45,19 +47,19 @@ module mx_1x1_cutout() {
|
|||
side_length = 14;
|
||||
|
||||
// central hole
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness+0.1], center=true);
|
||||
|
||||
// wings
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
|
||||
// rounded corners
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -65,46 +67,46 @@ module mx_1x2_cutout() {
|
|||
side_length = 14;
|
||||
|
||||
// central hole
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness+0.1], center=true);
|
||||
|
||||
// wings
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
|
||||
// rounded corners
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
|
||||
// stabilizers
|
||||
translate([0, 0, pcb_thickness/2]) translate([-0.5, 11.9, 0]) cube([15, 6.65, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([-0.5, -11.9, 0]) cube([15, 6.65, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([-0.5, 11.9, 0]) cube([15, 6.65, pcb_thickness+0.1], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([-0.5, -11.9, 0]) cube([15, 6.65, pcb_thickness+0.1], center=true);
|
||||
}
|
||||
|
||||
module mx_2x1_cutout() {
|
||||
side_length = 14;
|
||||
|
||||
// central hole
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) cube([side_length, side_length, pcb_thickness+0.1], center=true);
|
||||
|
||||
// wings
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness], center=true);
|
||||
translate([side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, 2.5+3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
translate([-side_length/2, -2.5-3.5/2, pcb_thickness/2]) cube([2*0.8, 3.5, pcb_thickness+0.1], center=true);
|
||||
|
||||
// rounded corners
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness, r=0.5);
|
||||
translate([side_length/2-0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([side_length/2-0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, side_length/2-0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
translate([-side_length/2+0.25, -side_length/2+0.25, 0]) cylinder(h=pcb_thickness+0.1, r=0.5);
|
||||
|
||||
// stabilizer holes
|
||||
translate([0, 0, pcb_thickness/2]) translate([11.9, -0.5, 0]) cube([6.65, 15, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([-11.9, -0.5, 0]) cube([6.65, 15, pcb_thickness], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([11.9, -0.5, 0]) cube([6.65, 15, pcb_thickness+0.1], center=true);
|
||||
translate([0, 0, pcb_thickness/2]) translate([-11.9, -0.5, 0]) cube([6.65, 15, pcb_thickness+0.1], center=true);
|
||||
}
|
||||
// TODO: replace with screw in cutouts
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue