Files
dxfmakros/dcl/vfl_edit_modus.dcl
T
m.stangl 43896a28f5 VF-Linienzug: Einzelsegment-Bearbeitung (GF-Bogen) + punktfreies Journal
Doppelklick auf einen Linienzug-VF_n-Block bietet jetzt zwei Modi
(neuer Dialog vfl_edit_modus.dcl / vfl-dlg-modus): auf eine Sektion
zuruecksetzen (bisheriges Verhalten) ODER die Eigenschaften EINES
einzelnen Glieds aendern (vfl-edit-glied). Fuer GF-Boegen laesst sich
Winkel (30/60/90) und Seite (links/rechts) direkt aendern; das Glied
wird per vfl-journal-splice im Ketten-Journal ersetzt und die komplette
Kette 1:1 neu aufgebaut.

Damit die nachfolgenden Glieder nach einer Bogen-Aenderung korrekt neu
verketten, speichert das Journal fuer Linien-Segmente jetzt nur noch die
relative Distanz (deltaL, neuer Journal-Kind "DL") statt eines absoluten
Punkts - nur der Kettenstartpunkt bleibt ein echter Punkt. Richtung wird
ohnehin vom Vorgaenger-Frame geerbt (nur das erste Segment journalisiert
zusaetzlich die gesnappte Richtung). vfl-in-abstand ersetzt die
punktbasierte Messung in vfl-neue-linie-messen; vfl-kettenanfang-baustein
rechnet die AS-Restlaenge rein skalar (kein pick-punkt mehr).

Wichtige Korrekturen:
- vfl-entry->string/-entry kannten den DL-Kind nicht (wurde als NIL
  serialisiert -> Distanzverlust beim erneuten Lesen)
- vfl-in-abstand journalisiert jetzt in BEIDEN Zweigen (Replay UND Live),
  wie die anderen vfl-in-*-Wrapper - sonst gingen die DL-Werte replizierter
  Glieder beim erneuten Speichern verloren (2. Edit stuerzte ab)

Diagnose: komplettes Journal wird beim Erzeugen (XDATA-JOURNAL-JSON) und
zu Beginn eines Replays (REPLAY-QUEUE-JSON) als JSON in die Debug-Datei
geschrieben (No-Op ohne aktiven Debug-Schalter).

dcl/vfl_edit.dcl: Popup breiter (edit_width/list_width), damit lange
Sektionstexte nicht abgeschnitten werden.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-27 17:51:41 +02:00

46 lines
1.4 KiB
Plaintext

// ============================================================
// vfl_edit_modus.dcl - Linienzug-Kette (VF_n, Marker "linienzug")
// per Doppelklick bearbeiten: zuerst den Modus waehlen -
// key "modus_rueck" = auf eine Sektion zuruecksetzen und ab dort
// weiterbauen (bestehendes Verhalten,
// vfl-dlg-position/vfl-journal-truncate)
// key "modus_glied" = Eigenschaften EINES einzelnen Glieds aendern,
// Rest bleibt (vfl-edit-glied)
// Aufruf ueber vfl-edit-ent -> vfl-dlg-modus (Lisp/vf_linienzug.lsp).
// Labels stehen wie in allen DCL-Files statisch (deutsch) hier - NICHT per
// set_tile gefuellt (set_tile kann das label eines radio_button ohnehin nicht
// setzen, nur den Zustand). Nur der Kopftext "kopf" wird zur Laufzeit gesetzt.
// ============================================================
vfl_edit_modus : dialog {
label = "Linienzug editieren";
: column {
: text {
key = "kopf";
label = "";
}
: boxed_radio_column {
label = "Was moechten Sie tun?";
key = "modus";
: radio_button {
key = "modus_rueck";
label = "Auf eine Sektion zuruecksetzen und ab dort neu bauen";
value = "1";
}
: radio_button {
key = "modus_glied";
label = "Nur die Eigenschaften eines einzelnen Glieds aendern";
}
}
}
ok_cancel;
}