Code: Select all
module base_plate(){
left_text =["OFF","","SST","BST"];
linear_extrude(1) difference(){
translate([4,4,0]) offset(r=4,chamfer=true){square([62.5,81.5]);}
lrbw=7.7;
lrbh=5.7;
for(ii=[0:3]){
translate([2.65,3.25+ii*(5.3+lrbh)]) square([lrbw,lrbh]);
translate([2.65+3.6,3.25+lrbh+1.5+ii*(5.3+lrbh)]) text(left_text[ii],2,font = "Liberation Sans:style=Bold",halign="center");
}
bw=9.2;
bh=5.7;
number_text=[["SETUP","SHOW","PRGM","CATALOG"],
["ASSIGN","CUSTOM","FCN","PRINT"],
["BASE","CONVERT","FLAGS","PROB"],
["SOLVER","f'(x)","MATRIX","STAT"]];
for(ii=[0:3]){
for(jj=[0:3]){
translate([16.65+ii*(bw+4.8),3.25+jj*(bh+5.3)]) square([bw,bh]);
translate([16.65+bw/2+ii*(bw+4.8),3.25+bh+1.5+jj*(bh+5.3)]) text( number_text[jj][ii],2,font = "Liberation Sans:style=Bold",halign="center");
}
}
trbw=7.7;
trbh=5.7;
function_key_text=[["","","","","","",],
["GTO","e^x","10^x","x^2","y^x","SUM-"],
["ATAN","ACOS","ASIN","Pi","%","CPLX"],
["CLEAR","DISP","MODES","LAST","ALPHA","XX"]];
for(ii=[0:5]){
for(jj=[0:3]){
if(ii < 4 || jj<3){
translate([70.5-2.65-trbw-ii*(trbw+3.8),89.5-3.55-trbh-jj*(trbh+5.3)]) square([trbw,trbh]);
translate([70.5-2.65-trbw/2-ii*(trbw+3.8),89.5-3.55+1-jj*(trbh+5.3)]) text(function_key_text[jj][ii],2,font = "Liberation Sans:style=Bold",halign="center");
}
}
}
translate([70.5-2.65-trbw-5*(trbw+3.8), 89.5-3.55-trbh-3*(trbh+5.3)]) square([2*trbw+3.8,trbh]);
translate([70.5-2.65-trbw/2-4*(trbw+5), 89.5-3.55+1-3*(trbh+5.3)]) text(function_key_text[3][4],2,font = "Liberation Sans:style=Bold",halign="center");
}
}
* intersection(){
cube([80,57,5]);
base_plate();
}
intersection(){
translate([0,57,0]) cube([80,57,5]);
base_plate();
}