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

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]);
}
}