Here is my attempt to create my own keycaps. Fits well with the extra narrow PCB layout. Attention: With the selected printing process SLS, the buttons are quite loose on the switches. So this is just a start for your own 3D model. The pins should be slightly thicker.
I have just realized that I cannot upload a file here. … well, then as code.
/* Chocs Keycap
2024-02
Bananacade
for PocketReform Keyboard
1V1 thinner -> 1mm dip and 19 mm ditch diameter
*/
//Top plate with sharp edges
//Size
total = 14.8;
corner_cyl_rad = 2;
corner_cyl_top = 1;
corne_cyl_pos = total/2 - corner_cyl_rad; // 14.8/2 - 3
plate_hight = 3.3;
difference(){
//outer plate
hull() {
for (x = [- corne_cyl_pos , corne_cyl_pos]){
for (y = [- corne_cyl_pos , corne_cyl_pos]){
//Pyramide
translate ([x,y,0]) cylinder(h=plate_hight, r1=corner_cyl_rad, r2=corner_cyl_top, $fn=64);
}
}
}
//inner plate
in_total = 14; //15
in_corner_cyl_rad = 3.7;
in_corner_cyl_top = 2.7;
in_corne_cyl_pos = in_total/2 - in_corner_cyl_rad;
in_plate_hight = 3.3;
bottom_cut = 0.6;
bottom_move_cut = bottom_cut - in_plate_hight;
hull() {
for (x = [- in_corne_cyl_pos , in_corne_cyl_pos]){
for (y = [- in_corne_cyl_pos , in_corne_cyl_pos]){
//Pyramid
translate ([x,y,bottom_move_cut]) cylinder(h=in_plate_hight, r1=in_corner_cyl_rad, r2=in_corner_cyl_top, $fn=64);
}
}
}
didch_size = 19;
ditch_move = - 1.0 + didch_size + plate_hight;
translate ([0,0,ditch_move]) sphere(didch_size, $fn=256);
} //difference close
//Pins 2,9 mm x 1,2 mm distance center-center 5,7 mm
module pin(){
difference(){
translate ([0,0,0]) cube([1.2,2.9,3], center = true);
//color ("blue")
translate ([1.6+0.5,0,0]) cylinder(4,1.6,1.6, center = true, $fn=128);
//color ("green")
translate ([-(1.6+0.5),0,0]) cylinder(4,1.6,1.6, center = true, $fn=128);
}
}
bottom_cut = 0.6;
pin_move_z = -(3/2-0.2-bottom_cut); // pin_length = 2.8
translate ([5.7/2,0,pin_move_z]) pin();
translate ([-5.7/2,0,pin_move_z]) pin();