add lower half

This commit is contained in:
Ricardo (XenGi) Band 2023-03-26 19:52:23 +02:00
commit 0620887cc5
No known key found for this signature in database
2 changed files with 80 additions and 13 deletions

63
lower_case.scad Normal file
View file

@ -0,0 +1,63 @@
$fn = 64;
pcb_width = 81;
pcb_length = 119;
case_thickness = 3;
case_height = 15;
pcb_thickness = 1.6;
breakout_width = 21;
breakout_length = 13;
inner_depth = 5;
module pcb(h) {
pcb_thickness = h ? h : 1.6;
pcb_corner_radius = 5;
translate([pcb_corner_radius,pcb_corner_radius,0]) hull() {
cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,0,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([0,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
}
}
module lower_case() {
translate([0,0,-1*case_height]) {
difference() {
cube([pcb_width + 2*case_thickness, pcb_length + 2*case_thickness, case_height]);
translate([0,-1,-1*case_height/2+1]) rotate([-1.6,0,0]) cube([pcb_width+2*case_thickness, pcb_length+2*case_thickness+2, 10]);
}
}
}
module standoff(x, y) {
translate([case_thickness+x,case_thickness+y,-1*inner_depth]) difference() {
translate([0,0,(inner_depth-pcb_thickness)/2]) cylinder(h=inner_depth-pcb_thickness, d=3.5, center=true);
translate([0,0,(inner_depth-pcb_thickness)/2]) cylinder(h=inner_depth-pcb_thickness, d=1, center=true);
}
}
module usb_breakout() {
breakout_thickness = 1;
cube([breakout_width, breakout_length, breakout_thickness]);
// USB-C
translate([breakout_width/2, breakout_length-8/2+1, -4/2]) cube([10, 8, 4], center=true);
translate([breakout_width/2, breakout_length-8/2+1+7, -4/2]) cube([16, 8, 8], center=true);
// screw holes
translate([2.5,breakout_length-2.5,-2]) cylinder(h=2,d=1);
translate([breakout_width-2.5,breakout_length-2.5,-2]) cylinder(h=2,d=1);
}
difference() {
lower_case();
translate([case_thickness, case_thickness, -1*inner_depth]) pcb(inner_depth);
translate([(pcb_width + 2*case_thickness)/2-breakout_width/2,pcb_length + 2*case_thickness-breakout_length-case_thickness,-1*(inner_depth+1)]) usb_breakout();
}
standoff(21.5, pcb_length-97);
standoff(56, pcb_length-97.5);
standoff(21.5, pcb_length-31.5);
standoff(59.5, pcb_length-31.5);
// TODO: screw holes for top half

View file

@ -1,14 +1,12 @@
$fn = 64;
/* 75x113 keycap area
*
*/
pcb_thickness = 1.6;
$fn = 64;
pcb_width = 81;
pcb_length = 119;
pcb_corner_radius = 5;
kailh_height=2;
// translate([-100,0,0]) linear_extrude(1.5) import(file="t9_plate.svg", center=false);
module kailh () {
module kailh () {
kailh_height=2;
kailh_corner_radius=2;
kailh_width=10.8;
@ -36,11 +34,16 @@ module switch () {
translate([switch_width/2-0.625,switch_length/2-2,switch_height]) cube([1.25,4,3.5]);
}
translate([pcb_corner_radius,pcb_corner_radius,0]) hull() {
cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,0,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([0,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
module pcb() {
pcb_thickness = 1.6;
pcb_corner_radius = 5;
translate([pcb_corner_radius,pcb_corner_radius,0]) hull() {
cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,0,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([0,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
translate([pcb_width-2*pcb_corner_radius,pcb_length-2*pcb_corner_radius,0]) cylinder(h=pcb_thickness, r=pcb_corner_radius);
}
}
translate([15.5,12.8,0]) kailh(); // 0
@ -84,4 +87,5 @@ translate([43,100,0]) switch();
translate([25,107.8,0]) kailh(); // Play/Pause
translate([24,100,0]) switch();
translate([6,107.8,0]) kailh(); // Prev
translate([5,100,0]) switch();
translate([5,100,0]) switch();
pcb();