2D: Masskette ist jetzt EIN Element (verlängerbar + Punkte einfügbar)
Bemassungs-Modell umgebaut: eine Reihenbemassung war bisher N unabhängige Einzel-Elemente, jetzt EIN Element mit einer Punktreihe (pts statt a/b). Alle Segmente teilen weiterhin einen Offset, aber Verschieben/Selektieren/ Löschen betrifft die ganze Kette auf einmal. Ergänzen einer bestehenden Kette folgt dem "erst selektieren, dann Befehl"- Muster (wie move/copy/offset): ist beim Start eine Masskette selektiert, sortiert der erste Klick sich per Geraden-Projektion in die Kette ein — vor dem ersten Punkt (verlängert rückwärts), nach dem letzten (verlängert vorwärts) oder zwischen zwei bestehenden Punkten (fügt ein) — und der Commit ersetzt dasselbe Element statt eine Kopie zu erzeugen.
This commit is contained in:
@@ -113,7 +113,7 @@ export function translateProject(project: Project, dx: number, dy: number): Proj
|
||||
case "spline":
|
||||
return { ...d, geom: { ...g, pts: shiftAll(g.pts, dx, dy) } };
|
||||
case "dimension":
|
||||
return { ...d, geom: { ...g, a: shift(g.a, dx, dy), b: shift(g.b, dx, dy) } };
|
||||
return { ...d, geom: { ...g, pts: shiftAll(g.pts, dx, dy) } };
|
||||
case "kote":
|
||||
return { ...d, geom: { ...g, at: shift(g.at, dx, dy) } };
|
||||
case "text":
|
||||
|
||||
+9
-1
@@ -1533,7 +1533,15 @@ export type Drawing2DGeom =
|
||||
* beim Verschieben der Griffe automatisch korrekt. Rein 2D (kein Bezug auf
|
||||
* andere Elemente — Assoziativität nur über die eigenen Endpunkte).
|
||||
*/
|
||||
| { shape: "dimension"; a: Vec2; b: Vec2; offset: number }
|
||||
/**
|
||||
* `pts.length` ≥ 2, IMMER kollinear (Werkzeug erzwingt das beim Zeichnen/
|
||||
* Ergänzen — eine Masskette ist eine Gerade, kein Zickzack-Pfad). Jedes
|
||||
* aufeinanderfolgende Punktpaar ist EIN gemessenes Segment (Reihenbemassung,
|
||||
* SIA 400 Figur 14), alle teilen denselben `offset`. EIN Element für die
|
||||
* ganze Kette (nicht mehrere) — spätere Bearbeitung kann Punkte ergänzen
|
||||
* (verlängern ODER dazwischen einfügen, s. `commands/cmds/dimension.ts`).
|
||||
*/
|
||||
| { shape: "dimension"; pts: Vec2[]; offset: number }
|
||||
/**
|
||||
* Höhenkote (SIA 400 B.5.4, Figur 18): Dreieck-Symbol + Höhenwert (Meter,
|
||||
* ±0.00-Referenz frei wählbar, s. Norm) an einem Punkt. `kind` bestimmt
|
||||
|
||||
Reference in New Issue
Block a user