# 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_[_][_][_][_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 5–21-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 | 0–30 | 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 | **863–913** | 1958 | 93–96 % | | **`CS_SELECT_R_*`** | 153 | **883–1183** | 2228 | 94–100 % | (`CS_SELECT_L_0` / `_L_90` liegen mit ~150–300 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 (~860–1900 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.