foo
This commit is contained in:
parent
07397f54ae
commit
acf1ffbda5
4 changed files with 39 additions and 82 deletions
|
|
@ -5,8 +5,6 @@ $fn = 64;
|
||||||
use <lib/mat.scad>;
|
use <lib/mat.scad>;
|
||||||
use <lib/key.scad>;
|
use <lib/key.scad>;
|
||||||
|
|
||||||
//difference() {
|
|
||||||
// union() {
|
|
||||||
mat(rows=13, columns=5);
|
mat(rows=13, columns=5);
|
||||||
|
|
||||||
key(x=0, y=0, label="Ctrl", size=2.5);
|
key(x=0, y=0, label="Ctrl", size=2.5);
|
||||||
|
|
@ -37,10 +35,10 @@ key(x=11, y=1, w=2, label="⬆", size=5); // Shift
|
||||||
key(x=0, y=2, label="A");
|
key(x=0, y=2, label="A");
|
||||||
key(x=1, y=2, label="S");
|
key(x=1, y=2, label="S");
|
||||||
key(x=2, y=2, label="D");
|
key(x=2, y=2, label="D");
|
||||||
key(x=3, y=2, label="F");
|
key(x=3, y=2, label="F", marker=true);
|
||||||
key(x=4, y=2, label="G");
|
key(x=4, y=2, label="G");
|
||||||
key(x=5, y=2, label="H");
|
key(x=5, y=2, label="H");
|
||||||
key(x=6, y=2, label="J");
|
key(x=6, y=2, label="J", marker=true);
|
||||||
key(x=7, y=2, label="K");
|
key(x=7, y=2, label="K");
|
||||||
key(x=8, y=2, label="L");
|
key(x=8, y=2, label="L");
|
||||||
key(x=9, y=2, label=";:");
|
key(x=9, y=2, label=";:");
|
||||||
|
|
@ -73,38 +71,4 @@ key(x=8, y=4, label="8*");
|
||||||
key(x=9, y=4, label="9(");
|
key(x=9, y=4, label="9(");
|
||||||
key(x=10, y=4, label="0)");
|
key(x=10, y=4, label="0)");
|
||||||
key(x=11, y=4, w=2, label="⌫", size=5); // backspace
|
key(x=11, y=4, w=2, label="⌫", size=5); // backspace
|
||||||
// }
|
|
||||||
//
|
|
||||||
// include <lib/key_specs.scad>;
|
|
||||||
//
|
|
||||||
// for(x = [0 : 1 : 12]) {
|
|
||||||
// for(y = [0 : 1 : 4]) {
|
|
||||||
// translate([margin + x*key_width+key_width/2 + x*padding, margin + y*key_height+key_height/2 + y*padding, 0]) cylinder(h=1.8, r=1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// // space bar
|
|
||||||
// translate([margin + key_width/2 + 4*(key_width+padding), margin + key_height/2, 0]) {
|
|
||||||
// hull() {
|
|
||||||
// cylinder(h=1.8, r=1);
|
|
||||||
// translate([2*(key_width+padding),0,0]) cylinder(h=1.8, r=1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// translate([margin + key_width/2 + 11*(key_width+padding), margin + key_height/2 + 1*(key_height+padding), 0]) {
|
|
||||||
// hull() {
|
|
||||||
// cylinder(h=1.8, r=1);
|
|
||||||
// translate([key_width+padding,0,0]) cylinder(h=1.8, r=1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// translate([margin + key_width/2 + 11*(key_width+padding), margin + key_height/2 + 2*(key_height+padding), 0]) {
|
|
||||||
// hull() {
|
|
||||||
// cylinder(h=1.8, r=1);
|
|
||||||
// translate([key_width+padding,0,0]) cylinder(h=1.8, r=1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// translate([margin + key_width/2 + 11*(key_width+padding), margin + key_height/2 + 4*(key_height+padding), 0]) {
|
|
||||||
// hull() {
|
|
||||||
// cylinder(h=1.8, r=1);
|
|
||||||
// translate([key_width+padding,0,0]) cylinder(h=1.8, r=1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
|
||||||
23
lib/key.scad
23
lib/key.scad
|
|
@ -1,7 +1,8 @@
|
||||||
// Generate a key cap at a specific position in the matrix
|
// Generate a key cap at a specific position in the matrix
|
||||||
module key(x, y, w=1, h=1, label="", spacing=1, size=3.5) {
|
module key(x, y, w=1, h=1, label="", spacing=1, size=3.5, marker=false) {
|
||||||
include <key_specs.scad>;
|
include <key_specs.scad>;
|
||||||
$fn = 64;
|
$fn = 64;
|
||||||
|
wall_thickness = 1;
|
||||||
|
|
||||||
color("DarkSlateGray") translate([x*key_width + x*padding + margin, y*key_height + y*padding + margin, mat_thickness]) difference() {
|
color("DarkSlateGray") translate([x*key_width + x*padding + margin, y*key_height + y*padding + margin, mat_thickness]) difference() {
|
||||||
union() {
|
union() {
|
||||||
|
|
@ -12,6 +13,7 @@ module key(x, y, w=1, h=1, label="", spacing=1, size=3.5) {
|
||||||
translate([key_width*w + padding*(w-1) - key_radius, key_height*h + padding*(h-1) - key_radius, 0]) cylinder(h=key_thickness, r=key_radius);
|
translate([key_width*w + padding*(w-1) - key_radius, key_height*h + padding*(h-1) - key_radius, 0]) cylinder(h=key_thickness, r=key_radius);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// indent instead of dome
|
// indent instead of dome
|
||||||
translate([0,0,key_thickness]) hull() {
|
translate([0,0,key_thickness]) hull() {
|
||||||
translate([1.1, 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
translate([1.1, 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
||||||
|
|
@ -19,9 +21,28 @@ module key(x, y, w=1, h=1, label="", spacing=1, size=3.5) {
|
||||||
translate([1.1, key_height*h + padding*(h-1) - 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
translate([1.1, key_height*h + padding*(h-1) - 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
||||||
translate([key_width*w + padding*(w-1) - 1.1, key_height*h + padding*(h-1) - 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
translate([key_width*w + padding*(w-1) - 1.1, key_height*h + padding*(h-1) - 1.1, 0]) scale([1,1,0.3]) sphere(r=1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// depth of 0.3mm+
|
// depth of 0.3mm+
|
||||||
// Noto Sans Mono:style=Medium
|
// Noto Sans Mono:style=Medium
|
||||||
// subtract label from key cap
|
// subtract label from key cap
|
||||||
translate([(key_width*w + padding*(w-1))/2 -(0.5/spacing-0.5), (key_height*h + padding*(h-1))/2, key_thickness-0.5]) linear_extrude(height=1) text(label, size=size, font="DejaVu Sans Mono:style=Bold", halign="center", valign="center", spacing=spacing, $fn=64);
|
translate([(key_width*w + padding*(w-1))/2 -(0.5/spacing-0.5), (key_height*h + padding*(h-1))/2, key_thickness-0.5]) linear_extrude(height=1) text(label, size=size, font="DejaVu Sans Mono:style=Bold", halign="center", valign="center", spacing=spacing, $fn=64);
|
||||||
|
|
||||||
|
// stem cutout
|
||||||
|
hull() {
|
||||||
|
translate([key_radius+wall_thickness, key_radius+wall_thickness, 0]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
|
translate([key_radius+wall_thickness, key_height*h + padding*(h-1) - key_radius - wall_thickness, 0]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
|
translate([key_width*w + padding*(w-1) - key_radius-wall_thickness, key_radius + wall_thickness, 0]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
|
translate([key_width*w + padding*(w-1) - key_radius - wall_thickness, key_height*h + padding*(h-1) - key_radius - wall_thickness, 0]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// stem
|
||||||
|
hull() {
|
||||||
|
translate([x*key_width + x*padding + margin + key_width/2-key_radius, y*key_height + y*padding + margin + key_height/2, mat_thickness]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
|
translate([x*key_width + x*padding + margin + key_width/2+key_radius, y*key_height + y*padding + margin + key_height/2, mat_thickness]) cylinder(h=key_thickness-1, r=key_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
// marker for f anf j key
|
||||||
|
if (marker) translate([x*key_width + x*padding + margin + key_width-1.5*key_radius, y*key_height + y*padding + margin + key_height/2, mat_thickness+key_thickness-1]) cylinder(h=key_thickness-1, d=key_radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
module mat(rows=13, columns=5) {
|
module mat(rows=13, columns=5) {
|
||||||
include <key_specs.scad>;
|
include <key_specs.scad>;
|
||||||
$fn = 64;
|
$fn = 64;
|
||||||
|
wall_thickness = 1;
|
||||||
|
|
||||||
color("DarkSlateGray") cube([rows*key_width + (rows-1)*padding + 2*margin, columns*key_height + (columns-1)*padding + 2*margin, mat_thickness]);
|
color("DarkSlateGray") cube([rows*key_width + (rows-1)*padding + 2*margin, columns*key_height + (columns-1)*padding + 2*margin, mat_thickness]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
30
pins.scad
30
pins.scad
|
|
@ -1,30 +0,0 @@
|
||||||
include <lib/key_specs.scad>;
|
|
||||||
|
|
||||||
$fn = 64;
|
|
||||||
|
|
||||||
for(x = [0 : 1 : 12]) {
|
|
||||||
for(y = [0 : 1 : 4]) {
|
|
||||||
translate([margin + x*key_width+key_width/2 + x*padding, margin + y*key_height+key_height/2 + y*padding, 0]) cylinder(h=1.8, r=1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = [0:2]) {
|
|
||||||
translate([margin + key_width/2,45+i*5,0]) {
|
|
||||||
hull() {
|
|
||||||
cylinder(h=1.5, r=1);
|
|
||||||
translate([key_width+padding,0,0]) cylinder(h=1.5, r=1);
|
|
||||||
}
|
|
||||||
cylinder(h=1.8, r=1);
|
|
||||||
translate([key_width+padding,0,0]) cylinder(h=1.8, r=1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([margin + key_width/2,40,0]) {
|
|
||||||
hull() {
|
|
||||||
cylinder(h=1.5, r=1);
|
|
||||||
translate([2*(key_width+padding),0,0]) cylinder(h=1.5, r=1);
|
|
||||||
}
|
|
||||||
cylinder(h=1.8, r=1);
|
|
||||||
translate([key_width+padding,0,0]) cylinder(h=1.8, r=1);
|
|
||||||
translate([2*(key_width+padding),0,0]) cylinder(h=1.8, r=1);
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue