SG-Lib

Meilenstein 2026-07-10 — Block + Zylinder, verschraubt mit einer M3

Rendered views

Download STL: blockcylinderM3_0001.stl · blockcylinderM3_0002.stl

Autoren: Tim C. Lueth und Claude Opus 4.8 — SG-Lib-Cowork-Tutorial-Meilenstein.

Worum es geht

Ein 40×40×20-mm-Block mit einem Ø20 / H10-mm-Zylinder obenauf, verbunden durch eine versenkte DIN912/DIN985-M3-Schraube (Zylinderkopf im Zylinder versenkt, selbstsichernde Mutter im Block versenkt). Gebaut im SG-Lib-Idiom (Kontur/Box → relative Montage → Abzugskörper-Bausatz), wasserdicht über die Manifold-Boolean-Engine (SGBOOLENGINE='SGboolManifold2').

Kernlektionen dieses Meilensteins

  • Schraubenlänge aus screwlengthDIN912985(M,t1,t2): kürzeste verfügbare DIN912-A2-Länge, die Kopf+Mutter versenkt hält und genug Restwand lässt — bestimmt durch die geklemmte Materialdicke (t1+t2) und die geforderte Restwand (material-/festigkeitsabhängig), NICHT durch die Blockkontur. Hier → M3×16.
  • Platzierungs-Idiom: beide Fügeframes an der Fuge, entgegengesetztes ez (Kopf oben im Zylinder, Mutter unten im Block); die Schraubenachse aus dem Geometrie-Zentrum abgeleitet (keine Magic Numbers).
  • Einführtunnel tpl: SGdesignDIN912DIN985(...,'TT',tpl)tpl=[HIL NIL] muss ≥ Bauteildicke je Seite sein, damit die Einführkanäle für Kopf/Mutter bis zur Außenfläche durchbrechen. Der Default [10 10] ist für den 20-mm-Block zu kurz (Mutter vergraben, nicht einführbar); tpl=[tcyl tblk]+2 behebt das.
  • Stückliste + Beschaffung: Normteile mit Wegertseder-Bestellcodes über productcode (DIN912 A2 M3×16 → 2534-286, DIN985 A2 M3 → 3346-232), auflösbar per SGpartslistfindproductcodes.
  • Ein Verzeichnis: konstruierte Teile (STL) + Stückliste + Assembly-Ansichten zusammen (SGwriteMultipleSTL).

Dateien

  • 2026-07-10_build_blockcylinderM3.m — reproduzierbares Build-Skript (selbstständig, englische Ausgabe).
  • 2026-07-10_blockcylinderM3_STL/ — die STL-Teile (blockcylinderM3_0001/0002.stl), StandardParts_parts.txt (Stückliste mit Bestellcodes), Assembly-Ansichten (JPG), Design-Comments.txt, Assembly-Fitting.txt.
  • 2026-07-10_blockcylinderM3_views.png — Halbschnitt-Vorschau (versenkte Schraube + Einführkanäle).
  • 2026-07-10_blockcylinderM3_buildinfo.txt — Build-Provenienz.
  • 2026-07-10_SGlibrunMilestone.m — Kopie des Runners zur Reproduktion.
  • 2026-07-10_blockcylinderM3_conversation_de.md / _en.md — die Konstruktions-Konversation (DE/EN).

Reproduktion

SGlibrunMilestone(fullfile(pwd,'CLAUDE_MILESTONES','2026-07-10_blockcylinderM3', ...
                           '2026-07-10_build_blockcylinderM3.m'))

Ergebnis & Provenienz

  • Ergebnis: M3×16, Restwand 3,5 mm, Grip 12 mm, wasserdicht (nm=0 an Block und Zylinder).
  • Ausführungszeit: 4,28 s (tic/toc)
  • Maschine / stamp: Mac OSX 15.7.7 · MATLAB R2024b Update 6 · SG-Lib 5.7 develop · Java 11.0.24+8-LTS · Apple M3-PRO (12-Core CPU, 18-Core GPU), 36 GByte RAM
  • Host: lueths-barcelona-mac.local (MACA64 / maca64)
  • Ausgeführt am: 2026-07-10 22:40:19

Entwurfs-Konversation (Deutsch)

Konstruktions-Konversation — Meilenstein 2026-07-10 (Block + Zylinder, eine M3)

Wörtlich (rechtschreibkorrigiert) der konstruktionsrelevante Teil zwischen Tim Lüth und Claude Opus 4.8, von der Aufgabenstellung bis zum Meilensteinergebnis. Autoren: Tim C. Lueth und Claude Opus 4.8.

Tim: Bitte konstruiere 1 Block 40×40×20 und einen Zylinder D20/H10 darüber und verschraube diese mit einer M3-Schraube.

Claude: Aufgebaut: Block SGbox([40 40 20]), Zylinder SGofCPLz(PLcircle(D/2),Hc) mit SGtransrelSG(...,'ontop') darauf. Schraubenachse aus dem Geometrie-Zentrum abgeleitet (keine festen Koordinaten). Länge über screwlengthDIN912985(3, tcyl, tblk) mit tcyl=10 (Zylinder), tblk=20 (Block) → M3×16, Restwand 3,5 mm, Grip 12 mm. Kopf oben im Zylinder, Mutter unten im Block versenkt (beide Fügeframes an der Fuge, entgegengesetztes ez), Ergebnis nm=0.

Tim: Du hast bei der Benutzung von SGdesignDIN912DIN985 den Parameter tpl übersehen, der angibt, wie groß der Subtraktionstunnel sein muss. Default ist 10 10 für Head und Nut, aber dieser Körper ist zu dick, als dass 10 mm gereicht hätten. Verstehst Du, was ich meine? Möchtest Du mal nachsehen?

Claude: Verstanden — tpl=[HIL NIL] ist die Länge der Einführtunnel für Kopf/Mutter. Beim 20 mm dicken Block reicht der 10-mm-Mutter-Tunnel nicht bis zur Unterseite → die Mutter hätte keinen Einführkanal nach außen. Halbschnitt-Vergleich zeigt: Default [10 10] → Mutter-Kanal endet im Vollmaterial; tpl an die Dicke angepasst → Kanal bricht bis zur Blockunterseite durch.

Tim: Aktuell ist der Einführtunnel für die Mutter zu kurz und die Mutter könnte nicht eingeführt werden.

Claude: Behoben: tpl=[tcyl tblk]+2 (aus der Geometrie, tpl(Seite) ≥ Bauteildicke), Aufruf SGdesignDIN912DIN985([3 L 0],'TT',tpl). Verifiziert im Halbschnitt: Mutter-Kanal reicht jetzt bis zur Blockunterseite (z=−10), Kopf-Kanal öffnet oben am Zylinder (z=20), nm=0. Regel als §2d in SGLIB_Fuegen.md festgehalten.

Zusätzlich (Beschaffung): Die verwendeten Normteile in productcode angelegt (Rostfrei A2): DIN912 A2 M3×16 → 2534-286, DIN985 A2 M3 → 3346-232 (Wegertseder-Artikelnummern recherchiert, nicht erfunden). Stückliste trägt die PC[...]-Codes; konstruierte Teile (STL) + Stückliste in einem Verzeichnis (SGwriteMultipleSTL).

Tim: Das ist ein Meilenstein — bitte dokumentiere wieder Code, STL-Folder und Konversation in Deutsch und Englisch; der Ausgabetext im Code bitte auch auf Englisch.

Claude: Meilenstein angelegt: Build-Skript (englische Ausgabe, stamp+tic/toc über SGlibrunMilestone), STL-Ordner mit beiden Teilen + Stückliste + Ansichten, READMEs (DE/EN), diese Konversation (DE/EN), Runner-Kopie.

Tim: Wichtig: Wenn XX als Laufzeitkommentar möglich sein soll, muss früh — vor dem ersten Kommentar — einmal eine Einzelzeile nur mit XX stehen, um die Logdateien zurückzusetzen. Generelle MATLAB-Programmierregel, auch für die SG-Lib wichtig.

Claude: Aufgenommen (MATLAB-Programmierrichtlinien §8b, Notiz in SGLIB_Denkmuster.md). Build-Skript und sgtestclaude um die nackte XX-Reset-Zeile vor dem ersten XX-Kommentar ergänzt; danach ist Design-Comments.txt sauber (nur der Kommentar dieses Laufs).

Ergebnis

M3×16, Restwand 3,5 mm, Grip 12 mm, wasserdicht (nm=0). Einführtunnel bricht beidseitig durch. Stückliste mit Bestellcodes. Ausführungszeit 4,28 s (tic/toc), Maschine/stamp siehe README/buildinfo.