50 lines
1.0 KiB
OpenSCAD
50 lines
1.0 KiB
OpenSCAD
$fn = 32;
|
|
|
|
$space = 5;
|
|
$width = 15.2;
|
|
$length = $width;
|
|
$height = 0.4;
|
|
$holes = $height*4;
|
|
|
|
$columns = 6;
|
|
$rows = 5;
|
|
|
|
module pin(){
|
|
cylinder(h=$holes, r=1, center=false);
|
|
}
|
|
|
|
module switch(){
|
|
$xCenter = $width/2;
|
|
$yCenter = $length/2;
|
|
translate([$xCenter, $yCenter, 0])
|
|
cylinder(h=$holes, r=2.522, center=false);
|
|
translate([$xCenter + 0, $yCenter + 5.9,0])
|
|
pin();
|
|
translate([$xCenter + 5, $yCenter + 3.8,0])
|
|
pin();
|
|
translate([$xCenter + -5, $yCenter + 3.8,0])
|
|
pin();
|
|
translate([$xCenter + -5, $yCenter + -5.15,0])
|
|
pin();
|
|
translate([$xCenter + 5, $yCenter+-5.15,0])
|
|
pin();
|
|
}
|
|
|
|
module switches(){
|
|
for (x=[0:$columns -1])
|
|
for (y=[0:$rows-1])
|
|
translate([x * ($width + $space/2) ,y * ($length+$space/2) ,0])
|
|
switch();
|
|
}
|
|
|
|
module body(){
|
|
$x = (($width + ($space/2)) * $columns) + $width;
|
|
$y = (($length + ($space/2)) * $rows) + $width;
|
|
cube([$x, $y, $height]);
|
|
}
|
|
|
|
difference(){
|
|
body();
|
|
translate([$space,$space,$holes/2*-1])
|
|
switches();
|
|
} |