RESEARCH_BAUTEILE_RHINO.md: Gap-Vergleich Rhino (treppe.py 1784Z + fenster/tuer) vs. TS-Ist, priorisierte Anhebungs-Ansaetze (Gruppe A 2D-sofort / B 2D-mittel / C 3D). Kern-Gaps: Treppe-Aussenlinie, Fenster-Bruestungslinie, Tuer-Sturzlinien (SIA, gestrichelt) — fallen mit Schnitt/Ansichts-Darstellung zusammen. PENDENZEN: Bauteil-Item im Backlog + Phase 5 abgehakt (a608a59).
3.6 KiB
RESEARCH — Bauteile Treppe/Fenster/Tür: Rhino-Plugin als Vorbild
Stand: 2026-07-05. Vergleich der authoritativen Rhino-Plugin-Implementierung
(/Users/karim/PROJECTS/DOSSIER/rhino/, C#/Python + RhinoCommon-B-Rep) mit
DOSSIER-STANDALONEs vereinfachter TS-Umsetzung. Ziel: Bauteile aufs Rhino-Niveau
heben. Belege = Rhino-Funktionsnamen.
Grundsatz: Rhino hat echten B-Rep-Kernel (3D). DOSSIER hat extrudierte Meshes +
kernel2d (2D). Darum getrennt: 2D-Symbol-Logik (leicht in TS/kernel2d
übernehmbar) vs. 3D (braucht Mesh-Pipeline bzw. später truck).
Treppe (Rhino treppe.py, 1784 Z. — massiv reicher als stair.ts)
- Typen: gerade / L (3- und 4-Punkt mit Podest) / Wendel (inkl. Spindel-Cone bei r_in<0.05). TS hat alle drei, aber simpler.
- 3D-Querschnitt-Modi
massiv/flach/plattenrand(_treppe_profile_2d) — TS: nur Stufenboxen. fehlt. - 2D-Plansymbol (
_make_treppe_2d_symbol): Tritte, Lauflinie (4 Pfeil-Styles: klassisch/filled/breit/voll, visuell zentriert viamid_off), Aussenlinie/Outline (alle 3 Typen), Bruchlinie, Podest-Hexagon. TS: Tritte+Bruch+Lauflinie(1 Style) da; Aussenlinie fehlt komplett, Referenz links/mitte/rechts fehlt. - Soll-Schrittmass (2S+A, Lock), Show-Flags, Grips — fehlen in TS.
Fenster (Rhino elements.py _make_oeffnung_pieces)
- 3D: Rahmen (BooleanDiff), Mittelpfosten je Flügel (1–4), Glas (einfach 12mm / Doppel 2×6+16), Sims aussen (4 Styles), Rahmen-Offset innen/mitte/aussen. TS: nur 2D-Rahmen+Glaslinien, Wand-Boolean-Loch (
1407c68); kein Rahmen-3D. - 2D: TS hat Rahmen + 1–2 Glaslinien (grob/mittel/fein). Fehlt: Brüstungslinie im Plan, Flügel-Mittelpfosten, Anschlag-Striche (nur Tür hat sie), Flügelanzahl.
Tür (Rhino elements.py)
- Typen:
normal/wandoeffnung(reiner Durchbruch, kein Blatt). Rahmen:zarge(3-seitig, im Wandquerschnitt) /block(+5cm Überhang). - 2D-Schwung (
_make_tuer_swing_curves): Blatt+Arc, hinge_side/open_angle/aussenseite/swing_invert; Bogen-Anlage am Rahmen (standard/detail). 2D-Sturzlinien (_make_tuer_sturz_curves, gestrichelt, Modi keine/innen/aussen/beide — SIA: Sturz über Schnittebene → gestrichelt). TS: Blatt+Arc+Anschlag (fein) da; Sturzlinien fehlen komplett,wandoeffnung-Typ + swing_invert fehlen.
Gesamtreihenfolge „was zuerst" (Agenten-Empfehlung)
Gruppe A — 2D-leicht, hoher Plan-Wert, kernel2d-kompatibel:
- Treppe Aussenlinie/Outline (alle 3 Typen; gerade=4 Linien, L via Linienschnitt
_line_intersect_xy, Wendel=2 Bögen+radiale). Ohne sie wirkt der Plan unfertig. - Fenster Brüstungslinie im Plan (1 gepunktete Linie bei sillHeight>0). XS.
- Tür Sturzlinien (gestrichelt, SIA) — Schulfall der geplanten Schnitt/Ansichts-Logik.
- Treppe Referenz links/mitte/rechts + Lauflinie visuell zentriert.
- Fenster Flügel-Mittelpfosten (2D,
wingCountins Modell). - Tür
wandoeffnung-Typ (reine Öffnung ohne Blatt/Symbol). - Treppe Show-Flags +
obere_dashed; 8. Fenster Anschlag-Striche.
Gruppe B — 2D mittel: Tür-Schwung am Rahmen; Treppe Pfeil-Style filled; Fenster/Tür Styles/Presets; swing_invert.
Gruppe C — 3D (nach Mesh-/B-Rep-Pipeline): Treppe flach-Querschnitt; Rahmen als Mesh (Fenster/Tür); Türblatt+Glas; Sims; L-Podest-Hexagon; Wendel helikoidale Unterseite (truck).
Bezug PENDENZEN: Gruppe-A-Items 1–3 (Aussenlinie/Brüstung/Sturz) fallen in das Backlog-Item „Schnitt- vs. Ansichts-Darstellung nach Schnitthöhe" — Sturzlinie = Bauteil unter Schnittebene → gestrichelte Überkopf-Projektion. Gruppe C wartet auf den Textur-/Mesh-Pipeline-Nachfolger bzw. truck.