Files
DOSSIER-STANDALONE/RESEARCH_BAUTEILE_RHINO.md
T
karim b65c676643 Research: Bauteile Treppe/Fenster/Tuer — Rhino-Plugin als Vorbild
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).
2026-07-05 01:33:35 +02:00

3.6 KiB
Raw Blame History

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 via mid_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 (14), 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 + 12 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:

  1. 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.
  2. Fenster Brüstungslinie im Plan (1 gepunktete Linie bei sillHeight>0). XS.
  3. Tür Sturzlinien (gestrichelt, SIA) — Schulfall der geplanten Schnitt/Ansichts-Logik.
  4. Treppe Referenz links/mitte/rechts + Lauflinie visuell zentriert.
  5. Fenster Flügel-Mittelpfosten (2D, wingCount ins Modell).
  6. Tür wandoeffnung-Typ (reine Öffnung ohne Blatt/Symbol).
  7. 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 13 (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.