projekte:2024:cat-ear-mate-tag

Katzenohren Mate Tag (OpenSCAD)

Bei der diesjährigen GPN, die mein erstes großes Chaos-Event war, hatte ich bei vielen Club-Mate Flaschen die weit verbreiteten Mate Tags gesehen und mich gefragt, wieso ich denn noch selbst noch keinen hatte. Wieder zurück im Space war mir das Eingeben von Werten in eine Vorlage nicht genug. Die Idee, meinen Mate Tag mit Katzenohren zu dekorieren, hat mich dazu gezwungen, mich mit der mir bis dahin fremden OpenSCAD Sprache zu befassen.

Jedenfalls, nachdem ich die Bilder von meiner brandneuen Innovation nach einer schlaflosen Nacht ins Fediverse gestellt habe, stieß ich auf viel Zuspruch und Nachfrage nach einer Vorlage und seitdem ist beinahe ein halbes Jahr vergangen.

Aber nach endloser Prokrastination und vielen Anpassungen ist die Vorlage endlich fertig.

Update 2025-01-07: Im Ausblick auf den nächsten Chaos Communication Congress haben emilia und ich uns dazu entschieden, Mate Tags in Trans und Nicht-Binären Pride-Designs zu drucken. Zusätzlich konnten wir dank des AMS (Automatisches Materialsystem), das uns im hacKNology Hackerspace zur Verfügung steht, die Texte und Logos der Tags einfärben. Hätten wir versucht mehr Flaggen einzubinden, hätte es viel mehr Filamente und mehrere AMS gebraucht, deshalb haben wir es bei den beiden belassen.

Neben den Tags, die wir für alle, die bei uns nachgefragt hatten, fürs 38C3 vorproduziert hatten, wurde der Bambu Lab P1S samt AMS aus Konstanz bis nach Hamburg transportiert (Danke, Wolfgang! <3), was uns die Möglichkeit gegeben hat, lokal für alle Wesen, die erst dort von ihnen erfahren haben, welche zu drucken. Ich war zwar selbst nur an Tag 0 und 1 anwesend, aber habe bereits da den Anfang der Welle mitbekommen, die unsere Tags dort ausgelöst hatten.

Dafür ist dann wohl eine Erweiterung der Dokumentation nötig.

Nachdem ihr OpenSCAD installiert und die Vorlage heruntergeladen habt, könnt ihr im Programm direkt die cat_ear_mate_tag.scad Datei öffnen.

Die Funktionsweise der Vorlage, sobald man sie in OpenSCAD geöffnet hat ist an sich simpel. Im Customizer Panel lassen sich die vielen Parameter, die ich in die Vorlage eingebaut habe umstellen. Viele auch mit einem Slider, um zu verhindern, die Werte so einstellen zu können, dass die Vorlage nichtmehr richtig funktioniert. Die Parameter und ihre Auswirkungen sind dort auch ebenfalls erklärt.

In der Vorlage ist OCR-A als Font angegeben. Ist diese nicht installiert, nutzt OpenSCAD eine andere Standardfont.

Das Startfenster von OpenSCAD. Dateiauswahlfenster von OpenSCAD. Es wird der Ordner mit den Projektdateien angezeigt. OpenSCAD: Customizer-Panel. Verschiedene Parameter werden hier mit Textfeldern und Slidern angegeben.

  • General:
    • $fn: Verändert die Polygone von dem Tag.
    • name: Der Name, der auf den Tag geschrieben wird.
    • font: Die Schriftart für den Namen.
    • logo: Der Pfad für das verwendete Logo. Kann auch leergelassen werden.
    • ears: Wahlmöglichkeit für die Ohren.
  • Tag:
    • bottle neck radius: Radius vom Flaschenhals, ist bei den meisten Glasflaschen gleich, in mm.
    • bottle angle: Ändert die Form von dem Tag, um sich verschiedenen Flaschenarten anzupassen, in Grad.
    • tag height: Höhe vom Tag, kann beispielsweise bei fehlendem Logo verkleinert werden, um Filament zu sparen, in mm.
    • tag thickness: Dicke vom Tag, sollte nicht brechen, aber auch noch flexibel genug sein, in mm
    • gap angle: Die Größe der Öffnung, um das Tag an die Flasche, in Grad.
    • relief: Text und Logo können entweder mit positiven Werten herausragen oder mit Negativen hereinragen, jeweils in mm.
  • Text/Name:
    • text size: Textgröße für den Namen, in mm.
    • text space: Zusätzlicher oder mit negativen Werten verminderter Abstand zwischen den Buchstaben, in mm.
    • text vertical move: Verschiebt den Text nach oben, oder nach unten mit negativen Werten, in mm.
    • text horizontal move: Verschiebt den Text nach rechts, oder nach links mit negativen Werten, in mm.
  • Logo:
    • logo size: Größe vom gewählten Logo, in mm.
    • logo vertical move: Verschiebt das Logo nach oben, oder nach unten mit negativen Werten, in mm.
    • logo horizontal move: Verschiebt das Logo nach rechts, oder nach links mit negativen Werten, in mm.
    • logo spin: Drehung vom Logo um sich selbst, im Uhrzeigersinn, in Grad.
  • Ears:
    • ear size: Größe der Ohren, andere Werte lassen es kleiner aussehen, in mm.
    • ear thickness: Dicke der Ohren, sie müssen weniger flexibel sein als der Rest, in mm.
    • ear move down: Verschiebung der Ohren nach unten in den Tag, 0 → auf dem eigentlichen Tag oben drauff, in mm.
    • ear angle: Position der Ohren, relativ zur vorderen Seite, in Grad.
    • ear rounding: Abrundung der Ohren an der Spitze, Radius, in mm.
    • ear stretch: Wie weit die Ohren nach Außen strecken sollen, orientiert am unteren Radius vom Tag, in mm.
  • Extras:
    • keyring hole: Ein Loch, um deinen Tag an einen Schlüsselanhänger zu hängen, falls du es willst.
    • tag parts: Teilt den Tag in mehrere Teile auf, nutzvoll für die Filamentauswahl im Slicer.
    • split relief: Trennt die Buchstaben vom Namen und das Logo in jeweils einzelne Teile auf. Hat nur mit positivem Wert bei „relief“ einen Effekt, nutzvoll für die Filamentauswahl im Slicer.

Um eigene Logos zu benutzen, müsst ihr diese als 50x50mm SVG oder DXF Datei verfügbar haben, da nur so das Programm die Form vom Logo auslesen kann. Die Maße vom Logo sind deshalb wichtig, weil damit das Logo richtig auf den Tag skaliert wird.

Beispielsweise in Inkscape könnt ihr eure .svg Datei selbst auf 50x50mm skalieren. Das geht, indem ihr ein neues Dokument öffnet und in den Dokumenteinstellungen (Ctrl + Shift + D) jeweils 50mm für Höhe und Breite festlegt. Nachdem ihr das Logo importiert (Ctrl + I), setzt ihr in Transformation (Ctrl + Shift + M) unter Maßstab die Breite und Höhe auf 50mm. Falls das Logo nicht quadratisch ist, wählt ihr Proportional skalieren aus und ändert nur den größeren Wert auf 50mm. Schließlich könnt ihr das Logo in Ausrichten und Verteilen (Ctrl + Shift + A) das Logo jeweils vertikal und horizontal zentrieren.

Inkscape, Dokumenteinstellungen: Höhe und Breite in den wurden auf 50mm gesetzt. Inkscape, Transformieren: Höhe und Breite des Logos wurden auf 50mm gesetzt. Inkscape, Ausrichten und Verteilen: Flächen zum horizontalen und vertikalen Zentrieren sind hervorgehoben.

Euer Logo könnt ihr dann in den Projektpfad, bestenfalls in einen Unterordner exportieren (Ctrl + Shift + E) und in OpenSCAD dann im logo-Parameter mit Dateipfad angeben.

Inkscape, Exportieren: Logo wird als "mylogo.svg" in den "logos"-Unterordner im Projektverzeichnis exportiert.

Davon abgesehen macht es soweit man mehr oder weniger mit Vektorgrafiken umgehen kann auch Sinn zusätzlich das Logo zu bearbeiten, falls es viele kleine Details enthält, die nicht gedruckt werden können, wie zum Beispiel kleine Texte. Für das vspace.one Logo habe ich beispielsweise die Texte komplett entfernt, die Rakete verändert als auch den Rand verdickt, damit weniger Fehler beim Drucken aufkommen.

Inkscape, Vergleich zwischen normalem und bearbeiteten Logo des vspace.one wie beschrieben.

Prinzipiell kann jede Font die auf eurem Rechner installiert ist für euren Namen auf dem Tag verwendet werden.

Um zu sehen, welche Fonts zur Auswahl stehen, hat das Programm ein Font List Fenster, welches oben unter Help geöffnet werden kann. Dort sind auch die einzelnen Schriftstile aufgeführt. Um einen spezifischen Stil einer Schriftart zu benutzen, muss sie zusätzlich im font-Parameter angegeben werden. Würde man beispielsweise FreeSans Font in Bold nutzen wollen, so müsste man FreeSans:style=Bold angeben.

OpenSCAD, Fontlist Fenster: Hier werden die erkannten Fonts und deren Stile aufgelistet.

In der cat_ear_mate_tag.json Datei gibt es einige Vorlagen für verschiedene Tags für verschiedene Flaschen oder Designs festgelegt. Diese werden in OpenSCAD direkt ausgelesen, solange die JSON im selben Dateipfad liegt, und können im Customizer Panel in einem Dropdown-Menu ausgewählt und weiter angepasst werden. Bisher gibt es Vorlagen für 3 Flaschenformen, auch mit jeweils einer Version ohne Ohren und Logo.

OpenSCAD, Schmales Mate Tag mit meinem Namen, Ohren und vspace.one Logo. OpenSCAD, Breites Mate Tage mit meinem Namen, Ohren und vspace.one Logo. OpenSCAD, Gewöhnliches Mate Tag, nur mit meinem Namen in großer Schrift.

Sobald alles in OpenSCAD fertig ist, kann der Tag gerendert (F6) und als STL exportiert (F7) werden. Dann ist der Tag bereit für den Slice und Druck.

Für die meisten wird es reichen, dass ihr Tag nur aus einem Filament gedruckt wird. Die Vorteile davon sind, dass sich so ein Tag in einem Bambu Lab P1S Drucker in einer halben Stunde drucken lässt. Falls ein AMS vorhanden ist, nimmt ein Design, bei dem man nur an den Schichten entlang die Filamente wechselt auch nicht viel mehr Zeit ein, wobei sich das mit manuellen Filamentwechseln, an Stellen wo man Pausen einsetzt, sogar ohne AMS machen lässt, auch wenn dies lästig werden kann. Sobald man sich aber dazu entscheidet auch Text und Logo in einem anderen Filament zu drucken, um eine bessere Sichtbarkeit für diese zu schaffen, schießt die Zeit für ein einzelnes Tag direkt auf 3,5 Stunden hoch, wozu ein AMS notwendig wird.

Ein Screenshot einer Druckvorschau von einem komplett lilanen Mate Tag in OrcaSlicer. Die Druckzeit beträgt 30 Minuten und 12 Sekunden. Ein Screenshot einer Druckvorschau von einem Mate Tag in Trans Farben in OrcaSlicer. Die Druckzeit beträgt 38 Minuten und 48 Sekunden. Es sind 5 Filamentwechsel notwendig. Ein Screenshot einer Druckvorschau von einem Mate Tag in Nicht-Binär Farben, schwarzem Logo und weißem Text. Die Druckzeit beträgt 3 Stunden und 42 Minuten. Es sind 118 Filamentwechsel notwendig.

Ohne AMS ist es durch Filamentwechsel, die sehr oft jede Schicht stattfinden müssen, undenkbar so einen Tag zu drucken. Da es im vspace.one kein AMS gibt, können diese leider nicht bei uns selbst gedruckt werden. Allerdings habe ich, wie oben erwähnt, dank dem hacKNology mehrere Ladungen an Tags für verschiedenste Besuchende des 38. Chaos Communication Congress drucken können.

Da beim Congress von vielen anderen Spaces, die tatsächlich auch ein AMS besitzen, Nachfrage dazu bestand, wie genau diese Tags gedruckt werden, gibt es dafür nochmal zusätzlich eine Dokumentation.

Zunächst hatte ich die Tags vollständig mit dem Color Painting Tool im OrcaSlicer eingefäbt, was jedoch schnell lästig wurde, da für den Text und das Logo die einfachste Option ist, mit der Fill-Option jede einzelne Fläche einzufärben. Um das nicht allen Leuten, welche selbst so einen Tag erstellen wollen zuzumuten, habe ich die ursprüngliche SCAD-Datei etwas verändert und die tag_parts und split_relief Parameter hinzugefügt.

tag_parts hat die Funktion, dass der Tag gleichmäßig horizontal in die gewünschte Anzahl geteilt wird. Falls eine ungleichmäßige Teilung gewünscht ist, kann mit einer höheren Einteilung, bei der mehreren Teile das gleiche Filament zugewiesen wird, herumexperimentiert werden. Jedenfalls, teilt man den Tag in beispielsweise 4 Teile ein, lassen sich diese später im Slicer jeweils leichter ihr gewünschtes Filament zuweisen.

split_relief entscheidet als Boolean-Wert darüber, ob, solange diese extrudiert sind, der Text und das Logo vom Tag getrennt werden und als eigene dem Objekt untergeordnete Teile sich selbst jeweils ein Filament zuweisen lassen. Ansonsten werden sie bei der Teilung von tag_parts miteinbezogen. Es sollte erwähnt sein, dass für jedes freistehende Element ein eigenes Teil erstellt wird. Demnach werden nicht ganz zusammenhängende Logos in mehrere Teile eingeteilt und beispielsweise i-Punkte werden ebenfalls ihr eigenes Teil.

Wenn die fertige STL aus OpenSCAD exportiert und in OrcaSlicer importiert wurde, kann diese, sobald ausgewählt, mit dem Split into parts Knopf in der Werkzeugleiste in ihre Teile aufgeteilt werden. Das Problem ist nun, dass die Teile zufällig nummiert werden, weshalb man erstmal herausfinden muss, welche Zahl zu welchem Teil gehört. Wenn man in der Liste auf eines klickt, wird aber direkt in der Vorschau hervorgehoben.

Je nachdem ob man mit dem Drucker direkt verbunden ist oder nicht, kann man die Filamente, welche ins AMS geladen sind direkt im Slicer synchronisieren und den Tag mit diesen Einfärben. Wenn man nicht verbunden ist, sollte die Reihenfolge der Filamente in der Liste der im AMS entsprechen. Ist alles nach Wunsch eingefärbt, kann der Tag entgültig gesliced und gedruckt werden.

Ein Screenshot in der "Prepare"-Ansicht in OrcaSlicer, der ein komplett weißes Mate Tag und die Werkzeugleiste oben zeigt. Der "Split into parts" Knopf ist hervorgehoben. Ein Screenshot in OrcaSlicer, der die Objektliste des Projektes zeigt. Er zeigt, dass "split_cat_ear_mate_tag.stl" in 9 Teile eingeteilt wurde, die jeweils nummiert sind. Ein Screenshot in OrcaSlicer, der die Filamentauswahl, die Objekte und die Vorschau vom Mate Tag zeigt. In der Reihenfolge von 1 bis 4 nummiert sind die Filamente weiß, gelb, lila und schwarz, alle jeweils als "Generic PLA". Bei den Objekten wird die Filamentauswahl für den 4. Teil vom Tag angezeigt. Der Tag ist bereits oben in gelb und unten in schwarz eingefärbt. Der Rest ist noch weiß.

Wie im letzten Abschnitt erwähnt, dauert der Druck für einen einzelnen Tag, bei dem der Text und das Logo eine eigene Farbe haben, deutlich länger als diese, wo das nicht der Fall ist. Auch der Filamentverbrauch ist maßgeblich höher. Deshalb kann es sich lohnen, mehrere Tags auf einmal zu drucken, wie wir es für den Congress getan haben. Dies geht natürlich nur, falls man genug Leute kennt, die ebenfalls einen mit den selben Farben haben wollen. Während verschiedene Texte und Logos möglicherweise dazu führen, dass sich die Filamentwechsel durch mehrere Tags geringfügig erhöhen, erhöht sich die Druckzeit, wenn man einen weiteren Tag zum Druck hinzufügt nur marginal.

Ich habe für verschiedene Anzahl an verschiedenen Tags jeweils die Druckzeit aus dem Slicer genommen, um darüber einen Überblick zu schaffen und zusätzlich die relative Druckzeit für einen einzelnen Tag in dem Fall berechnet. Zu erwähnen ist, dass ich für diese Zahlen den selben Tag dupliziert habe, also in der letzten Kategorie die Druckzeit tendenziell höher ist, aber einen ähnlichen Trend beibehält.

Gesamte Druckzeit 1 Tag 2 Tags 3 Tags 5 Tags 10 Tags 25 Tags Druckzeit durch Anzahl geteilt 1 Tag 2 Tags 3 Tags 5 Tags 10 Tags 25 Tags
Einfarbig 29:27min 34:21min 41:16min 1:02h 1:57h 4:43h Einfarbig 29:27min 17:10min 13:45min 12:24min 11:42min 11:19min
5 Farbschichten 38:48min 48:48min 58:34min 1:20h 2:15h 5:04h 5 Farbschichten 38:48min 24:24min 19:31min 16:00min 13:30min 12:09min
4 Farbschichten und hervorgehobenes Relief 3:42h 3:52h 4:03h 4:25h 5:19h 8:04h 4 Farbschichten und hervorgehobenes Relief 3:42h 1:56h 1:21h 53:00min 31:54min 19:21min

Ein Liniendiagramm, das die Daten der vorigen Tabelle "Gesamte Druckzeit" visualisiert. Die x-Achse zeigt die Anzahl an und die y-Achse die Dauer. Die Linie für "Einfarbig" ist violett und hat dreieckige Markierungen, für "5 Farbschichten" orange mit runden Markierungen und grün mit quadratischen Markierungen für "4 Farbschichten und hervorgehobenes Relief". Alle Kurven verlaufen ungefähr paralell zueinander, wobei die grüne viel höher liegt als die orangene, welche leicht über die violetten liegt. Ein Liniendiagramm, das die Daten der vorigen Tabelle "Druckzeit durch Anzahl geteilt" visualisiert. Die x-Achse zeigt die Anzahl an und die y-Achse die Dauer. Die Linie für "Einfarbig" ist violett und hat dreieckige Markierungen, für "5 Farbschichten" orange mit runden Markierungen und grün mit quadratischen Markierungen für "4 Farbschichten und hervorgehobenes Relief". Alle drei Kurven nähern sich dem Bereich von 15 min an, während die violette und orangene bereits relativ unten beginnen, fällt die grüne Kurve von oben exponentiell.

Bedenkt, dass die Kurven aufgrund von den beliebigen gewählten Zahlen nicht gleichmäßig sind.

  • projekte/2024/cat-ear-mate-tag.txt
  • Zuletzt geändert: 2025/01/07 18:36
  • von faye