1d19121679
Modus 2 (Pfad+Zielhoehe) und Modus 3 (Vorwaerts-Nachbau) fassen die je Segment unmittelbar aufeinanderfolgenden Fragen (Typ + ggf. Neigung/ Vario-Winkel/Variante) in EINEM Wizard-DCL-Dialog zusammen - analog zu Modus 1. Der Dialogkopf zeigt "Segment i/n ..."; das aktuelle Pfad-Segment (LINE/ARC) wird vorher per redraw-Highlight in der Zeichnung hervorgehoben. - Neue DCL-Dialoge: vflw_seg_linie_m2, vflw_seg_linie_m3, vflw_seg_bogen - Neue Helfer: vflw-seg-*-impl (fuellen *vflw-pending*), vfl-seg-highlight, vfl-seg-kopf - Modus 3 zusaetzlich: Kettenstart- und AS-Element-Gruppen-Dialog; AS-Winkel jetzt pending-aware ueber vfl-in-value - Bogen-Dialog: vario-erlaubt-Flag (Modus 3 nur im offenen VF-Lauf), sonst wuerde die unkonsumierte Variante-Antwort ins naechste Segment lecken Alles hinter (vfl-wizard-aktiv) - bei GUI-aus (Tests) faellt alles unveraendert auf Konsole/Replay zurueck. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
367 lines
9.2 KiB
Plaintext
367 lines
9.2 KiB
Plaintext
// ============================================================
|
|
// vf_linienzug_wizard.dcl - VF Linienzug Assistent (Modus 1)
|
|
// Zwei GENERISCHE Einzel-Dialoge (vflw_zahl/vflw_wahl) fuer alle Fragen, die
|
|
// im Ablauf isoliert stehen, PLUS mehrere GRUPPEN-Dialoge weiter unten, die
|
|
// Fragen zusammenfassen, die immer unmittelbar hintereinander kommen (z.B.
|
|
// Startpunkt+Starthoehe, AS-Element Ja/Nein+Winkel+Seite). Kopfzeilen/
|
|
// Optionslisten werden zur Laufzeit befuellt, siehe vf_linienzug.lsp,
|
|
// Abschnitte "WIZARD-EINGABE" und "GRUPPEN-DIALOGE".
|
|
// Die ORIGINALEN Konsolen-Fragen (princ + getstring/getreal/getint) bleiben
|
|
// im Code stehen (de/en ueber ssg-text/lang/*.json) - Umschalten zurueck auf
|
|
// reine Konsole: (setq *vfl-wizard-mode* nil) bzw. Befehl VF_WIZARD_AUS.
|
|
// Bricht der Nutzer einen Gruppen-Dialog ab, fallen die betroffenen Fragen
|
|
// automatisch auf die Einzel-Dialoge (vflw_zahl/vflw_wahl) zurueck.
|
|
// ============================================================
|
|
|
|
// Zahlen-Eingabe (ersetzt getreal/getint). "kopf" zeigt den kompletten
|
|
// Original-Prompt-Text (inkl. Default in eckigen Klammern) als Label.
|
|
vflw_zahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 16;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Mehrfachauswahl (ersetzt eine princ-Menue-Liste + getstring/getint).
|
|
// "opts" wird zur Laufzeit per start_list/add_list mit den (bereits
|
|
// lokalisierten) Optionstexten befuellt - ein einziger Dialog fuer jede
|
|
// Options-Anzahl (2-5), analog zum bestehenden Muster in
|
|
// dcl/variofoerderer.dcl und dcl/vfl_edit.dcl.
|
|
vflw_wahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "opts";
|
|
label = "";
|
|
width = 50;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// ============================================================
|
|
// GRUPPEN-DIALOGE - fassen mehrere Fragen, die im Ablauf IMMER
|
|
// unmittelbar hintereinander kommen, in EINEM Bildschirm zusammen (statt je
|
|
// einem vflw_zahl/vflw_wahl-Dialog pro Frage). Aufgerufen aus den
|
|
// vflw-gruppe-*-Funktionen in vf_linienzug.lsp (Abschnitt "GRUPPEN-DIALOGE").
|
|
// Punktwahl-Zeile (Button + Anzeige) NUR in vflw_punkt_zahl, wo tatsaechlich
|
|
// live gepickt wird: der Button schliesst den Dialog (done_dialog 2), DANACH
|
|
// laeuft (getpoint) auf der Kommandozeile - (getpoint) direkt aus einem
|
|
// action_tile-Callback heraus (Dialog bleibt offen) funktioniert in BricsCAD
|
|
// NICHT (kein Fokuswechsel zur Zeichnung, per Test bestaetigt). Die uebrigen
|
|
// Gruppen-Dialoge (Gefaelle, Ziel-Hoehe, Horizontal-Stueck) picken KEINEN
|
|
// Punkt - der Endpunkt ist an ihrer Aufrufstelle bereits ueber
|
|
// vfl-neue-linie-messen gemessen (nur X/Y, fuer die Segmentlaenge; die Hoehe
|
|
// dort ist ein unabhaengiger Zahlenwert) - sie zeigen deshalb bewusst KEINE
|
|
// Punkt-Zeile, die faelschlich eine hier moegliche Punktwahl suggerieren
|
|
// wuerde.
|
|
// ============================================================
|
|
|
|
// Punkt + EIN Zahlenfeld, mit Punktwahl-Button (siehe oben). Nur fuer
|
|
// "Kettenstart" (Startpunkt + Starthoehe, Modus 1) und Modus 2s
|
|
// Start-/Endpunkt - "kopf"/"wlabel" werden je Aufruf per set_tile passend
|
|
// beschriftet.
|
|
vflw_punkt_zahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: row {
|
|
: button {
|
|
key = "pick";
|
|
label = "Punkt waehlen...";
|
|
fixed_width = true;
|
|
width = 18;
|
|
}
|
|
: text {
|
|
key = "pt_anzeige";
|
|
label = "(kein Punkt gewaehlt)";
|
|
}
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// AS-/ES-Element (Kettenanfang bzw. -ende): Ja/Nein-Toggle + Winkel + Seite
|
|
// in einem Bildschirm - "kopf" traegt die konkrete Frage (AS oder ES),
|
|
// "setzen" bleibt bewusst generisch beschriftet, damit derselbe Dialog fuer
|
|
// beide Faelle passt. Winkel/Seite werden deaktiviert, solange der Toggle
|
|
// aus ist.
|
|
vflw_as : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "setzen";
|
|
label = "Ja, setzen";
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Winkel + Seite. Wiederverwendet fuer GF-Bogen (3 Winkel-Optionen) UND
|
|
// ES-Element am Kettenende (2 Winkel-Optionen) - die Optionsliste wird pro
|
|
// Aufruf zur Laufzeit befuellt, die Feld-Anzahl ist in beiden Faellen gleich.
|
|
vflw_winkel_seite : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Vario-Kurve: Winkel + Seite + Variante (aussen/innen) in einem Bildschirm.
|
|
vflw_variokurve : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "variante";
|
|
label = "Variante:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Gefaelle festlegen (Linie GF): Modus (Hoehe/Winkel) + EIN Wertfeld, dessen
|
|
// Beschriftung sich je nach Modus umschaltet (Action-Tile auf "modus", siehe
|
|
// vflw-gruppe-gefaelle-impl in vf_linienzug.lsp). Kein Punkt-Feld - siehe
|
|
// Kopfkommentar oben.
|
|
vflw_gefaelle : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "modus";
|
|
label = "Eingabe als:";
|
|
width = 40;
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Horizontales Stueck: Separator-vor + Separator-nach + "Foerderer-Ende?"
|
|
// (3 Optionen) in einem Bildschirm. Kein Punkt-Feld - siehe Kopfkommentar
|
|
// oben.
|
|
vflw_horizontal : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "sepvor";
|
|
label = "Separator VOR dem Stueck";
|
|
}
|
|
: toggle {
|
|
key = "sepnach";
|
|
label = "Separator NACH dem Stueck";
|
|
}
|
|
: popup_list {
|
|
key = "istende";
|
|
label = "Foerderer-Ende:";
|
|
width = 45;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// ============================================================
|
|
// SEGMENT-GRUPPEN-DIALOGE (Modus 2 + Modus 3) - fassen die pro Segment
|
|
// aufeinanderfolgenden Fragen in EINEM Bildschirm zusammen. "kopf" zeigt
|
|
// dabei immer "Segment i/n ..." (wie die Konsolen-Frage), das jeweils
|
|
// abgefragte Segment ist zusaetzlich in der Zeichnung hervorgehoben
|
|
// (redraw-Highlight, gesetzt von vfl-seg-highlight in vf_linienzug.lsp VOR
|
|
// dem Oeffnen des Dialogs). Aufgerufen aus den vflw-seg-*-impl-Funktionen.
|
|
// ============================================================
|
|
|
|
// Modus 2, Segment "Gerade": Typ (GF/VF) + [nur bei GF aktiv] GF-Neigung.
|
|
// Das Neigungsfeld wird per action_tile auf "typ" aktiviert/deaktiviert.
|
|
vflw_seg_linie_m2 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "typ";
|
|
label = "Typ:";
|
|
width = 40;
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "GF-Neigung (Grad):";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Modus 3, Segment "Gerade": Typ (GF / VF-Ab / VF-Auf / VF-Horizontal) + EIN
|
|
// Wertfeld, dessen Beschriftung mit dem Typ umschaltet (GF -> Neigung,
|
|
// VF-Ab/Auf -> Vario-Winkel, VF-Horizontal -> Feld deaktiviert). Umschaltung
|
|
// per action_tile auf "typ" (siehe vflw-seg-linie-m3-impl).
|
|
vflw_seg_linie_m3 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "typ";
|
|
label = "Typ:";
|
|
width = 45;
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Segment "Eck/Bogen" (Modus 2 + Modus 3 identisch): Typ (GF-Bogen /
|
|
// Vario-Kurve) + [nur bei Vario-Kurve aktiv] Variante (aussen/innen). Die
|
|
// Variante-Liste wird per action_tile auf "typ" aktiviert/deaktiviert.
|
|
vflw_seg_bogen : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "typ";
|
|
label = "Typ:";
|
|
width = 40;
|
|
}
|
|
: popup_list {
|
|
key = "variante";
|
|
label = "Variante:";
|
|
width = 30;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|