Now you can easily keep track of which drink is yours when all the drink bottles look the same, and if you're in an office setting, help others remember your name!
The typical Bottle Charm prints in under 10 minutes, so you can print many in a short amount of time, just by adding names to a text file and running a script. Alternatively, you might find a pre-generated STL file for your name in the Files section. If your name is not there and you would like it to be, send me a message.
This OpenSCAD model automatically resizes itself based on the exact height and width of the generated text!
When creating this model, I solved one of the problems that many people seem to run into when using text with OpenSCAD, and that is being able to precisely know the size and position of generated text, so you can automatically resize parts of your model based on the text extents. People said that it couldn't be done, so I took it as a challenge. ;-)
I wrote a tiny bash script, that's included in a comment at the top of the template.scad file. The bash script will loop over each line of a text file, creating a temporary SCAD file with just that text object in it. It then runs OpenSCAD in the background to render that file into an ASCII STL file that we can parse with common Linux utilities. The script then (ab)uses sed, sort, head, and tail on that STL file to find and store the minimum and maximum X and Y vertex coordinates for the text object. It then dumps those coordinates into a different temporary SCAD file that the main SCAD file can include. Finally, it runs OpenSCAD in the background, but this time on the template.scad model file, which includes both temporary SCAD files. So it knows what text to render, and the exact size and position of that text, and it uses that information to automatically resize the model accordingly.
This means that you can create a custom list of names, change the font face, and/or font size, re-run the bash script, and you'll end up with a directory full of Bottle Charms, each sized perfectly to the name it contains! Then you can import and print them all at once for you and your friends.
In PrusaSlicer, click on the Print Settings tab, then on Infill in the left pane, and try changing the Top fill pattern to Hilbert Curve, or one of the other choices. Or just below that, click the checkbox labeled Enable ironing and see how that looks. These things print quickly, so don't be afraid to learn more about what your slicer is capable of!
If you care about quality more than quick print times, you can also split the model in half, realign the pieces, merge and rotate the group 180 degrees to print it face down with multiple colors on the same layer (no MMU required!) for a perfectly smooth top surface. Here is an excellent video by HackMonkey describing this advanced technique:
The only thing I would change from what he describes is to leave the wipe tower enabled, and slow down the first layer using the scroll wheel when the print starts (and after the color swaps, because it will jump back up to 100%). It drastically improves the quality and adhesion of the first layer, especially with the fine details between the letters.
Enjoy, and don't forget to post your makes!
The author marked this model as their own original creation.