You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
86 lines
2.2 KiB
use <switch.scad>;
|
|
|
|
|
|
// rows
|
|
|
|
|
|
finger_colums=[-1,0,1,2,3,4];
|
|
finger_rows = [
|
|
4, // -1
|
|
4, // 0
|
|
4, // 1
|
|
4, // 2
|
|
4, // 3
|
|
4, // 3
|
|
];
|
|
angle_switch_x=[
|
|
[-10,0,10,20,30], // -1
|
|
[-10,0,10,20,30], // 0
|
|
[-10,0,10,20,30], // 1
|
|
[-10,0,10,20,30], // 2
|
|
[-10,0,10,20,30], // 3
|
|
[-10,0,10,20,30], // 4
|
|
];
|
|
|
|
offset_switch_y=[
|
|
[0,0,0,0,0], // -1
|
|
[0,0,0,0,0], // 0
|
|
[0,0,0,0,0], // 1
|
|
[0,0,0,0,0], // 2
|
|
[0,0,0,0,0], // 3
|
|
[0,0,0,0,0], // 4
|
|
];
|
|
offset_switch_z=[
|
|
[0,0,0,0,0], // -1
|
|
[0,0,0,0,0], // 0
|
|
[0,0,0,0,0], // 1
|
|
[0,0,0,0,0], // 2
|
|
[0,0,0,0,0], // 3
|
|
[0,0,0,0,0], // 4
|
|
];
|
|
angle_switch_y=[
|
|
[0,0,0,0,0], // -1
|
|
[0,0,0,0,0], // 0
|
|
[0,0,0,0,0], // 1
|
|
[0,0,0,0,0], // 2
|
|
[0,0,0,0,0], // 3
|
|
[0,0,0,0,0], // 4
|
|
];
|
|
keycaps_row=[
|
|
[3,4,3,2,1,1], // -1
|
|
[3,4,3,2,1,1], // 0
|
|
[3,4,3,2,1,1], // 1
|
|
[3,4,3,2,1,1], // 2
|
|
[3,4,3,2,1,1], // 3
|
|
[3,4,3,2,1,1], // 4
|
|
];
|
|
row_offset=[
|
|
-15.1, -13.1, -13.15, -13.1
|
|
];
|
|
|
|
|
|
|
|
//for(idx_x=[1:len(finger_colums)]) {
|
|
for(idx_x=[0:len(finger_colums)-1]) {
|
|
for(idx_y=[0:finger_rows[idx_x]-1]) {
|
|
// first try
|
|
finger_offset=19.0;
|
|
//translate([finger_offset*finger_colums[idx_x],finger_offset*idx_y,0])
|
|
//rotate([angle_switch_x[idx_x][idx_y],angle_switch_y[idx_x][idx_y],0])
|
|
// switch($t=$t, travel_max = 4, kap_type="sa", kap_row = keycaps_row[idx_x][idx_y]);
|
|
|
|
// second try
|
|
// translate([0,0,42]) // lower by radius of keycaps
|
|
// rotate([20*(idx_y-2),0,0])
|
|
// translate([0,0,-42]) // lower by radius of keycaps
|
|
// translate([0,0,row_offset[keycaps_row[idx_x][idx_y]-1]]) // bring keycaps in heigth
|
|
// switch($t=$t, travel_max = 4, kap_type="sa", kap_row = keycaps_row[idx_x][idx_y]);
|
|
|
|
// third try
|
|
// cos alpha = b/c
|
|
translate([0,offset_switch_y[idx_x][idx_y],offset_switch_z[idx_x][idx_y]])
|
|
rotate([angle_switch_x[idx_x][idx_y],angle_switch_y[idx_x][idx_y],0])
|
|
translate([0,0,row_offset[keycaps_row[idx_x][idx_y]-1]]) // bring keycaps in heigth
|
|
switch($t=$t, travel_max = 4, kap_type="sa", kap_row = keycaps_row[idx_x][idx_y]);
|
|
}
|
|
}
|