2D: Bemassungs-Werkzeug nach SIA 400 B.5.3
Neue Masslinie (shape:"dimension"): zwei Punkte + Lage der Masslinie. Folgt der Norm statt DIN-Gewohnheiten: Massbegrenzungslinien als Massstriche (doppelte Strichstärke, keine Pfeilspitzen), Masszahl mit Komma- Dezimaltrennzeichen, nie kopfüber lesbar (dreht sich automatisch). Die Masszahl wird nicht gespeichert, sondern immer aus dem aktuellen Abstand der beiden Punkte abgeleitet — bleibt beim Griff-Ziehen automatisch korrekt. Drei Griffe (beide Endpunkte + ein Griff auf der Masslinie zum Verschieben des Abstands), Verschieben/Rotieren, Georef-Rebase und Plan-Einpassen entsprechend erweitert.
This commit is contained in:
@@ -112,6 +112,8 @@ export function translateProject(project: Project, dx: number, dy: number): Proj
|
||||
return { ...d, geom: { ...g, pts: shiftAll(g.pts, dx, dy) } };
|
||||
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) } };
|
||||
case "text":
|
||||
return { ...d, geom: { ...g, at: shift(g.at, dx, dy) } };
|
||||
case "image":
|
||||
|
||||
@@ -1524,6 +1524,16 @@ export type Drawing2DGeom =
|
||||
* schliesst den Ring (letzter Wegpunkt → erster).
|
||||
*/
|
||||
| { shape: "spline"; pts: Vec2[]; closed: boolean }
|
||||
/**
|
||||
* Masslinie (lineare Bemassung, SIA 400 B.5.3): misst den Abstand `a`↔`b`.
|
||||
* `offset` ist der VORZEICHENBEHAFTETE Normalabstand (Modell-Meter, links
|
||||
* von a→b positiv), in dem die eigentliche Masslinie parallel zu a-b liegt
|
||||
* — Masshilfslinien laufen von a/b bis zu dieser Linie. Die Masszahl wird
|
||||
* beim Rendern aus `dist(a,b)` abgeleitet (nicht gespeichert), bleibt also
|
||||
* 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 }
|
||||
| {
|
||||
shape: "text";
|
||||
at: Vec2;
|
||||
|
||||
Reference in New Issue
Block a user