[CHANGE] VF-Standard-Dialog: Geometrie-Reihenfolge angepasst (deltaL+Foerderrichtung, Einfuegehoehe+deltaH), Seite/Motorseite nebeneinander; nur Seite/Motorseite/Geruestoption bleiben Radio-Buttons, Rest wieder Combobox; Winkel/Verteilung-Dialog komplett auf Combobox zurueckgebaut (keine Radio-Variante mehr noetig)

[CHANGE] VF-Linienzug-Wizard: horizontale Kurve (GF-Bogen/Vario-Kurve) direkt nach explizit eingefuegtem AS-Element ausgegraut, da dort zuerst ein gerades Segment folgen muss

[ADD] doc/faq.md: Antworten zu VF/GF-Kombinationsfragen ergaenzt (Puffer-Umschleusung, Zielhoehe, Etagenfoerderer, Streckenueberbrueckung) + Screenshot gf-vf-kombination.png

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 14:42:06 +02:00
parent 5b873838c1
commit a6f6fcb575
6 changed files with 115 additions and 175 deletions
+22 -2
View File
@@ -1543,11 +1543,19 @@
;; VF-Kette) macht "GF-Bogen"/"Neue Linie: GF" als DIREKTE Fortsetzung keinen ;; VF-Kette) macht "GF-Bogen"/"Neue Linie: GF" als DIREKTE Fortsetzung keinen
;; Sinn (kein GF-Baustein wird an dieser Stelle einfach an ein VF-Teil ;; Sinn (kein GF-Baustein wird an dieser Stelle einfach an ein VF-Teil
;; angeflanscht) - diese beiden Optionen werden dann ausgegraut. ;; angeflanscht) - diese beiden Optionen werden dann ausgegraut.
;; as-eben-eingefuegt: T, wenn der Anwender die AS-Frage ("AS-Element
;; setzen?") explizit mit Ja beantwortet hat (as-vorhanden in
;; vf-linienzug-modus) - das AS-Element braucht danach zuerst ein GERADES
;; Segment (Linie-GF/Linie-VF/Horizontal-VF), eine horizontale Kurve direkt
;; im Anschluss (GF-Bogen/Vario-Kurve) ergibt keinen Sinn und wird ebenfalls
;; ausgegraut. Greift nur, wenn familie nicht schon "VF" ist (dort ist
;; wahl_gfbogen bereits deaktiviert); nil, wenn der Startpunkt automatisch
;; auf einer bestehenden Kette erkannt wurde (as-vorhanden dann ohnehin nil).
;; "Neue Linie BIS Kettenende" ist kein Radio mehr, sondern der eigene Button ;; "Neue Linie BIS Kettenende" ist kein Radio mehr, sondern der eigene Button
;; "abschliessen" (done_dialog 3) - er setzt slot direkt auf 6 und ignoriert ;; "abschliessen" (done_dialog 3) - er setzt slot direkt auf 6 und ignoriert
;; die aktuelle Radio-Auswahl (hat ihre eigene GF/VF-Erkennung, bleibt daher ;; die aktuelle Radio-Auswahl (hat ihre eigene GF/VF-Erkennung, bleibt daher
;; immer waehlbar, auch wenn GF-Bogen/Neue Linie: GF ausgegraut sind). ;; immer waehlbar, auch wenn GF-Bogen/Neue Linie: GF ausgegraut sind).
(defun vflw-gruppe-naechstes-element-impl (kettenanfang familie / dat ergebnis slot gwahl) (defun vflw-gruppe-naechstes-element-impl (kettenanfang familie as-eben-eingefuegt / dat ergebnis slot gwahl)
(setq dat (load_dialog (vflw-dcl-pfad))) (setq dat (load_dialog (vflw-dcl-pfad)))
(if (not (new_dialog "vflw_naechstes_element" dat)) (if (not (new_dialog "vflw_naechstes_element" dat))
(if (and dat (>= dat 0)) (unload_dialog dat)) (if (and dat (>= dat 0)) (unload_dialog dat))
@@ -1560,6 +1568,17 @@
(mode_tile "wahl_gfbogen" 1) (mode_tile "wahl_gfbogen" 1)
(mode_tile "wahl_liniegf" 1) (mode_tile "wahl_liniegf" 1)
(set_tile "wahl_variokurve" "1"))) (set_tile "wahl_variokurve" "1")))
;; Unmittelbar nach einem explizit eingefuegten AS-Element ergibt eine
;; horizontale Kurve (GF-Bogen/Vario-Kurve) als DIREKTE Fortsetzung
;; keinen Sinn - das AS-Element braucht zuerst ein gerades Segment
;; (Linie-GF/Linie-VF/Horizontal-VF). Nur relevant am Kettenanfang und
;; nur, wenn nicht schon durch familie="VF" abgedeckt (dort ist
;; wahl_gfbogen bereits deaktiviert).
(if (and kettenanfang as-eben-eingefuegt (not (equal familie "VF")))
(progn
(mode_tile "wahl_gfbogen" 1)
(mode_tile "wahl_variokurve" 1)
(set_tile "wahl_liniegf" "1")))
(action_tile "accept" (action_tile "accept"
"(setq slot (cond ((= (get_tile \"wahl_gfbogen\") \"1\") 1) "(setq slot (cond ((= (get_tile \"wahl_gfbogen\") \"1\") 1)
((= (get_tile \"wahl_variokurve\") \"1\") 2) ((= (get_tile \"wahl_variokurve\") \"1\") 2)
@@ -6608,7 +6627,8 @@
(progn (progn
(if (vfl-wizard-aktiv) (if (vfl-wizard-aktiv)
(vl-catch-all-apply 'vflw-gruppe-naechstes-element-impl (vl-catch-all-apply 'vflw-gruppe-naechstes-element-impl
(list (null frame) (if (null frame) startpunkt-familie nil)))) (list (null frame) (if (null frame) startpunkt-familie nil)
(if (null frame) as-vorhanden nil))))
(if frame (if frame
(progn (progn
(princ (ssg-text "vfl-menu-gf-bogen-1")) (princ (ssg-text "vfl-menu-gf-bogen-1"))
+54 -151
View File
@@ -863,8 +863,8 @@
;; Eintrag in "labels" (Tile-Keys "<prefix>_0".."<prefix>_(n-1)"). labels ;; Eintrag in "labels" (Tile-Keys "<prefix>_0".."<prefix>_(n-1)"). labels
;; sind bereits fertige, uebersetzte Strings (ssg-text/ssg-textf) - werden ;; sind bereits fertige, uebersetzte Strings (ssg-text/ssg-textf) - werden
;; hier nur noch fuer die DCL-Syntax escaped (ssg-dcl-label-escape). ;; hier nur noch fuer die DCL-Syntax escaped (ssg-dcl-label-escape).
;; Gemeinsam genutzt von vfs-dialog-eingabe-basis-radio UND ;; Genutzt von vfs-dialog-eingabe-basis-radio fuer die drei verbleibenden
;; vfs-dialog-winkel-verteilung-radio. ;; Radio-Gruppen (Seite, Motorseite, Geruestoption).
(defun vfs-dcl-radio-gruppe-zeilen (prefix box-label labels / zeilen i) (defun vfs-dcl-radio-gruppe-zeilen (prefix box-label labels / zeilen i)
(setq zeilen (list (setq zeilen (list
": boxed_radio_column {" ": boxed_radio_column {"
@@ -1048,9 +1048,13 @@
) )
) )
;; Basis-Eingabe (Dialog 1, Radio-Button-Variante) - siehe Kopfkommentar ;; Basis-Eingabe (Dialog 1, dynamische Variante) - siehe Kopfkommentar
;; des DCL-DIALOG-Abschnitts. Gleiche prefill-Struktur/Rueckgabe wie ;; des DCL-DIALOG-Abschnitts. Nur "Seite", "Motorseite" und "Geruestoption"
;; -popup; 'FEHLER bei technischem Fehler (Dispatcher faellt dann zurueck). ;; bleiben als Radio-Button-Gruppen (alle Optionen sofort sichtbar); alle
;; anderen Felder (Foerderrichtung, Fahrtrichtung, Darstellung 2D/3D) sind
;; wieder Comboboxen (popup_list), wie der uebrige Dialog. Gleiche
;; prefill-Struktur/Rueckgabe wie -popup; 'FEHLER bei technischem Fehler
;; (Dispatcher faellt dann zurueck).
(defun vfs-dialog-eingabe-basis-radio (prefill / zeilen dcl-pfad dat ergebnis (defun vfs-dialog-eingabe-basis-radio (prefill / zeilen dcl-pfad dat ergebnis
dlg-deltal dlg-deltah dlg-hoehe dlg-deltal dlg-deltah dlg-hoehe
dlg-richtung-idx dlg-fahrt-idx dlg-seite-idx dlg-richtung-idx dlg-fahrt-idx dlg-seite-idx
@@ -1089,31 +1093,26 @@
" label = \"Geometrie\";" " label = \"Geometrie\";"
" : row {" " : row {"
" : edit_box { key = \"deltal\"; label = \"Horizontale Distanz deltaL (mm):\"; edit_width = 10; }" " : edit_box { key = \"deltal\"; label = \"Horizontale Distanz deltaL (mm):\"; edit_width = 10; }"
" : popup_list { key = \"richtung\"; label = \"Foerderrichtung:\"; width = 16; }"
" }"
" : row {"
" : edit_box { key = \"einfuegehoehe\"; label = \"Einfuegehoehe (mm):\"; edit_width = 10; }"
" : edit_box { key = \"deltah\"; label = \"Hoehenunterschied deltaH (mm):\"; edit_width = 10; }" " : edit_box { key = \"deltah\"; label = \"Hoehenunterschied deltaH (mm):\"; edit_width = 10; }"
" }")) " }"
(setq zeilen (append zeilen
(vfs-dcl-radio-gruppe-zeilen "richtung" "Foerderrichtung:"
(list (ssg-text "vfs-dlg-richtung-auf") (ssg-text "vfs-dlg-richtung-ab")))))
(setq zeilen (append zeilen (list
" : edit_box { key = \"einfuegehoehe\"; label = \"Einfuegehoehe (mm):\"; edit_width = 10; }"
" }" " }"
" : boxed_column {" " : boxed_column {"
" label = \"Ausrichtung\";"))) " label = \"Ausrichtung\";"
(setq zeilen (append zeilen " : popup_list { key = \"fahrtrichtung\"; label = \"Fahrtrichtung:\"; width = 30; }"
(vfs-dcl-radio-gruppe-zeilen "fahrtrichtung" "Fahrtrichtung:" " : row {"))
(list (ssg-textf "gf-dlg-richtung-0" (list grad-zeichen))
(ssg-textf "gf-dlg-richtung-90" (list grad-zeichen))
(ssg-textf "gf-dlg-richtung-180" (list grad-zeichen))
(ssg-textf "gf-dlg-richtung-270" (list grad-zeichen))))))
(setq zeilen (append zeilen (setq zeilen (append zeilen
(vfs-dcl-radio-gruppe-zeilen "seite" "Seite:" (vfs-dcl-radio-gruppe-zeilen "seite" "Seite:"
(list (ssg-text "gf-dlg-rechts") (ssg-text "gf-dlg-links"))))) (list (ssg-text "gf-dlg-rechts") (ssg-text "gf-dlg-links")))))
(setq zeilen (append zeilen (setq zeilen (append zeilen
(vfs-dcl-radio-gruppe-zeilen "motorseite" "Motorseite:" (vfs-dcl-radio-gruppe-zeilen "motorseite" "Motorseite:"
(list (ssg-text "gf-dlg-rechts") (ssg-text "gf-dlg-links"))))) (list (ssg-text "gf-dlg-rechts") (ssg-text "gf-dlg-links")))))
(setq zeilen (append zeilen
(vfs-dcl-radio-gruppe-zeilen "dimension" "Darstellung (2D/3D):" (list "3D" "2D"))))
(setq zeilen (append zeilen (list (setq zeilen (append zeilen (list
" }"
" : popup_list { key = \"dimension\"; label = \"Darstellung (2D/3D):\"; width = 20; }"
" }" " }"
" : boxed_column {" " : boxed_column {"
" label = \"Geruest\";" " label = \"Geruest\";"
@@ -1141,11 +1140,30 @@
(set_tile "deltal" (if prefill (rtos (cdr (assoc "deltaL" prefill)) 2 0) "15000")) (set_tile "deltal" (if prefill (rtos (cdr (assoc "deltaL" prefill)) 2 0) "15000"))
(set_tile "deltah" (if prefill (rtos (cdr (assoc "deltaH" prefill)) 2 0) "3000")) (set_tile "deltah" (if prefill (rtos (cdr (assoc "deltaH" prefill)) 2 0) "3000"))
(set_tile "einfuegehoehe" (if prefill (rtos (cdr (assoc "einfuegehoehe" prefill)) 2 1) "0")) (set_tile "einfuegehoehe" (if prefill (rtos (cdr (assoc "einfuegehoehe" prefill)) 2 1) "0"))
(set_tile (strcat "richtung_" (itoa sel-richtung)) "1")
(set_tile (strcat "fahrtrichtung_" (itoa sel-fahrt)) "1") (start_list "richtung")
(add_list (ssg-text "vfs-dlg-richtung-auf"))
(add_list (ssg-text "vfs-dlg-richtung-ab"))
(end_list)
(set_tile "richtung" (itoa sel-richtung))
(start_list "fahrtrichtung")
(add_list (ssg-textf "gf-dlg-richtung-0" (list grad-zeichen)))
(add_list (ssg-textf "gf-dlg-richtung-90" (list grad-zeichen)))
(add_list (ssg-textf "gf-dlg-richtung-180" (list grad-zeichen)))
(add_list (ssg-textf "gf-dlg-richtung-270" (list grad-zeichen)))
(end_list)
(set_tile "fahrtrichtung" (itoa sel-fahrt))
(set_tile (strcat "seite_" (itoa sel-seite)) "1") (set_tile (strcat "seite_" (itoa sel-seite)) "1")
(set_tile (strcat "motorseite_" (itoa sel-motorseite)) "1") (set_tile (strcat "motorseite_" (itoa sel-motorseite)) "1")
(set_tile (strcat "dimension_" (itoa sel-dim)) "1")
(start_list "dimension")
(add_list "3D")
(add_list "2D")
(end_list)
(set_tile "dimension" (itoa sel-dim))
(set_tile "geruest_einzelmodul" (set_tile "geruest_einzelmodul"
(if (or (null prefill) (equal (cdr (assoc "geruest-einzelmodul" prefill)) "1")) "1" "0")) (if (or (null prefill) (equal (cdr (assoc "geruest-einzelmodul" prefill)) "1")) "1" "0"))
(set_tile (strcat "geruest_typ_" (itoa sel-geruest-typ)) "1") (set_tile (strcat "geruest_typ_" (itoa sel-geruest-typ)) "1")
@@ -1155,11 +1173,11 @@
"(setq dlg-deltal (get_tile \"deltal\"))" "(setq dlg-deltal (get_tile \"deltal\"))"
"(setq dlg-deltah (get_tile \"deltah\"))" "(setq dlg-deltah (get_tile \"deltah\"))"
"(setq dlg-hoehe (get_tile \"einfuegehoehe\"))" "(setq dlg-hoehe (get_tile \"einfuegehoehe\"))"
"(setq dlg-richtung-idx " (vfs-dcl-radio-idx-cond "richtung" 2) ")" "(setq dlg-richtung-idx (atoi (get_tile \"richtung\")))"
"(setq dlg-fahrt-idx " (vfs-dcl-radio-idx-cond "fahrtrichtung" 4) ")" "(setq dlg-fahrt-idx (atoi (get_tile \"fahrtrichtung\")))"
"(setq dlg-seite-idx " (vfs-dcl-radio-idx-cond "seite" 2) ")" "(setq dlg-seite-idx " (vfs-dcl-radio-idx-cond "seite" 2) ")"
"(setq dlg-motorseite-idx " (vfs-dcl-radio-idx-cond "motorseite" 2) ")" "(setq dlg-motorseite-idx " (vfs-dcl-radio-idx-cond "motorseite" 2) ")"
"(setq dlg-dim-idx " (vfs-dcl-radio-idx-cond "dimension" 2) ")" "(setq dlg-dim-idx (atoi (get_tile \"dimension\")))"
"(setq dlg-geruest-einzelmodul (get_tile \"geruest_einzelmodul\"))" "(setq dlg-geruest-einzelmodul (get_tile \"geruest_einzelmodul\"))"
"(setq dlg-geruest-typ-idx " (vfs-dcl-radio-idx-cond "geruest_typ" n-geruest-typ) ")" "(setq dlg-geruest-typ-idx " (vfs-dcl-radio-idx-cond "geruest_typ" n-geruest-typ) ")"
"(done_dialog 1)" "(done_dialog 1)"
@@ -1193,8 +1211,10 @@
) )
) )
;; Dispatcher: bevorzugt die Radio-Button-Variante (siehe Kopfkommentar des ;; Dispatcher: bevorzugt die dynamisch generierte Variante (Seite/
;; DCL-DIALOG-Abschnitts), Rueckfall auf -popup nur bei technischem Fehler. ;; Motorseite/Geruestoption als Radio, Rest als Combobox - siehe
;; Kopfkommentar des DCL-DIALOG-Abschnitts), Rueckfall auf die reine
;; Popup-Variante nur bei technischem Fehler.
(defun vfs-dialog-eingabe-basis (prefill / ergebnis) (defun vfs-dialog-eingabe-basis (prefill / ergebnis)
(setq ergebnis (vfs-dialog-eingabe-basis-radio prefill)) (setq ergebnis (vfs-dialog-eingabe-basis-radio prefill))
(if (eq ergebnis 'FEHLER) (vfs-dialog-eingabe-basis-popup prefill) ergebnis) (if (eq ergebnis 'FEHLER) (vfs-dialog-eingabe-basis-popup prefill) ergebnis)
@@ -1289,129 +1309,12 @@
) )
) )
;; Winkel/Verteilung-Eingabe (Dialog 2, Radio-Button-Variante) - siehe ;; Winkel/Verteilung-Eingabe: Dialog nutzt durchgaengig Comboboxen
;; Kopfkommentar des DCL-DIALOG-Abschnitts. Gleiche prefill-Struktur/ ;; (variofoerderer_winkel in dcl/variofoerderer.dcl) - keine Radio-Variante
;; Rueckgabe wie -popup; 'FEHLER bei technischem Fehler. ;; mehr noetig, da weder "winkel" noch "verteilung" als Radio bleiben
(defun vfs-dialog-winkel-verteilung-radio (gueltige-winkel ergebnis-liste staustrecke-basis prefill / ;; (siehe Kopfkommentar des DCL-DIALOG-Abschnitts).
zeilen dcl-pfad dat ergebnis w eintrag labels (defun vfs-dialog-winkel-verteilung (gueltige-winkel ergebnis-liste staustrecke-basis prefill)
sel-winkel sel-verteilung idx toggle-zeile i (vfs-dialog-winkel-verteilung-popup gueltige-winkel ergebnis-liste staustrecke-basis prefill)
dlg-winkel-idx dlg-verteilung-idx dlg-lgf1
best-winkel L_GF L_VF verteilung-modus L_GF1 L_GF2 lgf-paar)
;; Winkel-Labels vorab aufloesen - gleiche Texte wie im Popup.
(setq labels nil)
(foreach w gueltige-winkel
(setq eintrag (assoc w ergebnis-liste))
(setq labels (append labels (list
(if (= w 0)
(ssg-textf "vfs-dlg-winkel-horizontal"
(list (rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1)))
(ssg-textf "vfs-dlg-winkel-option"
(list (itoa w) grad-zeichen (rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1)))
)))
)
)
;; Vorbelegung: Winkel aus prefill (falls noch gueltig), sonst erster
;; (kleinster) gueltiger Winkel - analog der automatischen Konsolen-Wahl.
(setq sel-winkel 0 idx 0)
(if prefill
(foreach w gueltige-winkel
(if (equal w (cdr (assoc "winkel" prefill))) (setq sel-winkel idx))
(setq idx (1+ idx))
)
)
(setq sel-verteilung
(if prefill (atoi (cdr (assoc "verteilung-idx" prefill))) 0))
(setq zeilen (list
"vfs_winkel_dyn : dialog {"
" label = \"VarioFoerderer (Standard) - Winkel / Verteilung\";"
" : column {"))
(setq zeilen (append zeilen (vfs-dcl-radio-gruppe-zeilen "winkel" "Winkel:" labels)))
(setq zeilen (append zeilen (list
" : boxed_column {"
" label = \"Verteilung Gefaellestrecken (vorne/hinten)\";")))
(setq zeilen (append zeilen
(vfs-dcl-radio-gruppe-zeilen "verteilung" "Modus:"
(list (ssg-text "vfs-dlg-verteilung-1") (ssg-text "vfs-dlg-verteilung-2")
(ssg-text "vfs-dlg-verteilung-3") (ssg-text "vfs-dlg-verteilung-4")))))
(setq zeilen (append zeilen (list
" : edit_box { key = \"lgf1_manuell\"; label = \"L_GF1 vorne (mm):\"; edit_width = 10; }"
" }"
" }"
" ok_cancel;"
"}")))
(setq dcl-pfad (ssg-dcl-temp-schreiben "vfswinkel" zeilen))
(if (null dcl-pfad)
'FEHLER
(progn
(setq dat (load_dialog dcl-pfad))
(if (not (new_dialog "vfs_winkel_dyn" dat))
(progn
(if (and dat (>= dat 0)) (unload_dialog dat))
(vl-file-delete dcl-pfad)
'FEHLER
)
(progn
(set_tile (strcat "winkel_" (itoa sel-winkel)) "1")
(set_tile (strcat "verteilung_" (itoa sel-verteilung)) "1")
(set_tile "lgf1_manuell"
(if (and prefill (cdr (assoc "lgf1" prefill)))
(rtos (cdr (assoc "lgf1" prefill)) 2 1) "0"))
(mode_tile "lgf1_manuell" (if (= sel-verteilung 3) 0 1))
;; Jedes der 4 Verteilung-Radio-Tiles braucht sein EIGENES
;; action_tile (haengt bei Radio-Buttons nicht am Gruppen-Key wie
;; bisher am popup_list-Key "verteilung").
(setq toggle-zeile
"(mode_tile \"lgf1_manuell\" (if (= (get_tile \"verteilung_3\") \"1\") 0 1))")
(setq i 0)
(while (< i 4)
(action_tile (strcat "verteilung_" (itoa i)) toggle-zeile)
(setq i (1+ i))
)
(action_tile "accept"
(strcat
"(setq dlg-winkel-idx " (vfs-dcl-radio-idx-cond "winkel" (length gueltige-winkel)) ")"
"(setq dlg-verteilung-idx " (vfs-dcl-radio-idx-cond "verteilung" 4) ")"
"(setq dlg-lgf1 (get_tile \"lgf1_manuell\"))"
"(done_dialog 1)"
)
)
(action_tile "cancel" "(done_dialog 0)")
(setq ergebnis (start_dialog))
(unload_dialog dat)
(vl-file-delete dcl-pfad)
(if (= ergebnis 1)
(progn
(setq best-winkel (nth dlg-winkel-idx gueltige-winkel))
(setq eintrag (assoc best-winkel ergebnis-liste))
(setq L_GF (nth 1 eintrag) L_VF (nth 2 eintrag))
(setq verteilung-modus (itoa dlg-verteilung-idx))
(setq lgf-paar (vfs-verteilung-berechnen verteilung-modus L_GF staustrecke-basis dlg-lgf1))
(setq L_GF1 (car lgf-paar) L_GF2 (cadr lgf-paar))
(list best-winkel L_GF L_VF L_GF1 L_GF2 verteilung-modus)
)
nil
)
)
)
)
)
)
;; Dispatcher: bevorzugt die Radio-Button-Variante (siehe Kopfkommentar des
;; DCL-DIALOG-Abschnitts), Rueckfall auf -popup nur bei technischem Fehler.
(defun vfs-dialog-winkel-verteilung (gueltige-winkel ergebnis-liste staustrecke-basis prefill / ergebnis)
(setq ergebnis (vfs-dialog-winkel-verteilung-radio gueltige-winkel ergebnis-liste staustrecke-basis prefill))
(if (eq ergebnis 'FEHLER)
(vfs-dialog-winkel-verteilung-popup gueltige-winkel ergebnis-liste staustrecke-basis prefill)
ergebnis
)
) )
;; ============================================================ ;; ============================================================
+28 -22
View File
@@ -11,11 +11,15 @@
// der Werteingabe (deltaL, deltaH, Foerderrichtung, Einfuegehoehe, // der Werteingabe (deltaL, deltaH, Foerderrichtung, Einfuegehoehe,
// Fahrtrichtung, Seite, Motorseite, Dimension, Geruest, Winkel, // Fahrtrichtung, Seite, Motorseite, Dimension, Geruest, Winkel,
// GF-Verteilung) - gemeinsam genutzt von Standard UND Etage. Die // GF-Verteilung) - gemeinsam genutzt von Standard UND Etage. Die
// bevorzugten Radio-Button-Varianten (vfs_basis_dyn/vfs_winkel_dyn) // bevorzugte Variante (vfs_basis_dyn) wird zur Laufzeit generiert
// werden zur Laufzeit generiert (vfs-dialog-eingabe-basis-radio/ // (vfs-dialog-eingabe-basis-radio in vf_standard.lsp) und steht NICHT
// vfs-dialog-winkel-verteilung-radio in vf_standard.lsp) und stehen // in dieser Datei - NUR "Seite", "Motorseite" und "Geruestoption"
// NICHT in dieser Datei - diese beiden Dialoge hier sind nur noch der // bleiben dort Radio-Button-Gruppen (sofort sichtbare Optionen), alle
// Fallback, falls das Schreiben/Laden der Temp-DCL-Datei mal scheitert. // anderen Felder sind Comboboxen wie hier. variofoerderer_basis hier
// ist nur noch der Fallback, falls das Schreiben/Laden der Temp-DCL
// 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 // Die 3D-Linie-Eingabe (Modus "3D-Linie"), der Etage-Typ und die
// Linienzug-Kette selbst bleiben interaktiv (Kommandozeile bzw. eigener // Linienzug-Kette selbst bleiben interaktiv (Kommandozeile bzw. eigener
// Wizard in vf_linienzug_wizard.dcl). Der Linienzug-Modus (1/2/3/4/5) wird // Wizard in vf_linienzug_wizard.dcl). Der Linienzug-Modus (1/2/3/4/5) wird
@@ -121,24 +125,24 @@ variofoerderer_basis : dialog {
label = "Horizontale Distanz deltaL (mm):"; label = "Horizontale Distanz deltaL (mm):";
edit_width = 10; edit_width = 10;
} }
: edit_box {
key = "deltah";
label = "Hoehenunterschied deltaH (mm):";
edit_width = 10;
}
}
: row {
: popup_list { : popup_list {
key = "richtung"; key = "richtung";
label = "Foerderrichtung:"; label = "Foerderrichtung:";
width = 16; width = 16;
} }
}
: row {
: edit_box { : edit_box {
key = "einfuegehoehe"; key = "einfuegehoehe";
label = "Einfuegehoehe (mm):"; label = "Einfuegehoehe (mm):";
edit_width = 10; edit_width = 10;
} }
: edit_box {
key = "deltah";
label = "Hoehenunterschied deltaH (mm):";
edit_width = 10;
}
} }
} }
@@ -150,15 +154,17 @@ variofoerderer_basis : dialog {
label = "Fahrtrichtung:"; label = "Fahrtrichtung:";
width = 30; width = 30;
} }
: popup_list { : row {
key = "seite"; : popup_list {
label = "Seite:"; key = "seite";
width = 16; label = "Seite:";
} width = 16;
: popup_list { }
key = "motorseite"; : popup_list {
label = "Motorseite:"; key = "motorseite";
width = 16; label = "Motorseite:";
width = 16;
}
} }
: popup_list { : popup_list {
key = "dimension"; key = "dimension";
+11
View File
@@ -268,15 +268,26 @@ Unter *ILS -> Foerderer* stehen folgende Einfügemodi zur Verfügung:
#### Wie baue ich einen VF in einem Puffer mit Gefällestrecken als Umschleusung? #### Wie baue ich einen VF in einem Puffer mit Gefällestrecken als Umschleusung?
Ich baue eine Gefällestrecke und kann dann mit einem Klick einen Varioförderer daneben bauen.
![Variofoerderer dialog2](images/gf-vf-kombination.png)
*Abbildung: Erzeugung eines Varioförderers passend zur Gefällestrecke*
#### Wie baue ich einen VF zur Anfahrung einer bestimmten Höhe (Arbeitsplatz)? #### Wie baue ich einen VF zur Anfahrung einer bestimmten Höhe (Arbeitsplatz)?
Das macht man aus einer Streckengruppe aus aus mindestens einer GF und einer VF und den entsprechend nötigen Bögen. Eventuell noch die Verwendung eines horizontalen Anteils beim Varioförderer, um die Zielhöhe zu erreichen.
#### Wie baue ich einen VF als Übergang zwischen zwei verschiedenen Kreiseln (unterschiedliche Höhe und Position x/y/z) #### Wie baue ich einen VF als Übergang zwischen zwei verschiedenen Kreiseln (unterschiedliche Höhe und Position x/y/z)
Standardfall. Höhenunterschiede und Einfügehöhe einfach in Interface angeben.
#### Wie baue ich einen Förderer zu Ebenenüberquerung zwischen zwei Pufferblöcken, welche übereinander positioniert sind? #### Wie baue ich einen Förderer zu Ebenenüberquerung zwischen zwei Pufferblöcken, welche übereinander positioniert sind?
Dafür ist der sogenannte Etagenförderer vorgesehen.
#### Wie baue ich eine Strecke mit mehreren VF und Gefällestrecken hintereinander zur Überbrückung von großen Entfernungen? #### Wie baue ich eine Strecke mit mehreren VF und Gefällestrecken hintereinander zur Überbrückung von großen Entfernungen?
Dies kann nur Stückweise erfolgen, indem man ausprobiert, welche GF VF Kombination welche Länge erreicht und dabei eine gewünschte Höhe nicht überschreitet. Danach kann man die einzelnen Einheiten zu einem Mergen.
## 4. Scanner und Separator ## 4. Scanner und Separator
### 4.1 Zusammensetzung, Abhängigkeiten, Randbedingungen ### 4.1 Zusammensetzung, Abhängigkeiten, Randbedingungen
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 21 KiB