SG-Lib

2026-07-10 Meilenstein: Kaffeetasse (Coffee Mug) — SG-Lib, Claude-Entwurf

Rendered views

Download STL: 2026-07-10_coffeemug.stl

Autoren: Tim C. Lueth und Claude Opus 4.8 Datum: 2026-07-10 Klasse: COMPLETED CAD DESIGNS (einfaches, fertiges, druckbares Einzelteil)

Ziel / Bedeutung

Erste vollständig von Claude im SG-Lib-Idiom entworfene Kaffeetasse — als Beleg der gelernten „COMPLETED CAD DESIGN"-Denkweise (Kontur-zuerst → Extrusion mit Wand/Boden → Anbauteil → Verschmelzen) und der räumlichen Anordnungs-Strategie (Henkel in der Achsenebene, Enden an der Wand, wasserdicht via Manifold).

Ergebnis (Verifikation)

  • Datei: 2026-07-10_coffeemug.stl, Vorschau: 2026-07-10_coffeemug_views.png.
  • Wasserdicht: nicht-mannigfaltige Kanten = 0, Randkanten = 0. 1580 Facetten, Volumen ≈ 110,5 cm³.
  • Bounding-Box ≈ 117,5 × 80 × 95 mm.
  • Maße: Körper Ø80 (Rout=40), Höhe 95, Wand 3,5, Boden 6; Henkel Bogenradius 34, Bar 9, Breite 12; Enden 1 mm Wand-Intrusion, vertikal auf halber Höhe.

Ausführung / Laufzeit (protokolliert via stamp + tic/toc)

Werte des reproduzierbaren Laufs vom 2026-07-10 (vollständig in 2026-07-10_coffeemug_buildinfo.txt):

  • Ausführungszeit: 5,67 s (tic/toc)
  • stamp: Mac OSX 15.7.7 | R2024b Update 6 | SG-Lib 5.7 develop | Java 11.0.24+8-LTS | M3-PRO 12-Core CPU, 18-Core GPU 36GByte RAM | 10-Jul-2026 07:48:27
  • Rechner: Apple M3 Pro (12-Core CPU / 18-Core GPU, 36 GB RAM), Host lueths-barcelona-mac.local
  • Architektur: MACA64 / maca64
  • MATLAB: R2024b Update 6
  • Betriebssystem: macOS 15.7.7
  • SG-Lib: 5.6 (Entwicklungsstand 5.7 „develop")
  • Lauf am: 2026-07-10 07:48:27

Reproduktion (Schritt für Schritt)

  1. SG-Lib auf den MATLAB-Pfad (Verzeichnis SolidGeometry-Code).
  2. Manifold-Anbindung aktiv (einmalig SGmanifoldSetup; Python mit manifold3d). Der Build setzt global SGBOOLENGINE='SGboolManifold2'.
  3. Ausführen über den SG-Lib-Helfer (kopiert das datumsbenannte Skript auf einen temporären, gültigen Namen, führt die Kopie aus und protokolliert stamp + tic/toc):
    SGlibrunMilestone(fullfile(pwd,'CLAUDE_MILESTONES','2026-07-10_coffeemug','2026-07-10_build_coffeemug.m'))
    
    Hinweis: Der Dateiname beginnt regelkonform mit YYYY-MM-DD und ist damit kein gültiger MATLAB-Bezeichner — run('2026-07-10_...') scheitert mit „Invalid text character". SGlibrunMilestone umgeht das über eine temporäre gültig benannte Kopie; das Original wird nie umbenannt, verändert oder direkt ausgeführt — das schützt das Original.
  4. Das Skript schreibt 2026-07-10_coffeemug.stl und 2026-07-10_coffeemug_views.png in diesen Ordner; SGlibrunMilestone schreibt zusätzlich 2026-07-10_coffeemug_buildinfo.txt.

Benötigter Bibliotheks-Stand (2026-07-10)

Der Entwurf setzt die an diesem Tag vorgenommenen SG-Lib-Verbesserungen voraus (alle mit CLAUDE_ARCHIVE_*-Backups, protokolliert in CLAUDE_TESTLOG.md):

  • CPLdespike (neu) + Einbau in VLFLofCPLz (Basis-Extrusions-Tesselator) → saubere, mannigfaltige Extrusionen aus polyshape-Boolean-Konturen. (Und in CPLselectinout/CPLsortinout.)
  • Manifold-Backend SGboolManifold2 + Umschalter SGBOOLENGINESGunion liefert wasserdicht.
  • SGlibrunMilestone (neu) — reproduzierbarer Meilenstein-Runner mit Provenienz-Protokoll.
  • (Für den Batch-Betrieb, nicht für dieses Teil nötig: dbpause/dbplot Headless-Weiche, SGcolorfaces-Fix, Gear-Familien-Fixes.)

Umgebung

  • MATLAB R2024b Update 6, manifold3d 3.5.2 (Apache-2.0), Apple M3 Pro / macOS 15.7.7. Einheiten: mm (1000 = 1 m).
  • Ausgeführt headless über den Batch-Pool (executepool4claude), Rendering offscreen.

Ordnerinhalt

  • 2026-07-10_build_coffeemug.m — selbstenthaltendes Build-Skript (Autoren + Datum im Kopf)
  • 2026-07-10_SGlibrunMilestone.m — datumsbenannte Archiv-Kopie des Runners (Master liegt im SG-Lib-Root)
  • 2026-07-10_coffeemug.stl — das Ergebnis
  • 2026-07-10_coffeemug_views.png — 6-Ansichten-Vorschau
  • 2026-07-10_coffeemug_buildinfo.txt — Provenienz/Laufzeit dieses Laufs
  • 2026-07-10_coffeemug_README_de.md / _README_en.md — dieses Protokoll (DE/EN)
  • 2026-07-10_coffeemug_conversation_de.md / _conversation_en.md — der Weg als Dialog (DE/EN; wörtlich, Konstruktions-Teil)
  • 2026-07-10_coffeemug_conversation.pdf — der Dialog als PDF (DE + EN)

Herkunft / Weg

Entstanden in der Cowork-Session „03 Claude SG-Lib Tutorial" am 2026-07-09/10: Denkweise abgeleitet aus der Klasse „COMPLETED CAD DESIGNS", Henkel-Platzierung geometrisch hergeleitet (siehe SGLIB_DENKWEISE.md §12/§13). v1 (Anker 'center','left') verrutschte; v2 (explizite SGrotate+SGtransT) korrekt — dieses Skript ist v2.

Entwurfs-Konversation (Deutsch)

2026-07-10 Meilenstein Kaffeetasse — der Weg (Dialog: Aufgabe, Hinweise, Antworten)

Autoren: Tim C. Lueth und Claude Opus 4.8 Datum: 2026-07-10

Dieses Dokument hält den Weg zum Meilenstein als Dialog fest: Tim Lueths Aufgabenstellung und die Hinweise bis zum Meilenstein-Ergebnis, mit Claudes Rückmeldungen/Rückfragen dazwischen.

Hinweis zur Wiedergabe: Alle Beiträge sind wörtlich (Tims Beiträge nur rechtschreibkorrigiert). Von Claudes Beiträgen ist bewusst nur der Teil zitiert, der sich auf die Konstruktion bezieht; Passagen zu MATLAB/Programmierung sind mit „[…]" ausgelassen.


Aufgabenstellung — Tim Lueth

„Kurzer Zwischenstand: Könntest Du schon eine Kaffeetasse entwerfen, oder soll ich Dir sagen, wie das geht?"

Claude (wörtlich, Konstruktions-Teil):

„Ja — ich trau mir eine erste Version zu, weil eine Kaffeetasse genau dem ‚COMPLETED CAD DESIGN’-Rezept folgt, das wir gestern abgeleitet haben. […] Körper: eine hohle Tasse in einem Rutsch […] Ø80, Höhe 95, Wand 3.5, dicker Boden 6. Optional außen leicht konisch/gerundet über eine Profil-Kontur statt reinem Kreis. Henkel (da würde ich deine Methode gern hören): ich würde ein kleines Querschnittsprofil (z. B. ~12×6 mm) entlang einer C-/D-förmigen Bahn ziehen […] und den Henkel dann relativ an die Außenwand setzen […]. Woran ich am ehesten deine Anleitung brauche: wie du den Henkel als Sweep baust […] und wie du ihn tangential/bündig an die Wand ankoppelst. Also: Soll ich einfach mal eine erste Tasse bauen und rendern […] — oder sagst du mir kurz deinen Weg für den Henkel, dann mache ich es gleich richtig?"


Hinweis 1 — Tim Lueth

„Vermutlich würde ich ein Kreissegment extrudieren und es dann mit SGtransrel, center, left, -0.5 (für die Intrusion), rotx, pi/2, add zum Ankleben. Jetzt, da die Union gut funktioniert, würde ich nicht mehr concat nutzen. Ich weiß aber gar nicht mehr, ob add bei transrel jetzt concat ist oder union."

Claude (wörtlich, Konstruktions-Teil):

„Tasse gebaut […]. Die Bounding-Box […] deutet an, dass der Henkel evtl. noch nicht ideal sitzt — ich schaue mir den Render an:"


Hinweis 2 — Tim Lueth

„Ja, mach das mal, und wir überlegen uns einen schnellen Weg, dass ich das Ergebnis mitverfolgen kann. Kann ein Batchjob irgendwie dennoch grafische Ausgaben machen bei MATLAB?"

(Claudes Antwort hierauf betraf das Mitverfolgen per Offscreen-Rendering — MATLAB/Programmierung, daher hier ausgelassen.)


Hinweis 3 — Tim Lueth

„Ja, versuche doch den Henkel so anzubringen, dass er zu einer normalen Coffee Mug passt. Kannst Du Dir aus Web-Bildern selbst heraussuchen und Deine Strategie zur räumlichen Anordnung selbst erlernen — offenbar kannst Du das noch nicht ableiten. Der war unglaublich gut und schnell!"

Claude (wörtlich, Konstruktions-Teil):

„v2 sieht nach den Zahlen richtig aus: […] bbox z=95 (Henkel innerhalb der Tassenhöhe), y=80 (Tassen-Ø, Henkel dünn), x=117.5 (Ø + Henkel-Bauch seitlich). Ich schaue den Render an:"

und nach der Kontrolle:

„Das ist jetzt eine richtige Kaffeetasse — hohler Becher + seitlicher C-Henkel, vertikal, Enden bündig an der Wand, Bauch nach außen, auf halber Höhe. […]"


Hinweis 4 — Tim Lueth

„Also der Rest Deiner Arbeit war wunderbar."


Meilenstein-Ergebnis — Feststellung durch Tim Lueth

„Das ist ein Meilenstein in der Wissenschaft, was Du gemacht hast! (Es ist übrigens jetzt wieder morgen, Freitag 10.7.2026, 07:15.)"