make weight optional; change design
This commit is contained in:
parent
117312f881
commit
d9b4faabfa
3 changed files with 64 additions and 40 deletions
|
|
@ -3,9 +3,11 @@
|
||||||
include <util.scad>
|
include <util.scad>
|
||||||
|
|
||||||
$fn = 64;
|
$fn = 64;
|
||||||
|
with_weight = false;
|
||||||
|
|
||||||
color("SaddleBrown") difference() {
|
color("SaddleBrown") difference() {
|
||||||
// case
|
// case
|
||||||
|
union() {
|
||||||
hull() {
|
hull() {
|
||||||
translate([-case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+0.5);
|
translate([-case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+0.5);
|
||||||
translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+0.5);
|
translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+0.5);
|
||||||
|
|
@ -13,6 +15,21 @@ color("SaddleBrown") difference() {
|
||||||
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+0.5);
|
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+0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
translate([0,0,case_thickness+standoff_height+pcb_thickness+5-upper_case_height]) hull() {
|
||||||
|
translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+0.5, r2=pcb_radius+2);
|
||||||
|
translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+0.5, r2=pcb_radius+2);
|
||||||
|
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+0.5, r2=pcb_radius+2);
|
||||||
|
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+0.5, r2=pcb_radius+2);
|
||||||
|
}
|
||||||
|
|
||||||
|
hull() {
|
||||||
|
translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+2, r2=pcb_radius+0.5);
|
||||||
|
translate([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+2, r2=pcb_radius+0.5);
|
||||||
|
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+2, r2=pcb_radius+0.5);
|
||||||
|
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height, r1=pcb_radius+2, r2=pcb_radius+0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// pcb
|
// pcb
|
||||||
translate([0, 0, case_bottom_thickness]) hull() {
|
translate([0, 0, case_bottom_thickness]) hull() {
|
||||||
cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+1);
|
cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+1);
|
||||||
|
|
@ -21,10 +38,6 @@ color("SaddleBrown") difference() {
|
||||||
translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+1);
|
translate([pcb_width-2*pcb_radius, pcb_depth-2*pcb_radius, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, r=pcb_radius+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// hole for reset button
|
|
||||||
translate([reset_x - pcb_radius, reset_y - pcb_radius, 0]) cylinder(h=case_thickness, r=1);
|
|
||||||
translate([reset_x - pcb_radius-1.4, reset_y - pcb_radius-1.5, 1.5]) mirror([1,0,0]) rotate([0,0,90]) linear_extrude(0.2) text(text="RESET ►", size=3, font="Liberation Sans:style=Bold", halign="right");
|
|
||||||
|
|
||||||
// plate_mounting
|
// plate_mounting
|
||||||
translate([20, pcb_depth - pcb_radius+1, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
translate([20, pcb_depth - pcb_radius+1, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
||||||
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius+1, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius+1, case_thickness+standoff_height+pcb_thickness+5-plate_thickness]) lug(hole=false);
|
||||||
|
|
@ -48,7 +61,7 @@ color("SaddleBrown") difference() {
|
||||||
translate([pololu_width/2-pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-threaded_insert_height]) cylinder(h=threaded_insert_height, d=3);
|
translate([pololu_width/2-pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-threaded_insert_height]) cylinder(h=threaded_insert_height, d=3);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make dependent on case size
|
// cable channel
|
||||||
translate([65, 26, case_bottom_thickness/2]) {
|
translate([65, 26, case_bottom_thickness/2]) {
|
||||||
translate([-7.5,30,0]) linear_extrude(case_bottom_thickness/2+1) polygon([[7.5,0], [7.5,10.75], [0,10.75]]);
|
translate([-7.5,30,0]) linear_extrude(case_bottom_thickness/2+1) polygon([[7.5,0], [7.5,10.75], [0,10.75]]);
|
||||||
cube([10, 40.75, case_bottom_thickness/2+1]);
|
cube([10, 40.75, case_bottom_thickness/2+1]);
|
||||||
|
|
@ -74,18 +87,29 @@ color("SaddleBrown") difference() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// hole for weight
|
// hole for reset button
|
||||||
|
translate([reset_x - pcb_radius, reset_y - pcb_radius, 0]) cylinder(h=case_thickness, r=1);
|
||||||
|
|
||||||
|
// OPTIONAL: hole for weight
|
||||||
|
if (with_weight) {
|
||||||
hull() {
|
hull() {
|
||||||
translate([5,5,0]) cylinder(h=1.5, d=10);
|
translate([5,5,0]) cylinder(h=1.5, d=10);
|
||||||
translate([pcb_width-2*pcb_radius-5,5,0]) cylinder(h=1.5, d=10);
|
translate([pcb_width-2*pcb_radius-5,5,0]) cylinder(h=1.5, d=10);
|
||||||
translate([5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
|
translate([5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
|
||||||
translate([pcb_width-2*pcb_radius-5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
|
translate([pcb_width-2*pcb_radius-5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
|
||||||
}
|
}
|
||||||
translate([pcb_width/2,pcb_depth/2+1,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="noisy cricket", size=10, font="Liberation Sans:style=Bold", halign="center");
|
translate([pcb_width/2,pcb_depth/2+6,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="noisy cricket", size=10, font="Liberation Sans:style=Bold", halign="center");
|
||||||
translate([pcb_width/2,pcb_depth/2-11,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="© XenGi 2023", size=6, font="Liberation Sans:style=Bold", halign="center");
|
translate([pcb_width/2,pcb_depth/2-8,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="© XenGi 2023", size=6, font="Liberation Sans:style=Bold", halign="center");
|
||||||
// threaded inserts
|
// threaded inserts
|
||||||
translate([10,10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
translate([10,10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
||||||
translate([pcb_width-2*pcb_radius-10,10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
translate([pcb_width-2*pcb_radius-10,10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
||||||
translate([10,pcb_depth-2*pcb_radius-10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
translate([10,pcb_depth-2*pcb_radius-10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
||||||
translate([pcb_width-2*pcb_radius-10,pcb_depth-2*pcb_radius-10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
translate([pcb_width-2*pcb_radius-10,pcb_depth-2*pcb_radius-10,1.5]) cylinder(h=threaded_insert_height, d=3);
|
||||||
|
//reset button text
|
||||||
|
translate([reset_x - pcb_radius-1.4, reset_y - pcb_radius-1.5, 1.5]) mirror([1,0,0]) rotate([0,0,90]) linear_extrude(0.2) text(text="RESET ►", size=3, font="Liberation Sans:style=Bold", halign="right");
|
||||||
|
} else {
|
||||||
|
translate([pcb_width/2,pcb_depth/2+6,0]) mirror([1,0,0]) linear_extrude(0.2) text(text="noisy cricket", size=10, font="Liberation Sans:style=Bold", halign="center");
|
||||||
|
translate([pcb_width/2,pcb_depth/2-8,0]) mirror([1,0,0]) linear_extrude(0.2) text(text="© XenGi 2023", size=6, font="Liberation Sans:style=Bold", halign="center");
|
||||||
|
translate([reset_x - pcb_radius-1.4, reset_y - pcb_radius-1.5, 0]) mirror([1,0,0]) rotate([0,0,90]) linear_extrude(0.2) text(text="RESET ►", size=3, font="Liberation Sans:style=Bold", halign="right");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,16 +8,16 @@ color("SaddleBrown") difference() {
|
||||||
// case
|
// case
|
||||||
union() {
|
union() {
|
||||||
hull() {
|
hull() {
|
||||||
translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+1);
|
translate([-case_thickness, -case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+2);
|
||||||
translate([pcb_width-2*pcb_radius+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+2);
|
||||||
translate([-case_thickness, pcb_depth-2*pcb_radius+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+2);
|
||||||
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([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=upper_case_height/2, r=pcb_radius+2);
|
||||||
}
|
}
|
||||||
translate([0,0,upper_case_height/2]) hull() {
|
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([-case_thickness, -case_thickness, 0]) resize(newsize=[2*(pcb_radius+2),2*(pcb_radius+2),upper_case_height]) sphere(r=pcb_radius+2);
|
||||||
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([pcb_width-2*pcb_radius+case_thickness, -case_thickness, 0]) resize(newsize=[2*(pcb_radius+2),2*(pcb_radius+2),upper_case_height]) sphere(r=pcb_radius+2);
|
||||||
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([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) resize(newsize=[2*(pcb_radius+2),2*(pcb_radius+2),upper_case_height]) sphere(r=pcb_radius+2);
|
||||||
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);
|
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) resize(newsize=[2*(pcb_radius+2),2*(pcb_radius+2),upper_case_height]) sphere(r=pcb_radius+2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -35,9 +35,9 @@ color("SaddleBrown") difference() {
|
||||||
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=threaded_insert_height, d=3);
|
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=threaded_insert_height, d=3);
|
||||||
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=threaded_insert_height, d=3);
|
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=threaded_insert_height, d=3);
|
||||||
|
|
||||||
|
// space for screws from lower case
|
||||||
translate([20, pcb_depth - pcb_radius+1+case_thickness/2, 0]) cylinder(h=2, d=4);
|
translate([20, pcb_depth - pcb_radius+1+case_thickness/2, 0]) cylinder(h=2.3, d=4.2);
|
||||||
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius+1+case_thickness/2, 0]) cylinder(h=2, d=4);
|
translate([pcb_width-2*pcb_radius - 20, pcb_depth - pcb_radius+1+case_thickness/2, 0]) cylinder(h=2.3, d=4.2);
|
||||||
translate([20, -pcb_radius-1-case_thickness/2, 0]) cylinder(h=2, d=4);
|
translate([20, -pcb_radius-1-case_thickness/2, 0]) cylinder(h=2.3, d=4.2);
|
||||||
translate([pcb_width-2*pcb_radius - 20, -pcb_radius-1-case_thickness/2, 0]) cylinder(h=2, d=4);
|
translate([pcb_width-2*pcb_radius - 20, -pcb_radius-1-case_thickness/2, 0]) cylinder(h=2.3, d=4.2);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ upper_case_height = 5;
|
||||||
|
|
||||||
standoff_height = 3;
|
standoff_height = 3;
|
||||||
|
|
||||||
reset_x = 111;
|
reset_x = 111.1;
|
||||||
reset_y = 42;
|
reset_y = 47.6;
|
||||||
|
|
||||||
mx = 19.05;
|
mx = 19.05;
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ mounting_holes = [
|
||||||
[98.425, 69.0563]
|
[98.425, 69.0563]
|
||||||
];
|
];
|
||||||
|
|
||||||
pololu_width = 0.8*2.54*10;
|
pololu_width = 0.8*2.54*10+0.2;
|
||||||
pololu_depth = 0.5*2.54*10+1;
|
pololu_depth = 0.5*2.54*10+1;
|
||||||
pololu_holes_radius = 1;
|
pololu_holes_radius = 1;
|
||||||
pololu_hole_spacing = 0.1*2.54*10;
|
pololu_hole_spacing = 0.1*2.54*10;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue