2D: Multiline-Werkzeug (Basislinie + N-1 parallele Kopien in einer Geste)

Neuer Befehl multiline.ts, baut auf derselben Offset-Geometrie auf wie der
bestehende offset-Befehl (offsetSegment) — erzeugt aber alle Kopien auf
einmal statt einzeln nacheinander offsetten zu müssen. Deckt gerade
Basislinien ab (häufigster Fall: Grenzlinie+Abstand, Leitungspaar,
Randlinien), keine mehrsegmentige Variante.

Ablauf: Start-/Endpunkt (Tab-Felder Länge/Winkel wie line.ts), dann Abstand
per Maus-Klick (Seite bestimmt Vorzeichen, wie bei offset.ts) oder getippt;
die Anzahl (Default 3, Bereich 2-6) zyklt über eine Inline-Option und bleibt
wie Abstand/Seite über Aufrufe hinweg persistent.

In Registry/Aliase (ml/parallel), ToolsPanel (COMMANDS_EDIT neben Offset),
CommandIcon, i18n de/en aufgenommen.

2 neue Tests. tsc -b / vitest run (916/916) / npm run build grün.
This commit is contained in:
2026-08-20 21:07:21 +02:00
parent 245b7d7fe1
commit 4f48b73267
7 changed files with 354 additions and 1 deletions
+6
View File
@@ -1181,6 +1181,12 @@ export const en: Record<TranslationKey, string> = {
"cmd.chamfer.label": "Chamfer",
"cmd.chamfer.pick": "Select corner:",
"cmd.chamfer.distance": "Distance:",
// Multiline: base line + N-1 parallel copies in one gesture (builds on Offset).
"cmd.multiline.label": "Parallel lines",
"cmd.multiline.start": "Start point:",
"cmd.multiline.end": "End point:",
"cmd.multiline.spacing": "Spacing/side (\"Count\" option cycles line count):",
"cmd.multiline.count": "Count",
// Edit tools Split / Join / Delete segment (keyboard: Ctrl+S / Ctrl+J /
// Alt+Click). Labels for the command line / menus.
"edit.split.label": "Split",