Few attempt for 3D printed faceplate

Discussion around the SwissMicros DM41X calculator
Post Reply
Spationaute
Posts: 10
Joined: Fri Dec 28, 2018 8:01 pm

Few attempt for 3D printed faceplate

Post by Spationaute »

I made a few attempts to 3D print some faceplate for the DM41X/DM42. I have a bit of difficulty to get it thin enough, but it went close. The openSCAD code follow the picture. You can change the text you want to display. The "Function_key_text" are reversed.

Image

Image

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();
}
Spationaute
Posts: 10
Joined: Fri Dec 28, 2018 8:01 pm

Re: Few attempt for 3D printed faceplate

Post by Spationaute »

Image
Wyatt_Irk
Posts: 39
Joined: Mon Jul 01, 2019 1:25 am
Location: Leander, Texas

Re: Few attempt for 3D printed faceplate

Post by Wyatt_Irk »

hi, i know less than nothing about 3-d printing. is the code used to generate the keyboard overlaysgiven above? should i be able to take the code to someone with a 3-d printer and have them print them?
🤘
DM41X, DM42, HP33c, DM41
in the past: HP34C, HP41CX, HP48GX, HP32S, HP42s
Bill K. - USA
Posts: 157
Joined: Fri Apr 29, 2022 7:49 pm

Re: Few attempt for 3D printed faceplate

Post by Bill K. - USA »

Yes, you should be able to take the plans to someone and have them print them for you.

Unfortunately it looks like the overlay is a little too thick to allow easy key presses. Now if you could manage to 3-D print a custom punch-and-die set for the DM42 key layout, that would be fantastic: then anyone could print an overlay on paper and instantly get the holes punched out! (Perhaps just having the 3-D printed plastic overlay would help in cutting out holes with a pen knife: my first ruler-and-knife attempt didn't go that well.)
Last edited by Bill K. - USA on Mon May 30, 2022 3:04 am, edited 1 time in total.
DA74254
Posts: 192
Joined: Tue Oct 03, 2017 11:20 pm
Location: Norway/Latvia

Re: Few attempt for 3D printed faceplate

Post by DA74254 »

Wyatt_Irk wrote:
Thu May 26, 2022 7:42 pm
hi, i know less than nothing about 3-d printing. is the code used to generate the keyboard overlaysgiven above? should i be able to take the code to someone with a 3-d printer and have them print them?
No, not normally. However, if you know someone with a 3D-printer, this person would likely have the program to convert the code to .stl (like a "pdf" document for 3D-printers) and further to .gcode (3D-printer and CNC "language").

The code can be rendered with this program, that is abt 15MB to download and can be run without installation:
https://openscad.org/
Esben
DM42 SN: 00245, WP43 Pilot SN:00002, DM32 SN: 00045 (Listed in obtained order).
Spationaute
Posts: 10
Joined: Fri Dec 28, 2018 8:01 pm

Re: Few attempt for 3D printed faceplate

Post by Spationaute »

Yes, the code run with the https://openscad.org/ software. You can generate an STL, which is pretty common and easy to import in most 3D printing software. I split the face-plate in two because of the printer I use. You can modify the code to fits your need! The text can obviously be changed.

If you use it, please share your modifications with us :) .

I updated the code here (now add a thin layer beneath the labels) :

Code: Select all

module base_plate(){
        left_text =["x=0?","x>y?","x<=y?","x=y?"];
        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 = "DejaVu Sans:style=Bold: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 = "DejaVu 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"],
        ["CLx/A","PRN","RTN","ISG","CATALOG","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 = "DejaVu Sans:style=Bold: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 = "DejaVu Sans:style=Bold:style=Bold",halign="center");
    }
}

module base_plain_plate(){
        linear_extrude(0.25) 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]);
        }

        bw=9.2;
        bh=5.7;
                    
        for(ii=[0:3]){
            for(jj=[0:3]){
                translate([16.65+ii*(bw+4.8),3.25+jj*(bh+5.3)]) square([bw,bh]);
            }
        }

        trbw=7.7;
        trbh=5.7;
        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-5*(trbw+3.8), 89.5-3.55-trbh-3*(trbh+5.3)]) square([2*trbw+3.8,trbh]);
    }
}
 intersection(){
    cube([80,57,5]);
    union(){
        base_plate();
        color(c=[0,0.75,0]) base_plain_plate();
    }
}
 intersection(){
    translate([0,57,0]) cube([80,57,5]);
    union(){
        base_plate();
        base_plain_plate();
    }
}
amen
Posts: 12
Joined: Wed Dec 16, 2020 9:32 am

Re: Few attempt for 3D printed faceplate

Post by amen »

That is really interesting. I have experimented with cutting overlays from a drinks can, ending up with an aluminium overlay. I also used a vinyl cutter machine which gave good results. There's a video here:

https://www.youtube.com/watch?v=ytt4MLXuYUU

When 3D printing it (I assume an FDM printer with PLA was used?) did you print the overlay with a single layer? I think that might be possible and actually hold together. Or did you have a thicker print?

Andrew
WilliamD
Posts: 7
Joined: Tue Jun 23, 2020 5:29 pm

Re: Few attempt for 3D printed faceplate

Post by WilliamD »

One place I worked would make faceplates for things they built. They had a clear plastic that on one side was painted, they would etch the painted side with the text mirrored using a laser engraver, the place that was engraved was then painted with paint pens. The result was a solid background and the text or icons were colored to the customer's specifications.
Post Reply