Better pcb approximation
This commit is contained in:
@@ -44,22 +44,44 @@ module switch() {
|
||||
translate([0, 0, 6]) rotate([0, 15, 0]) cube([12, 10, 5], true);
|
||||
}
|
||||
|
||||
// Cherry MX (compatible) mechanical keyboard switch, i.e. Gatheron Blue
|
||||
module mechanical_switch() {
|
||||
// Body
|
||||
cube([15.5, 15.5, 11.5], true);
|
||||
// Stem
|
||||
translate([0, 0, (11.5 + 3.5) / 2]){
|
||||
cube([1, 3.8, 3.5], true);
|
||||
cube([3.8, 1, 3.5], true);
|
||||
}
|
||||
}
|
||||
|
||||
// Mainboard. The highest component is the capacitor with a total height of 18mm, but we round to 20 for good measure.
|
||||
module pcb() {
|
||||
translate([0, 0, -10]) {
|
||||
linear_extrude(height = 20) {
|
||||
hull() {
|
||||
/*
|
||||
Center svg
|
||||
Bounding box:
|
||||
Min: 19.20, 49.71
|
||||
Max: 97.09, 198.06
|
||||
Size: 77.89, 148.35
|
||||
*/
|
||||
translate([-77.89 / 2 - 19.20, -148.35 / 2 - 49.71, 0]) import("pcb.svg");
|
||||
// Board
|
||||
translate([-77.89 / 2 - 19.20, -148.35 / 2 - 49.71, 0]) {
|
||||
linear_extrude(height = 1.4) {
|
||||
difference() {
|
||||
hull() {
|
||||
/*
|
||||
Center svg
|
||||
Bounding box:
|
||||
Min: 19.20, 49.71
|
||||
Max: 97.09, 198.06
|
||||
Size: 77.89, 148.35
|
||||
*/
|
||||
import("pcb.svg");
|
||||
}
|
||||
import("pcb.svg");
|
||||
}
|
||||
}
|
||||
}
|
||||
// Keys
|
||||
translate([-13.4, -20.1, 11.5/2 + 1.4]) mechanical_switch();
|
||||
translate([-23.4, -44.6, 11.5/2 + 1.4]) mechanical_switch();
|
||||
translate([12.6, -35.6, 11.5/2 + 1.4]) mechanical_switch();
|
||||
translate([2.05, -61.05, 11.5/2 + 1.4]) mechanical_switch();
|
||||
// Box to account for the other various components
|
||||
translate([-28, 4, 0]) cube([53, 70, 18]);
|
||||
}
|
||||
|
||||
module battery_18650() {
|
||||
@@ -70,5 +92,6 @@ module battery_18650() {
|
||||
//speaker_80();
|
||||
//li_ion_4056_charger_module();
|
||||
//switch();
|
||||
//pcb();
|
||||
//battery_18650();
|
||||
pcb();
|
||||
//battery_18650();
|
||||
//mechanical_switch();
|
||||
|
||||
Reference in New Issue
Block a user