diff --git a/pcb.scad b/pcb.scad new file mode 100644 index 0000000..2072b82 --- /dev/null +++ b/pcb.scad @@ -0,0 +1,54 @@ +$fn = 64; + +pcb_thickness = 1.6; +pcb_width = 81; +pcb_length = 119; +pcb_corner_radius = 5; +kailh_height=2; + +module kailh () { + kailh_height=2; + kailh_corner_radius=2; + kailh_width=10.8; + kailh_length=6; + + translate([0,0,-kailh_height]) color("grey") difference() { + hull() { + cube([kailh_corner_radius,kailh_corner_radius,kailh_height]); + translate([kailh_corner_radius,4,0]) cylinder(h=kailh_height,r=kailh_corner_radius); + translate([kailh_width-kailh_corner_radius,0,0]) cube([kailh_corner_radius,kailh_corner_radius,kailh_height]); + translate([kailh_width-kailh_corner_radius,kailh_length-kailh_corner_radius,0]) cube([kailh_corner_radius,kailh_corner_radius,kailh_height]); + } + translate([3.7+kailh_corner_radius,0,0]) cylinder(h=kailh_height, r=kailh_corner_radius); + translate([3.7+kailh_corner_radius,0,0]) cube([kailh_width,kailh_corner_radius,kailh_height]); + } +} + +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 +translate([44,12.8,0]) kailh(); // . +translate([63,22.3,0]) kailh(); // enter +translate([44,31.8,0]) kailh(); // 3 +translate([25,31.8,0]) kailh(); // 2 +translate([6,31.8,0]) kailh(); // 1 +translate([44,50.8,0]) kailh(); // 6 +translate([25,50.8,0]) kailh(); // 5 +translate([6,50.8,0]) kailh(); // 4 +translate([63,60.3,0]) kailh(); // + +translate([44,69.8,0]) kailh(); // 9 +translate([25,69.8,0]) kailh(); // 8 +translate([6,69.8,0]) kailh(); // 7 +translate([63,88.8,0]) kailh(); // - +translate([44,88.8,0]) kailh(); // * +translate([25,88.8,0]) kailh(); // / +translate([6,88.8,0]) kailh(); // Num +translate([63,107.8,0]) kailh(); // Next +translate([44,107.8,0]) kailh(); // Stop +translate([25,107.8,0]) kailh(); // Play/Pause +translate([6,107.8,0]) kailh(); // Prev