add lower half
This commit is contained in:
parent
21fb9b4327
commit
0620887cc5
2 changed files with 80 additions and 13 deletions
63
lower_case.scad
Normal file
63
lower_case.scad
Normal 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
|
||||
30
pcb.scad
30
pcb.scad
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in a new issue