[CHANGE] VF Standard/Etage 3D-Linie-Eingabemodus per Dialog statt Konsole (Teil A der GUI-Umstellung)
Neuer Dialog vfc_eingabemodus (dcl/variofoerderer.dcl) + vfc-dialog-eingabemodus-waehlen (Lisp/vf_core.lsp), analog zum bestehenden vfc_typ-Muster: Radio-Buttons "3D-Linie auswaehlen" / "Werte manuell eingeben" ersetzen die fruehere getstring-Konsolenabfrage in vf-dialog-ablauf. Betrifft StandardVarioFoerderer3D und EtageVarioFoerderer3D (beide rufen denselben Ablauf). Die 3D-Linie-Objektauswahl selbst (vfc-3dlinie-erfassen) bleibt bewusst Zeichnung/Konsole - eine Linie laesst sich nicht durch ein Formularfeld ersetzen. Alle daraus abgeleiteten Werte (deltaL/deltaH/hz/Einfuegehoehe) gehen als Prefill in den bereits bestehenden Basis-Dialog (variofoerderer_basis), der sie ueberschreibbar anzeigt - identisch zum "Werte manuell"-Pfad. Rueckfall auf die alte Konsolenabfrage bleibt erhalten (GUI abgeschaltet, DXFM_LANG=en_GB), wie bei vfc_typ. doc/variofoerderer.md (Abschnitt 2, 8, Entscheidungsbaum) und CLAUDE.md entsprechend aktualisiert. Manuell in BricsCAD getestet (StandardVarioFoerderer3D + EtageVarioFoerderer3D, beide Dialogzweige inkl. Abbruch) - laeuft. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+44
-2
@@ -1088,18 +1088,28 @@
|
||||
(defun vf-dialog-ablauf (typ vf-nummer horizontal-p / eingabe deltaL deltaH richtung
|
||||
z-start hz seite startpunkt startpunkt-xy dim
|
||||
geruest-einzelmodul geruest-typ motorseite
|
||||
antwort linie-erg basis-prefill abbruch)
|
||||
antwort dlg-modus linie-erg basis-prefill abbruch)
|
||||
(setq abbruch nil)
|
||||
(if *vf-vorauswahl-eingabemodus*
|
||||
(setq antwort *vf-vorauswahl-eingabemodus*
|
||||
*vf-vorauswahl-eingabemodus* nil)
|
||||
(progn
|
||||
(setq dlg-modus (vfc-dialog-eingabemodus-waehlen))
|
||||
(cond
|
||||
((eq dlg-modus 'ABBRUCH) (setq antwort "2" abbruch t))
|
||||
(dlg-modus (setq antwort dlg-modus))
|
||||
(t
|
||||
;; Dialog nicht verfuegbar/nicht erlaubt (GUI aus, andere Sprache)
|
||||
;; - alte Konsolen-Abfrage unveraendert.
|
||||
(princ (ssg-text "vfc-eingabemodus-header"))
|
||||
(princ (ssg-text "vfc-eingabemodus-3dlinie"))
|
||||
(princ (ssg-text "vfc-eingabemodus-werte"))
|
||||
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
|
||||
)
|
||||
)
|
||||
(setq abbruch nil)
|
||||
)
|
||||
)
|
||||
(if (not abbruch)
|
||||
(if (= antwort "1")
|
||||
(progn
|
||||
(setq linie-erg (vfc-3dlinie-erfassen))
|
||||
@@ -1126,6 +1136,7 @@
|
||||
(setq basis-prefill nil)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if abbruch
|
||||
(princ (ssg-text "vfc-vorgang-abgebrochen"))
|
||||
(progn
|
||||
@@ -1233,6 +1244,37 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; Eingabemodus (3D-Linie / Werte manuell) per Dialog waehlen - ersetzt die
|
||||
;; fruehere getstring-Konsolenabfrage in vf-dialog-ablauf. Gleiches Muster/
|
||||
;; gleiche Einschraenkung wie vfc-dialog-typ-waehlen: nur bei aktiver GUI und
|
||||
;; Deutsch, sonst nil (Aufrufer faellt dann auf die alte Konsolen-Abfrage
|
||||
;; zurueck). Keine "Zurueck"-Taste noetig (direkt nach der Typ-Wahl, die
|
||||
;; selbst schon ein "Zurueck" hat). Rueckgabe: "1" (3D-Linie), "2" (Werte)
|
||||
;; oder 'ABBRUCH.
|
||||
(defun vfc-dialog-eingabemodus-waehlen ( / dcl-pfad dat gmodus ergebnis)
|
||||
(if (and (or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))
|
||||
(= *ssg-lang* "de_DE"))
|
||||
(progn
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "vfc_eingabemodus" dat))
|
||||
(progn (if (and dat (>= dat 0)) (unload_dialog dat)) nil)
|
||||
(progn
|
||||
(set_tile "modus_3dlinie" "1")
|
||||
(action_tile "accept"
|
||||
"(setq gmodus (if (= (get_tile \"modus_werte\") \"1\") \"2\" \"1\"))
|
||||
(done_dialog 1)")
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
(if (= ergebnis 1) gmodus 'ABBRUCH)
|
||||
)
|
||||
)
|
||||
)
|
||||
nil
|
||||
)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; TEIL 12: DISPATCHER c:VarioFoerderer
|
||||
;; ============================================================
|
||||
|
||||
+44
-6
@@ -20,12 +20,20 @@
|
||||
// mal scheitert. variofoerderer_winkel (Winkel/Verteilung) hat KEINE
|
||||
// generierte Variante mehr und wird direkt verwendet (komplett
|
||||
// Combobox, siehe vfs-dialog-winkel-verteilung in vf_standard.lsp).
|
||||
// Die 3D-Linie-Eingabe (Modus "3D-Linie"), der Etage-Typ und die
|
||||
// Linienzug-Kette selbst bleiben interaktiv (Kommandozeile bzw. eigener
|
||||
// Wizard in vf_linienzug_wizard.dcl). Der Linienzug-Modus (1/2/3/4/5) wird
|
||||
// seit den Menue-Wrappern c:LinienzugVarioFoerderer*/c:QcLinieMitGf* nicht
|
||||
// mehr per Dialog erfragt, sondern ist je Menuepunkt fest vorbelegt - der
|
||||
// frueher hier gefuehrte Dialog vfc_linienzug_modus ist dadurch entfallen.
|
||||
// vfc_eingabemodus: Eingabemodus (3D-Linie / Werte manuell) waehlen -
|
||||
// ersetzt die Konsolen-Abfrage am Anfang von vf-dialog-ablauf fuer
|
||||
// Standard UND Etage (vfc-dialog-eingabemodus-waehlen, vf_core.lsp).
|
||||
// Die 3D-Linie SELBST (Objektauswahl) bleibt danach Zeichnung/Konsole
|
||||
// (get-line-start-end-points) - eine Linie laesst sich nicht durch ein
|
||||
// Formularfeld ersetzen; alle abgeleiteten Werte (deltaL/deltaH/hz/
|
||||
// Einfuegehoehe) landen danach als Prefill im bestehenden Basis-Dialog
|
||||
// (variofoerderer_basis), der sie ganz normal ueberschreibbar anzeigt.
|
||||
// Der Etage-Typ und die Linienzug-Kette selbst bleiben interaktiv
|
||||
// (Kommandozeile bzw. eigener Wizard in vf_linienzug_wizard.dcl). Der
|
||||
// Linienzug-Modus (1/2/3/4/5) wird seit den Menue-Wrappern
|
||||
// c:LinienzugVarioFoerderer*/c:QcLinieMitGf* nicht mehr per Dialog erfragt,
|
||||
// sondern ist je Menuepunkt fest vorbelegt - der frueher hier gefuehrte
|
||||
// Dialog vfc_linienzug_modus ist dadurch entfallen.
|
||||
// ============================================================
|
||||
|
||||
// Anlagen-Typ waehlen (Standard/Etage/Linienzug). Radio-Buttons statt
|
||||
@@ -72,6 +80,36 @@ vfc_typ : dialog {
|
||||
}
|
||||
}
|
||||
|
||||
// Eingabemodus waehlen (3D-Linie / Werte manuell) - Radio-Buttons, gleiches
|
||||
// Muster und dieselbe Sprach-/GUI-Einschraenkung wie vfc_typ oben (Labels
|
||||
// hart deutsch, Rueckfall auf Konsolen-Liste bei DXFM_LANG=en_GB oder
|
||||
// abgeschalteter GUI - siehe vfc-dialog-eingabemodus-waehlen, vf_core.lsp).
|
||||
vfc_eingabemodus : dialog {
|
||||
label = "VarioFoerderer - Eingabemodus";
|
||||
|
||||
: boxed_radio_column {
|
||||
label = "Eingabemodus waehlen:";
|
||||
key = "modus";
|
||||
|
||||
: radio_button {
|
||||
key = "modus_3dlinie";
|
||||
label = "3D-Linie auswaehlen (Start- und Endpunkt mit Hoehe)";
|
||||
value = "1";
|
||||
}
|
||||
: radio_button {
|
||||
key = "modus_werte";
|
||||
label = "Werte manuell eingeben";
|
||||
}
|
||||
}
|
||||
|
||||
: row {
|
||||
alignment = centered;
|
||||
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
||||
spacer;
|
||||
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
||||
}
|
||||
}
|
||||
|
||||
// Startpunkt der Anlage waehlen - Punktwahl-Button + Anzeige, analog
|
||||
// vflw_punkt_zahl (dcl/vf_linienzug_wizard.dcl): der Button schliesst den
|
||||
// Dialog (done_dialog 2), DANACH laeuft getpoint auf der Kommandozeile
|
||||
|
||||
+23
-21
@@ -185,12 +185,18 @@ Winkelberechnung befuellt, da seine Optionsliste von Dialog 1 abhaengt.
|
||||
| Verteilung Staustrecken | `verteilung` | Dropdown | Gleichmaessig (L_GF1=L_GF2) / Vorne Minimum, hinten Rest / Hinten Minimum, vorne Rest / Eigene Werte | Gleichmaessig |
|
||||
| L_GF1 vorne (manuell) | `lgf1_manuell` | Zahl (mm) | nur aktiv bei Verteilung "Eigene Werte" | L_GF / 2 |
|
||||
|
||||
Vorgelagert (Konsole, vor Dialog 1): Eingabemodus-Frage "3D-Linie" vs. "Werte
|
||||
manuell" — nur bei Wahl "2" oeffnen sich obige Dialoge, sonst laeuft der
|
||||
komplette [Legacy-Konsolen-Pfad](#8-legacy-konsolen-pfad). Direkt vor Dialog 1
|
||||
wird zusaetzlich der Startpunkt (X/Y) per Punktwahl gewaehlt
|
||||
(`vfs-standard-dialog-ablauf`, `Lisp/vf_standard.lsp:1069`); die Z-Hoehe kommt
|
||||
aus dem Feld "Einfuegehoehe".
|
||||
Vorgelagert: Eingabemodus-Frage "3D-Linie" vs. "Werte manuell" per DCL-Dialog
|
||||
(`vfc_eingabemodus`, `vfc-dialog-eingabemodus-waehlen` in `Lisp/vf_core.lsp`;
|
||||
Radio-Buttons wie `vfc_typ`, Rueckfall auf die alte Konsolenfrage bei
|
||||
abgeschalteter GUI oder `DXFM_LANG=en_GB`). **Beide** Antworten fuehren zu
|
||||
Dialog 1/2 oben: bei "3D-Linie" wird zuerst die Linie gewaehlt
|
||||
(`vfc-3dlinie-erfassen`, Objektauswahl bleibt Zeichnung/Konsole — eine Linie
|
||||
laesst sich nicht durch ein Formularfeld ersetzen) und deltaL/deltaH/hz/
|
||||
Einfuegehoehe gehen als Prefill in Dialog 1; bei "Werte manuell" wird nur der
|
||||
Startpunkt per Punktwahl-Dialog (`vfc-dialog-startpunkt-waehlen`) gewaehlt und
|
||||
Dialog 1 startet ohne Geometrie-Prefill. Der
|
||||
[Legacy-Konsolen-Pfad](#8-legacy-konsolen-pfad) existiert nur noch als
|
||||
Rueckfall, wenn keiner der beiden Dialoge gezeigt werden kann/darf.
|
||||
|
||||
---
|
||||
|
||||
@@ -419,9 +425,11 @@ Wiederherstellungs-Daten gehoeren ausschliesslich in die XDATA der Zeichnung.
|
||||
|
||||
## 8. Legacy-Konsolen-Pfad
|
||||
|
||||
Wird bei Standard/Etage durchlaufen, wenn auf die Eingabemodus-Frage *nicht*
|
||||
"2" getippt wird (Enter/leer faellt ebenfalls hierher zurueck) — also aktuell
|
||||
noch der Vorgabe-Pfad. Zwei Untermodi:
|
||||
Reiner Rueckfall fuer Standard/Etage: greift nur noch, wenn der Dialog
|
||||
`vfc_eingabemodus` nicht gezeigt werden kann/darf (GUI abgeschaltet,
|
||||
`DXFM_LANG=en_GB`) — im Normalfall (GUI an, Deutsch) laufen beide
|
||||
Eingabemodi inzwischen ueber den Dialog (Abschnitt 2, "Vorgelagert"). Zwei
|
||||
Untermodi:
|
||||
|
||||
**3D-Linie auswaehlen**
|
||||
|
||||
@@ -585,19 +593,13 @@ eine bereits genannte, kleinere Nummer (z.B. 34 -> 35 -> 34) sind Schleifen
|
||||
|---|---|---|---|
|
||||
| 1 | Befehl waehlen | FOERDERANLAGE / GEFAELLESTRECKE | 2, 40 |
|
||||
| 2 | Anlagen-Typ | Standard / Etage / Linienzug | 3, 3, 30 |
|
||||
| 3 | Eingabemodus (nur Standard/Etage) | Konsole / Dialog | 4, 10 |
|
||||
| 4 | Startpunkt waehlen | Punktwahl | 5 |
|
||||
| 3 | Eingabemodus (nur Standard/Etage) | Dialog `vfc_eingabemodus`: 3D-Linie / Werte manuell | 11, 4 |
|
||||
| 4 | Startpunkt waehlen | Punktwahl-Dialog | 5 |
|
||||
| 5 | Dialog "Basis" | DeltaL, DeltaH, Auf/Ab, Einfuegehoehe, Fahrtrichtung, Seite, Motorseite, 2D/3D, Geruest | 6 |
|
||||
| 6 | Winkelberechnung (automatisch) | - | 7 |
|
||||
| 7 | Dialog "Winkel/Verteilung" | Winkel, Verteilung, ggf. L_GF1 | 8 |
|
||||
| 8 | Bau (automatisch) | - | ENDE |
|
||||
| 10 | Eingabemodus Konsole | 3D-Linie / Werte | 11, 12 |
|
||||
| 11 | 3D-Linie waehlen | Objektwahl -> DeltaL/DeltaH/Fahrtrichtung automatisch | 13 |
|
||||
| 12 | Werte eingeben | DeltaL, DeltaH, Auf/Ab, Startpunkt, Fahrtrichtung | 13 |
|
||||
| 13 | Seite waehlen | rechts/links | 14 |
|
||||
| 14 | Winkel waehlen | automatisch bei 1 Treffer, sonst Liste | 16 |
|
||||
| 16 | Staustrecken-Verteilung | 4 Optionen, ggf. L_GF1 manuell | 17 |
|
||||
| 17 | Bestaetigung "Einfuegen?" | Ja/Nein | 8 |
|
||||
| 11 | 3D-Linie waehlen | Objektwahl (Zeichnung) -> DeltaL/DeltaH/Fahrtrichtung automatisch, Prefill fuer Dialog 5 | 5 |
|
||||
| 30 | Linienzug-Modus | Manuell / Pfad+Zielhoehe / Vorwaerts-Nachbau | 31, 50, 55 |
|
||||
| 31 | Startpunkt + Starthoehe | Punktwahl + Zahl | 32 |
|
||||
| 32 | AS-Element setzen? | Ja/Nein | 33, 34 |
|
||||
@@ -645,9 +647,9 @@ eine bereits genannte, kleinere Nummer (z.B. 34 -> 35 -> 34) sind Schleifen
|
||||
|
||||
### Beispiel-Abfolgen
|
||||
|
||||
- Standard, Dialog-Pfad: `1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8`
|
||||
- Standard, Legacy-Konsole mit 3D-Linie: `1 -> 2 -> 3 -> 10 -> 11 -> 13 -> 14 -> 16 -> 17 -> 8`
|
||||
- Etage, Dialog-Pfad: `1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8`
|
||||
- Standard, Werte manuell: `1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8`
|
||||
- Standard, aus 3D-Linie: `1 -> 2 -> 3 -> 11 -> 5 -> 6 -> 7 -> 8`
|
||||
- Etage, Werte manuell: `1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8`
|
||||
- Linienzug — AS-Element, GF, Auf/Ab-VF mit Zwischenkurve, Kettenende:
|
||||
`1 -> 2 -> 30 -> 31 -> 32 -> 33 -> 34 -> 36 -> 41 -> 34 -> 37 -> 42 -> 46 -> 42 -> 45`
|
||||
- Linienzug — horizontaler Anfang direkt bis Kettenende:
|
||||
|
||||
Reference in New Issue
Block a user