From a6f6fcb575ce0877559fc929fb06b1b0747b00e7 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Thu, 8 Oct 2026 14:42:06 +0200 Subject: [PATCH] [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 --- Lisp/vf_linienzug.lsp | 24 +++- Lisp/vf_standard.lsp | 205 ++++++++----------------------- dcl/variofoerderer.dcl | 50 ++++---- doc/faq.md | 11 ++ doc/images/gf-vf-kombination.png | Bin 0 -> 22836 bytes doc/images/vf-gui1.png | Bin 13327 -> 21697 bytes 6 files changed, 115 insertions(+), 175 deletions(-) create mode 100644 doc/images/gf-vf-kombination.png diff --git a/Lisp/vf_linienzug.lsp b/Lisp/vf_linienzug.lsp index 5700f6a..9670e33 100644 --- a/Lisp/vf_linienzug.lsp +++ b/Lisp/vf_linienzug.lsp @@ -1543,11 +1543,19 @@ ;; 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 ;; 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 ;; "abschliessen" (done_dialog 3) - er setzt slot direkt auf 6 und ignoriert ;; die aktuelle Radio-Auswahl (hat ihre eigene GF/VF-Erkennung, bleibt daher ;; 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))) (if (not (new_dialog "vflw_naechstes_element" dat)) (if (and dat (>= dat 0)) (unload_dialog dat)) @@ -1560,6 +1568,17 @@ (mode_tile "wahl_gfbogen" 1) (mode_tile "wahl_liniegf" 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" "(setq slot (cond ((= (get_tile \"wahl_gfbogen\") \"1\") 1) ((= (get_tile \"wahl_variokurve\") \"1\") 2) @@ -6608,7 +6627,8 @@ (progn (if (vfl-wizard-aktiv) (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 (progn (princ (ssg-text "vfl-menu-gf-bogen-1")) diff --git a/Lisp/vf_standard.lsp b/Lisp/vf_standard.lsp index 9f11549..8c3b8e9 100644 --- a/Lisp/vf_standard.lsp +++ b/Lisp/vf_standard.lsp @@ -863,8 +863,8 @@ ;; Eintrag in "labels" (Tile-Keys "_0".."_(n-1)"). labels ;; sind bereits fertige, uebersetzte Strings (ssg-text/ssg-textf) - werden ;; hier nur noch fuer die DCL-Syntax escaped (ssg-dcl-label-escape). -;; Gemeinsam genutzt von vfs-dialog-eingabe-basis-radio UND -;; vfs-dialog-winkel-verteilung-radio. +;; Genutzt von vfs-dialog-eingabe-basis-radio fuer die drei verbleibenden +;; Radio-Gruppen (Seite, Motorseite, Geruestoption). (defun vfs-dcl-radio-gruppe-zeilen (prefix box-label labels / zeilen i) (setq zeilen (list ": boxed_radio_column {" @@ -1048,9 +1048,13 @@ ) ) -;; Basis-Eingabe (Dialog 1, Radio-Button-Variante) - siehe Kopfkommentar -;; des DCL-DIALOG-Abschnitts. Gleiche prefill-Struktur/Rueckgabe wie -;; -popup; 'FEHLER bei technischem Fehler (Dispatcher faellt dann zurueck). +;; Basis-Eingabe (Dialog 1, dynamische Variante) - siehe Kopfkommentar +;; des DCL-DIALOG-Abschnitts. Nur "Seite", "Motorseite" und "Geruestoption" +;; 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 dlg-deltal dlg-deltah dlg-hoehe dlg-richtung-idx dlg-fahrt-idx dlg-seite-idx @@ -1089,31 +1093,26 @@ " label = \"Geometrie\";" " : row {" " : 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; }" - " }")) - (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 {" - " label = \"Ausrichtung\";"))) - (setq zeilen (append zeilen - (vfs-dcl-radio-gruppe-zeilen "fahrtrichtung" "Fahrtrichtung:" - (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)))))) + " label = \"Ausrichtung\";" + " : popup_list { key = \"fahrtrichtung\"; label = \"Fahrtrichtung:\"; width = 30; }" + " : row {")) (setq zeilen (append zeilen (vfs-dcl-radio-gruppe-zeilen "seite" "Seite:" (list (ssg-text "gf-dlg-rechts") (ssg-text "gf-dlg-links"))))) (setq zeilen (append zeilen (vfs-dcl-radio-gruppe-zeilen "motorseite" "Motorseite:" (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 + " }" + " : popup_list { key = \"dimension\"; label = \"Darstellung (2D/3D):\"; width = 20; }" " }" " : boxed_column {" " label = \"Geruest\";" @@ -1141,11 +1140,30 @@ (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 "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 "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" (if (or (null prefill) (equal (cdr (assoc "geruest-einzelmodul" prefill)) "1")) "1" "0")) (set_tile (strcat "geruest_typ_" (itoa sel-geruest-typ)) "1") @@ -1155,11 +1173,11 @@ "(setq dlg-deltal (get_tile \"deltal\"))" "(setq dlg-deltah (get_tile \"deltah\"))" "(setq dlg-hoehe (get_tile \"einfuegehoehe\"))" - "(setq dlg-richtung-idx " (vfs-dcl-radio-idx-cond "richtung" 2) ")" - "(setq dlg-fahrt-idx " (vfs-dcl-radio-idx-cond "fahrtrichtung" 4) ")" + "(setq dlg-richtung-idx (atoi (get_tile \"richtung\")))" + "(setq dlg-fahrt-idx (atoi (get_tile \"fahrtrichtung\")))" "(setq dlg-seite-idx " (vfs-dcl-radio-idx-cond "seite" 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-typ-idx " (vfs-dcl-radio-idx-cond "geruest_typ" n-geruest-typ) ")" "(done_dialog 1)" @@ -1193,8 +1211,10 @@ ) ) -;; Dispatcher: bevorzugt die Radio-Button-Variante (siehe Kopfkommentar des -;; DCL-DIALOG-Abschnitts), Rueckfall auf -popup nur bei technischem Fehler. +;; Dispatcher: bevorzugt die dynamisch generierte Variante (Seite/ +;; 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) (setq ergebnis (vfs-dialog-eingabe-basis-radio prefill)) (if (eq ergebnis 'FEHLER) (vfs-dialog-eingabe-basis-popup prefill) ergebnis) @@ -1289,129 +1309,12 @@ ) ) -;; Winkel/Verteilung-Eingabe (Dialog 2, Radio-Button-Variante) - siehe -;; Kopfkommentar des DCL-DIALOG-Abschnitts. Gleiche prefill-Struktur/ -;; Rueckgabe wie -popup; 'FEHLER bei technischem Fehler. -(defun vfs-dialog-winkel-verteilung-radio (gueltige-winkel ergebnis-liste staustrecke-basis prefill / - zeilen dcl-pfad dat ergebnis w eintrag labels - sel-winkel sel-verteilung idx toggle-zeile i - 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 - ) +;; Winkel/Verteilung-Eingabe: Dialog nutzt durchgaengig Comboboxen +;; (variofoerderer_winkel in dcl/variofoerderer.dcl) - keine Radio-Variante +;; mehr noetig, da weder "winkel" noch "verteilung" als Radio bleiben +;; (siehe Kopfkommentar des DCL-DIALOG-Abschnitts). +(defun vfs-dialog-winkel-verteilung (gueltige-winkel ergebnis-liste staustrecke-basis prefill) + (vfs-dialog-winkel-verteilung-popup gueltige-winkel ergebnis-liste staustrecke-basis prefill) ) ;; ============================================================ diff --git a/dcl/variofoerderer.dcl b/dcl/variofoerderer.dcl index 6ddd3ed..3e8dc24 100644 --- a/dcl/variofoerderer.dcl +++ b/dcl/variofoerderer.dcl @@ -11,11 +11,15 @@ // der Werteingabe (deltaL, deltaH, Foerderrichtung, Einfuegehoehe, // Fahrtrichtung, Seite, Motorseite, Dimension, Geruest, Winkel, // GF-Verteilung) - gemeinsam genutzt von Standard UND Etage. Die -// bevorzugten Radio-Button-Varianten (vfs_basis_dyn/vfs_winkel_dyn) -// werden zur Laufzeit generiert (vfs-dialog-eingabe-basis-radio/ -// vfs-dialog-winkel-verteilung-radio in vf_standard.lsp) und stehen -// NICHT in dieser Datei - diese beiden Dialoge hier sind nur noch der -// Fallback, falls das Schreiben/Laden der Temp-DCL-Datei mal scheitert. +// bevorzugte Variante (vfs_basis_dyn) wird zur Laufzeit generiert +// (vfs-dialog-eingabe-basis-radio in vf_standard.lsp) und steht NICHT +// in dieser Datei - NUR "Seite", "Motorseite" und "Geruestoption" +// bleiben dort Radio-Button-Gruppen (sofort sichtbare Optionen), alle +// 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 // Linienzug-Kette selbst bleiben interaktiv (Kommandozeile bzw. eigener // 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):"; edit_width = 10; } - : edit_box { - key = "deltah"; - label = "Hoehenunterschied deltaH (mm):"; - edit_width = 10; - } - } - - : row { : 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; + } } } @@ -150,15 +154,17 @@ variofoerderer_basis : dialog { label = "Fahrtrichtung:"; width = 30; } - : popup_list { - key = "seite"; - label = "Seite:"; - width = 16; - } - : popup_list { - key = "motorseite"; - label = "Motorseite:"; - width = 16; + : row { + : popup_list { + key = "seite"; + label = "Seite:"; + width = 16; + } + : popup_list { + key = "motorseite"; + label = "Motorseite:"; + width = 16; + } } : popup_list { key = "dimension"; diff --git a/doc/faq.md b/doc/faq.md index 39117ec..ae244c2 100644 --- a/doc/faq.md +++ b/doc/faq.md @@ -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? +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)? +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) +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? +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? +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.1 Zusammensetzung, Abhängigkeiten, Randbedingungen diff --git a/doc/images/gf-vf-kombination.png b/doc/images/gf-vf-kombination.png new file mode 100644 index 0000000000000000000000000000000000000000..f37f8f12a16a0960017ce965d49aa93abc744a83 GIT binary patch literal 22836 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 literal 0 HcmV?d00001 diff --git a/doc/images/vf-gui1.png b/doc/images/vf-gui1.png index e6eff0600f3d97b66e9859c5cc22dd527170e9c5..431947b1e6d040c44cfb06830b1f645543ad0667 100644 GIT binary patch literal 21697 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 literal 13327 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