Files
claude-robotunits/katalog-schutzzaun_basic-root-nomenklatur.md
2026-07-09 09:21:49 +02:00

72 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Nomenklatur der Root-Handle-Punkte — schutzzaun_basic
Quelle: `katalog_fix3.zip`, Familie `schutzzaun_basic`, 889 Entities.
Betrachtet werden **ausschließlich die Punkte auf dem Root-Handle** (Transform `key == "root"`). Punkte in Unterteilen sind hier nicht enthalten.
## Umfang
Auf Root-Handles kommen **24 Punkt-Namen** vor — keine Richtungswörter (LINKS/RECHTS/VORNE/HINTEN) und keine Zahlen-Tripel (`_x_y_z`); die liegen alle in Unterteilen.
## Aufbau der Namen
```
CS_<PRÄFIX>[_<SEITE>][_<EBENE>][_<WINKEL>][_B]
```
| Bestandteil | Werte | Bedeutung |
|---|---|---|
| Präfix | `BASE`, `EIN`, `OUT`, `SELECT` | Punkttyp |
| Seite | `L`, `R` | linkes / rechtes Feldende (Achse z) |
| Ebene | `START` | unten (y = 0) statt Referenzhöhe (y = 1100) |
| Winkel | `0`, `90`, `270` | Abgangsrichtung; `_270` nur bei OUT/SELECT, nicht bei EIN |
| `_B` | — | zweite/hintere Variante desselben OUT-Punkts |
## Die vier Typen
- **`CS_BASE` / `CS_BASE_PRE`** — Anker. In **allen 889** Teilen. Über diesen Punkt wird das Teil hingestellt.
- **`CS_EIN_*`** — Einbau-/Kupplungspunkte für die Feldverkettung. Nur in **153** Teilen (17 %, die verkettbaren Felder).
- **`CS_OUT_*`** — Umrisspunkte. Nur in denselben 153 Teilen.
- **`CS_SELECT_*`** — Auswahlpunkte (Selektionsbox). Nur in denselben 153 Teilen.
## Semantik der Kupplungspunkte (belegt)
- **`L` / `R`** = die beiden Enden entlang z. Links bei z ≈ 0, rechts bei z ≈ Feldbreite. Der R-Punkt trägt zusätzlich 180°-Drehung (blickt entgegengesetzt).
- **`START`** = keine Seite, sondern die Höhe: `START_x` sitzt unten (y = 0), `CS_EIN_x` auf Referenzhöhe (y = 1100). Beide Seiten haben je einen START- und einen Höhenpunkt.
- **`_90`** = kein 90°-Drehung des Punkts, sondern seitlicher Versatz um die **Steherbreite (45 mm)** in x — Andockstelle für ein rechtwinklig ankommendes Teil.
- Ein `_270` (Abgang nach hinten) existiert bei `CS_EIN` **nicht**, nur bei den Hilfspunkten `CS_OUT`/`CS_SELECT`.
Die Benennung ist regelmäßig und L/R-symmetrisch: jeder der 153 Kupplungsteile trägt exakt denselben Satz.
## Gültigkeit — Abstand zur echten Geometrie
Gemessen transformationskorrekt gegen die echte Bounding-Box (die 521-m-Ausreißer der Kappen-Unterteile ausgenommen). Median über die jeweiligen Teile.
| Punkt | Anzahl | Median | Max | > 100 mm weg |
|---|---:|---:|---:|---:|
| `CS_BASE` / `CS_BASE_PRE` | 889 | 0 | 271 | 2 % |
| `CS_EIN_START_L` | 153 | 0 | 0 | 0 % |
| `CS_EIN_L` | 153 | 0 | 0 | 0 % |
| `CS_EIN_L_90` | 8 | 21 | 21 | 0 % |
| `CS_OUT_L_*` | 153 | 030 | 71 | 0 % |
| `CS_SELECT_L_270` | 153 | 0 | 220 | 1 % |
| **`CS_EIN_START_R`** | 153 | **883** | 1928 | 93 % |
| **`CS_EIN_R`** | 153 | **863** | 1908 | 93 % |
| **`CS_EIN_R_90`** | 8 | **1019** | 1019 | 100 % |
| **`CS_OUT_R_*`** | 153 | **863913** | 1958 | 9396 % |
| **`CS_SELECT_R_*`** | 153 | **8831183** | 2228 | 94100 % |
(`CS_SELECT_L_0` / `_L_90` liegen mit ~150300 mm bewusst etwas außerhalb — Selektionsbox.)
## Befund
- **Anker (`CS_BASE`) korrekt** in allen Teilen → Hinstellen funktioniert überall.
- **Linke Seite komplett korrekt**: `START_L`, `L`, `L_90`, alle `OUT_L`/`SELECT_L`.
- **Rechte Seite durchgängig versetzt**: **jeder** R-Punkt (`EIN`, `OUT`, `SELECT`) liegt um rund eine **Feldbreite (~8601900 mm)** daneben. Das ist ein einzelner systematischer Fehler — die rechte Seite steht im falschen Ursprung, um das Feldmaß verschoben.
## Konsequenz
- Hinstellen (`CS_BASE`): geht.
- Geregelter Einbau nach links (eingehende Seite, `START_L`/`L`): geht.
- Geregelter Einbau nach rechts / Weiterreihen (`START_R`/`R`/`R_90`): **kaputt**, solange die rechte Seite nicht um das Feldmaß zurückkorrigiert wird.
- Die Nomenklatur selbst ist konsistent; der Fehler steckt nicht in den Namen, sondern in den Koordinaten der R-Punkte.