Cat Ear Mate Tag (OpenSCAD)
Contact: faye
Download via Thingiverse: https://www.thingiverse.com/thing:6770496
Git repository: https://woof.rip/faye/cat_ear_mate_tag
German version: https://wiki.vspace.one/doku.php?id=projekte:2024:cat-ear-mate-tag
Background
On this years GPN, which was my first big chaos/hacker event of all time, i saw a lot of Club-Mate bottles with the widespread Mate Tags and asked myself why i don't have one myself. As I got back into the space, it wasn't enough for me to put some values into a template. Coming up with the idea of decorating my Mate Tag with cat ears forced me to deal with the OpenSCAD language i didn't know a lot about at that point.
So anyways, after i posted the pictures of my brand-new innovation on the Fediverse after a sleepless night, i got a lot of reception and requests for a template and ever since almost half a year has passed.
But after endless procrastination and many adjustments the template is finally finished.
Update 2025-01-07: In outlook on the next Chaos Communication Congress, emilia and me have decided to print Mate Tags in trans and non-binary pride colors. Additionally we could paint the texts and logos of the tags, thanks to the AMS (Automatic Material System) that was available to us in the hacKNology Hackerspace. If we tried to print more different flags, we would've needed way more filaments and even multiple AMS, so we limited ourselves to those two.
Besides the tags we printed for anyone that requested one for 38C3 in advance, we actually got the opportunity to print these at the venue for all creatures that just learned about them there as well because the Bambu Lab P1S printer with AMS was transported all the way from Constance to Hamburg. (Thank you, Wolfgang! <3) I was just present on day 0 and 1 myself, but learned about the impact we made there with the tags.
So, with this, it's time to expand the documentation.
Documentation
After you've installed OpenSCAD and downloaded the template you can open the cat_ear_mate_tag.scad file in the program.
As soon as you open the template in OpenSCAD, the functionality is pretty easy to understand. You can edit the many parameters I've built into this template in the Customizer panel. Many of them have a slider so you won't break the template with your values. The parameters and their effects are also explained there.
In the template, OCR-A is specified as a font. If it's not installed, OpenSCAD will use another default font.
Overview over the parameters
- General:
- $fn: Chnanges the polygons of the tag.
- name: The name written on the tag.
- font: The font for the name.
- logo: The path of the used logo. Can be left empty
- ears: Checkbox option for the Ears
- Tag:
- bottle neck radius: Radius of the bottle neck, is the same for most glass bottles, in mm.
- bottle angle: Changes the shape of the tag to adjust to different bottles, in degrees.
- tag height: The height of the tag, may be reduced with no logo to save filament, in mm.
- tag thickness: The thickness of the tag, it shouldn't break but still be flexible, in mm.
- gap angle: The size of the gap to clip your bottle through. in degrees.
- relief: Text and Logo can either be extruded with a positive value or incised with a negative value, each in mm.
- Text/Name:
- text size: Font size for the name, in mm.
- text space: Extra or with negative values less space between the letters, in mm.
- text vertical move: Moves the text up, or down with negative values, in mm.
- text horizontal move: Moves the text to the right, or left with negative values, in mm.
- Logo:
- logo size: Size of the chosen logo, in mm.
- logo vertical move: Move your logo up, or down with negative values, in mm.
- logo horizontal move: Move your text to the right, or to the left with negative values, in mm.
- logo spin: Spin the logo around itself, clockwise, in degrees.
- Ears:
- ear size: Size of the ears, in mm, other values make it appear smaller.
- ear thickness: Thickness of the ears, they don't have to be flexible, in mm.
- ear move down: Move the ears down into the tag, 0 → on top of the clipping piece, in mm.
- ear angle: The position of the ears, relative to the front, in degrees.
- ear rounding: Rounding the upper edge of the ears, radius, in mm.
- ear stretch: How far the ears should stretch, orientated at the bottom radius, in mm.
Use your own Logos
To use your own logo, you need to have it in a 50x50mm SVG or DXF File, since this is the only way the program can read it. The dimensions are important, because with them the logo is scaled onto the tag correctly.
You can scale the SVG File on 50x50mm by yourself in Inkscape for example. It is done by creating a new document and set 50mm each for height and width in the Document Properties… (Ctrl + Shift + D). After you've imported (Ctrl + I) the logo, you set it's height and width in Transform (Ctrl + Shift + M) under Scale to 50mm as well. If the logo isn't a square, check Scale proportionally and only set the higher value to 50mm. Eventually, you can center the logo on the horizontal and vertical axis in Align and Distribute (Ctrl + Shift + A).
After exporting (Ctrl + Shift + E) your logo to the project path, preferably to a subfolder, you can put the file path into the logo-Parameter in OpenSCAD.
Apart from this it, as long as you're familiar with vector graphics, it can also make sense to further edit the logo if it has too many details that are too small for the printer, like small texts for instance. Like with the vspace.one logo where I removed the texts completely, altered the rocket and made the border thicker, so that printing errors can be avoided.
Use your own fonts
Generally, any installed font can be used for your name on the tag.
To see which fonts can be used, you can find the Font List Window under Help at the top. The font styles for the respective fonts are listed there as well. To use a specific font style it has to be declared additionally in the font parameter. If you, for instance, would like to use the FreeSans Font in the Bold style, you would have to state FreeSans:style=Bold
.
Templates
The cat_ear_mate_tag.json File declares some extra templates for different tags for different bottles. Those are read by OpenSCAD automatically if it's in the same directory and can be chosen in a drop down menu, as well as further adapted in the Customizer panel. So far, there are templates for 3 bottle shapes, each with a version without ears and logo.
Export
When you're done in OpenSCAD, you can render (F6) the tag and export it as an STL (F7). With that the tag is ready to be sliced and printed.
Using multiple filaments
For the most, printing their tag with one filament will suffice. The advantage is that a tag like this can be printed in half an hour by a Bambu Lab P1S Printer. If there's an AMS, a design where the filament changes are merely along the layers will not take much longer, while it also can be printed without an AMS if you put pauses at the intended layers, but this might get annoying. As soon as you decide to make the text and logo have their own filament to have a better visibility for them, the printing time will skyrocket to 3.5 hours and an AMS becomes a necessity.
It's unthinkable to print a tag like this without AMS, because of filament switches happening every layer. As there is no AMS in the vspace.one, these can't be printed by ourselves. Anyways, like already mentioned, thanks to hacKNology, we could print multiple batches of tags for different visitors of the 38th Chaos Communication Congress and of course ourselves.
Because many other spaces that were on the congress as well, that actually have an AMS, asked us about how we made them, here's additional documentation for this.
At first, I painted the Tags with the Color Painting Tool in OrcaSlicer, which got annoying real quick, since the most efficient option for the text and logo with it is to paint every surface with the fill option. To not impose this on anyone else who wants a tag like this, i edited the original SCAD-File to add the tag_parts and split_relief parameters.
tag_parts has the function to split the tag horizontally and evenly a given times. If an uneven split is wanted, you can experiment with a higher number of splits where you assign multiple sections the name filament. Anyways, if you, for instance, split the tag in 4 sections, you can assign them their filament in the slicer at will.
split_relief is a boolean value that decides whether the text and logo will get separated from the Tag and can be assigned their own Filament respectively. Otherwise they're included in tag_parts. It should be mentioned that any detached element will be their own part. Therefore not entirely connected logos or for example i-dots will be their own part.
With the final STL exported from OpenSCAD and imported into OrcaSlicer, it can be Split into parts with the according button in the toolbar. A problem is now, that these parts get numbered more or less randomly, which is why you first need to find out which number each parts is. Though if you click onto one of them in the list, the focussed part will be shown in the preview immediately.
Depending on whether you're connected to your printer ot not, the filaments loaded into the AMS can be synchronized in the slicer and you can paint the tag with them. If not, the order of the filaments in the slicer should be matching with the order in the AMS. If everything is painted how it's wanted, the tag can finally be sliced and printed.
Printing times
Like already mentioned, the print for a single tag with the text and logo having their own colors is takes way longer than these that don't. The filament cost is significantly higher as well. Because of this, it might be favorable to print multiple tags at a time like we did for the congress. Of course, this is only possible if you know enough people that want one with the same colors. While different texts and logo might lead to some more filament switches adding up with multiple tags, the printing time additional printing time for adding another tag to the print is only marginal.
To give an overview, I've taken the respective printing time for different numbers of different tags from the Slicer and also calculated the relative printing time for a single tag in every case. There should be a mention that I cloned the same tag for these numbers so in reality the printing times for the last category would be tendentially higher, but they would follow a similar trend.
Priting time | 1 Tag | 2 Tags | 3 Tags | 5 Tags | 10 Tags | 25 Tags | Printing time divided by quantity | 1 Tag | 2 Tags | 3 Tags | 5 Tags | 10 Tags | 25 Tags | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Single-colored | 29:27min | 34:21min | 41:16min | 1:02h | 1:57h | 4:43h | Single-colored | 29:27min | 17:10min | 13:45min | 12:24min | 11:42min | 11:19min | |
5 color sections | 38:48min | 48:48min | 58:34min | 1:20h | 2:15h | 5:04h | 5 color sections | 38:48min | 24:24min | 19:31min | 16:00min | 13:30min | 12:09min | |
4 color sections and highlighted relief | 3:42h | 3:52h | 4:03h | 4:25h | 5:19h | 8:04h | 4 color sections and highlighted relief | 3:42h | 1:56h | 1:21h | 53:00min | 31:54min | 19:21min |
Note that the curves are not consistent because of the arbitrary numbers.