This commit is contained in:
Ricardo (XenGi) Band 2023-06-11 17:14:10 +02:00
commit 88e99e86fb
No known key found for this signature in database
3 changed files with 79 additions and 76 deletions

View file

@ -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]) {

View file

@ -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);
};

View file

@ -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
/*