Make DIY custom LED signage

From bigclivedotcom.

This video has two short scripts included in its description that will allow you to 3D print a massive range of sign characters in many fonts and sizes. It’s almost worth getting a 3D printer just for this project.

To use the scripts you can download a free piece of CAD software called openscad that lets 3D objects be designed with a scripting language. When the scripts down below are copied and pasted into openscad it will let you create custom characters and then generate your STL files.
You can download openscad here:- https://openscad.org/

Once you’ve changed the variables to your chosen character and sizes, you can press the button with the box and hourglass to render it, and then the STL button to save it. Have patience – large curved characters will take longer to render. The animated bar graph shows that openscad is building your sign character.
The version 3 scripts are MUCH faster than previous ones because most of the work is done in 2D and then extruded to make the full height character. Most will be rendered in just a few seconds.

I’d recommend playing with the scripts to create small 50mm (2") high characters first to get a feel for it. I used standard PLA and it produced excellent results.
The only limit to the size of character you can make is the size of your printer build plate and your patience, as big characters take a lot of time to print.

In the scripts there are several variables you can adjust:-
Letter = the character, symbol or number you want to make.
Style = the desired font, that must be spelled and capitalised as in the font list.
Size = the height of the character in millimetres.
Depth = the depth of the housing in mm – deeper is better for LED diffusion.
$fn = the resolution of curves. It can usually be left as 100.
Walls = the thickness of the side walls. Half of that will be a groove for the front plate.
Base = the thickness of the base. While experimenting 0.4 is thin and fast.
Face = the thickness of the front face.

The face making script has one more variable called "fit" that nudges the sides in a bit to make fitting the faceplate into its channel easier. A value of 0.5mm will shrink the face 0.25mm on all sides. This compensates for any "squish" as the printer lays down the first layer.

All variables must match between the body and face to ensure a correct fit.

Have a play and let me know what you think of the results.

I specifically avoid using intrusive mid-run video adverts, which means I don’t earn as much from my content as other YouTubers.
If you enjoy these videos you can help support the channel with a dollar or two for coffee, cookies and random gadgets for disassembly at:-
https://www.patreon.com/bigclive
Patreon supporters get advert-free early access to videos as they are made, and also regular live streams.
This also keeps the channel independent of YouTube’s advertising algorithms allowing it to be a bit more dangerous and naughty.
Other contribution options are available at:-
http://www.bigclive.com/coffee.htm

Here’s the first of the scripts. It generates the body of the sign:-

//Sign body maker V3 – bigclivedotcom
letter = "A"; //Sign character to make
style = "Arial"; //See "Help" and "Font List"
size = 50; //Size of character (height)
depth = 10; //Depth of sign character
$fn=100; //Curve facets – higher is smoother
walls = 2; //Side wall thickness
base=.4; //Base thickness (-1 for open back)
face = 1; //Face thickness
//Don’t change variables below here
sized=size-(2*walls);
difference(){
linear_extrude(height=depth)
minkowski(){
text(letter,sized,style);
circle(walls);
}
//Lip for front face (half wall thickness)
translate([0,0,depth-face])
linear_extrude(height=2*face)
minkowski(){
text(letter,sized,style);
circle(walls/2);
}
//hollow core of letter
translate([0,0,base])
linear_extrude(height=depth+2)
text(letter,sized,style);
}

Here’s the second script. It generates the face for the sign:-

//Sign front-face generator V3 – bigclivedotcom
//All variables must match the sign body sizes
letter = "A"; //Sign character to make
style = "Arial"; //See "Help" and "Font List"
size = 50; //Size of character
$fn=100; //Curve facets – higher is smoother
walls = 2; //Side wall thickness
face = 1; //Face thickness
fit = 0.5; //Slight shrink of face for easier fitting
//Don’t change variables below here
sized=size-(2*walls);
linear_extrude(height=face)
minkowski(){
text(letter,sized,style);
circle((walls/2)-fit/2);
}