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

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]+2behebt das. - Stückliste + Beschaffung: Normteile mit Wegertseder-Bestellcodes über
productcode(DIN912 A2 M3×16 →2534-286, DIN985 A2 M3 →3346-232), auflösbar perSGpartslistfindproductcodes. - 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.