Cursor-HUD (VW-Stil) + weiches Winkel-Einrasten im Grundriss

Beim Zeichnen erscheint jetzt direkt am Cursor ein blau umrandetes
Massband-Kästchen mit Länge/Winkel (L: 3.118m  W: 60.000°, Winkel im
Bereich (−180,180]) statt nur in der Befehlszeile. Zusätzlich rastet
der Zugwinkel weich auf gängige Winkel (15°-Vielfache, Toleranz per
Default 2.5°) ein, sobald kein Objekt-Snap greift — mit gelblichem
Winkel-Badge und einer über den Cursor hinaus verlängerten, gestrichelten
Führungslinie (Vectorworks-Vorbild).

- tools/types.ts: ToolDraft.hud um length/angleDeg erweitert (text bleibt
  für Befehle ohne L/W-Paar), neuer segmentHud()-Helper.
- tools/snapping.ts: neue reine Funktion snapCommonAngle() + Einbindung in
  computeSnap (Objekt-Snap > harter Ortho-Zwang > weiches Winkelraster >
  Raster). Neues SnapSettings-Feld commonAngles + commonAngleTolerance,
  neuer SnapKind "angle".
- ui/StatusBar.tsx: Toggle + Toleranz-Eingabe in der Fang-Popover.
- plan/PlanView.tsx: DraftHud- und AngleGuide-Overlay (screen-space,
  zoomunabhängige Größe); die Winkel-Info reitet auf draft.snap mit.
- i18n: snap.commonAngles / snap.commonAngleTolerance (de/en).
- snapping.test.ts: snapCommonAngle-Fälle (exakt/Toleranz/Bereich/
  15°-Raster/Projektion) + Objekt-Snap-Vorrang vor dem Winkelraster.
This commit is contained in:
2026-07-11 00:21:21 +02:00
parent 9133c0961d
commit 3f042eb091
9 changed files with 435 additions and 18 deletions
+31 -6
View File
@@ -1825,13 +1825,38 @@ body {
stroke-dasharray: 4 4;
opacity: 0.8;
}
.plan-svg .tool-hud {
fill: var(--accent-light);
paint-order: stroke;
stroke: rgba(0, 0, 0, 0.55);
stroke-width: 3px;
/* Cursor-HUD (Vectorworks-Stil): weisser Kasten, blauer Rahmen, blauer
Monospace-Text „L: 3.118m W: 60.000°". */
.plan-svg .plan-hud-box {
fill: #ffffff;
fill-opacity: 0.92;
stroke: #2864ff;
stroke-width: 1.25;
}
.plan-svg .plan-hud-text {
fill: #2864ff;
font-family: var(--mono, ui-monospace, monospace);
dominant-baseline: middle;
font-weight: 600;
}
/* Weicher Winkel-Snap: gestrichelte Führungslinie (dezent) + gelbliches
Winkel-Badge nahe der Liniemitte. */
.plan-svg .plan-angle-guide-line {
stroke: #b06a6a;
stroke-width: 1;
stroke-dasharray: 5 4;
opacity: 0.75;
}
.plan-svg .plan-angle-badge-box {
fill: #fff3c4;
fill-opacity: 0.95;
stroke: #6b5b1e;
stroke-width: 1;
}
.plan-svg .plan-angle-badge-text {
fill: #4a3f10;
font-family: var(--mono, ui-monospace, monospace);
font-weight: 600;
}
/* ── Modusleiste der Transformation (über der Mitte) ─────────────────────── */