Fehler für Etage-VF korrigiert.
This commit is contained in:
+107
-57
@@ -40,7 +40,11 @@
|
|||||||
|
|
||||||
(setq FESTE_ETAGE_MITTE 1000)
|
(setq FESTE_ETAGE_MITTE 1000)
|
||||||
(setq ETAGE_SCHRAEG_LAENGE 700)
|
(setq ETAGE_SCHRAEG_LAENGE 700)
|
||||||
(setq ETAGE_HZ_WINKEL 60)
|
;; Schwenkwinkel der Ein-/Auslauf-Schraegsektionen: 30 Grad (AS_30/ES_30 +
|
||||||
|
;; 30-Grad-Gefaellebogen). War frueher 60. Nur noch im Laengen-/Hoehen-Budget
|
||||||
|
;; berechne-winkel-etage (schraeg-cos) verwendet; die fruehere absolute
|
||||||
|
;; hz-Platzierung wurde durch Frame-Verkettung (cur-hz) ersetzt.
|
||||||
|
(setq ETAGE_HZ_WINKEL 30)
|
||||||
|
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; TEIL 2: BIBLIOTHEK INITIALISIEREN (ETAGE-SPEZIFISCH)
|
;; TEIL 2: BIBLIOTHEK INITIALISIEREN (ETAGE-SPEZIFISCH)
|
||||||
@@ -127,8 +131,8 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Gefaellebogen_links_60 Masse extrahieren
|
;; Gefaellebogen_links_30 Masse extrahieren
|
||||||
(setq gefaelle-blockname "Gefaellebogen_links_60_R500")
|
(setq gefaelle-blockname "Gefaellebogen_links_30_R500")
|
||||||
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
||||||
(ensure-block-loaded gefaelle-blockname)
|
(ensure-block-loaded gefaelle-blockname)
|
||||||
(if (tblsearch "BLOCK" gefaelle-blockname)
|
(if (tblsearch "BLOCK" gefaelle-blockname)
|
||||||
@@ -160,8 +164,8 @@
|
|||||||
)
|
)
|
||||||
(princ (ssg-textf "vfe-gefaellebogen-links-mass" (list (rtos etage-gef-dx-links 2 2) (rtos etage-gef-dz-links 2 2))))
|
(princ (ssg-textf "vfe-gefaellebogen-links-mass" (list (rtos etage-gef-dx-links 2 2) (rtos etage-gef-dz-links 2 2))))
|
||||||
|
|
||||||
;; Gefaellebogen_rechts_60 Masse extrahieren
|
;; Gefaellebogen_rechts_30 Masse extrahieren
|
||||||
(setq gefaelle-blockname "Gefaellebogen_rechts_60_R500")
|
(setq gefaelle-blockname "Gefaellebogen_rechts_30_R500")
|
||||||
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
||||||
(ensure-block-loaded gefaelle-blockname)
|
(ensure-block-loaded gefaelle-blockname)
|
||||||
(if (tblsearch "BLOCK" gefaelle-blockname)
|
(if (tblsearch "BLOCK" gefaelle-blockname)
|
||||||
@@ -597,64 +601,83 @@
|
|||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; Gibt endpunkt zurueck.
|
;; Gibt endpunkt zurueck.
|
||||||
;; VF_*-Block-Erstellung erfolgt zentral im Dispatcher (vf_core.lsp).
|
;; VF_*-Block-Erstellung erfolgt zentral im Dispatcher (vf_core.lsp).
|
||||||
;; hz: Parameter fuer Registry-Kompatibilitaet mit variofoerderer-einfuegen
|
;; hz: Richtung der Hauptlinie (Default 0 = horizontal/X). AS-KS_EIN und
|
||||||
;; (siehe c:VarioFoerderer) - wird hier NICHT verwendet: die Etage-Anlage hat
|
;; ES-KS_AUS liegen koaxial auf dieser Linie; die Kette wird frame-verkettet
|
||||||
;; bereits eine eigene, fest verdrahtete horizontale Geometrie (hz-anfang/
|
;; aufgebaut (cur-hz laeuft durch, Boegen drehen um ihren gemessenen Schwenk).
|
||||||
;; hz-ende fuer den 60-Grad-Uebereinander-Versatz) und unterstuetzt aktuell
|
|
||||||
;; keine zusaetzliche globale Fahrtrichtung.
|
|
||||||
(defun etage-foerderanlage-einfuegen (deltaL deltaH richtung
|
(defun etage-foerderanlage-einfuegen (deltaL deltaH richtung
|
||||||
best-winkel L_GF1 L_GF2 L_VF
|
best-winkel L_GF1 L_GF2 L_VF
|
||||||
startpunkt seite hz
|
startpunkt seite hz
|
||||||
/ aktueller-punkt bogen-name endpunkt
|
/ aktueller-punkt bogen-name endpunkt
|
||||||
bogen-mass bogen-dx bogen-dz
|
bogen-mass bogen-dx bogen-dz
|
||||||
as-block es-block gefaelle-blockname
|
as-block es-block gefaelle-blockname
|
||||||
hz-vorzeichen hz-anfang hz-ende)
|
as-hz as-ksinfo
|
||||||
|
cur-hz bogen-info es-info
|
||||||
|
perp-sin perp-cos p2b-perp es-place-rad
|
||||||
|
es-wx es-wy es-perp perp-rate L-exit)
|
||||||
(setq aktueller-punkt startpunkt)
|
(setq aktueller-punkt startpunkt)
|
||||||
;; Horizontalwinkel-Vorzeichen je nach Seite:
|
;; hz = Richtung der Hauptlinie (AS-KS_EIN / ES-KS_AUS liegen darauf).
|
||||||
;; rechts: Anfang +60 Grad (links), Ende -60 Grad (rechts)
|
;; Default 0 (horizontal), falls der Aufrufer nichts uebergibt.
|
||||||
;; links: Anfang -60 Grad, Ende +60 Grad
|
(if (null hz) (setq hz 0.0))
|
||||||
(setq hz-vorzeichen (if (= seite "rechts") 1 -1))
|
(setq hz (float hz))
|
||||||
(setq hz-anfang (* hz-vorzeichen ETAGE_HZ_WINKEL))
|
|
||||||
(setq hz-ende (* (- hz-vorzeichen) ETAGE_HZ_WINKEL))
|
|
||||||
(setq as-block (strcat "AS_Element_30_" seite))
|
(setq as-block (strcat "AS_Element_30_" seite))
|
||||||
(setq es-block (strcat "ES_Element_30_" seite))
|
(setq es-block (strcat "ES_Element_30_" seite))
|
||||||
|
;; Gefaellebogen auf der GEGENSEITE des AS-Elements (Nutzer-Vorgabe
|
||||||
|
;; 2026-07-21): AS links -> Boegen rechts, AS rechts -> Boegen links.
|
||||||
|
;; Beide Etage-Boegen nutzen dieselbe (Gegen-)Seite.
|
||||||
(setq gefaelle-blockname
|
(setq gefaelle-blockname
|
||||||
(if (= seite "rechts")
|
(if (= seite "rechts")
|
||||||
"Gefaellebogen_rechts_60_R500"
|
"Gefaellebogen_links_30_R500"
|
||||||
"Gefaellebogen_links_60_R500"
|
"Gefaellebogen_rechts_30_R500"
|
||||||
))
|
))
|
||||||
;; Sentinel: Bibliothek neu initialisieren wenn Bloecke fehlen
|
;; Sentinel: Bibliothek neu initialisieren wenn Bloecke fehlen
|
||||||
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts")))
|
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts")))
|
||||||
(setq *etage-lib-initialized* nil))
|
(setq *etage-lib-initialized* nil))
|
||||||
(if (not *etage-lib-initialized*) (init-bibliothek-etage))
|
(if (not *etage-lib-initialized*) (init-bibliothek-etage))
|
||||||
|
|
||||||
;; 1. AS_30
|
;; 1. AS_30 - KS_EIN koaxial zur Hauptlinie (hz) ausrichten.
|
||||||
|
;; vf-element-ks-info liefert (ein-ang aus-ang vx vy): ein-ang/aus-ang sind die
|
||||||
|
;; Ebenen-Winkel der KS_EIN- bzw. KS_AUS-Achse IM BLOCK (bei Einbau-Rotation 0).
|
||||||
|
;; Platzierungs-hz = (hz - ein-ang) dreht die KS_EIN-Achse von ein-ang auf hz
|
||||||
|
;; -> KS_EIN liegt koaxial auf der Hauptlinie (Abnahmekriterium).
|
||||||
(princ (ssg-textf "vfe-step1-as30" (list as-block)))
|
(princ (ssg-textf "vfe-step1-as30" (list as-block)))
|
||||||
(setq aktueller-punkt (insert-block-by-ks as-block aktueller-punkt 0.0))
|
(setq as-ksinfo (vf-element-ks-info as-block))
|
||||||
|
(setq aktueller-punkt
|
||||||
|
(insert-block-by-ks as-block aktueller-punkt (- hz (car as-ksinfo))))
|
||||||
|
;; KS_AUS-Richtung (absolut) = hz + Schwenk (aus-ang - ein-ang); die folgende
|
||||||
|
;; GF laeuft in dieser Richtung weiter (Frame-Verkettung wie im Linienzug).
|
||||||
|
(setq as-hz (+ hz (- (cadr as-ksinfo) (car as-ksinfo))))
|
||||||
|
|
||||||
;; 2. Staustrecke 400mm (hz-anfang, 3 Grad vert, KS_EIN)
|
;; 2. Staustrecke 400mm (folgt der AS-Richtung as-hz, 3 Grad vert, KS_EIN)
|
||||||
(princ (ssg-textf "vfe-step2" (list (itoa hz-anfang))))
|
(princ (ssg-textf "vfe-step2" (list (rtos as-hz 2 1))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-hz-scaled-block-by-ks "Staustrecke_SP_1000_mm" aktueller-punkt
|
(insert-hz-scaled-block-by-ks "Staustrecke_SP_1000_mm" aktueller-punkt
|
||||||
400 hz-anfang 3))
|
400 as-hz 3))
|
||||||
|
|
||||||
;; 3. Separator (hz-anfang, 3 Grad vert)
|
;; 3. Separator (folgt der AS-Richtung as-hz, 3 Grad vert)
|
||||||
(princ (ssg-textf "vfe-step3" (list (itoa hz-anfang))))
|
(princ (ssg-textf "vfe-step3" (list (rtos as-hz 2 1))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-hz-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
|
(insert-hz-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
|
||||||
hz-anfang 3 300 0))
|
as-hz 3 300 0))
|
||||||
|
|
||||||
;; 4. Gefaellebogen Anfang (hz-anfang, 0 Grad vert, KS_EIN)
|
;; Ab hier laufende Richtung cur-hz mitfuehren (frame-verkettet). Start =
|
||||||
(princ (ssg-textf "vfe-step4" (list gefaelle-blockname (itoa hz-anfang))))
|
;; KS_AUS-Richtung des AS (as-hz). Jeder Gefaellebogen dreht cur-hz um seinen
|
||||||
|
;; gemessenen Schwenk (Vorzeichen/Seite kommen aus dem Block).
|
||||||
|
(setq cur-hz as-hz)
|
||||||
|
|
||||||
|
;; 4. Gefaellebogen Anfang (verkettet: KS_EIN auf cur-hz, dann cur-hz drehen)
|
||||||
|
(setq bogen-info (vf-element-ks-info gefaelle-blockname))
|
||||||
|
(princ (ssg-textf "vfe-step4" (list gefaelle-blockname (rtos cur-hz 2 1))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-hz-rotated-block-by-ks gefaelle-blockname aktueller-punkt hz-anfang 0))
|
(insert-hz-rotated-block-by-ks gefaelle-blockname aktueller-punkt
|
||||||
|
(- cur-hz (car bogen-info)) 0))
|
||||||
|
(setq cur-hz (+ cur-hz (- (cadr bogen-info) (car bogen-info))))
|
||||||
|
|
||||||
;; 5. L_GF1 (3 Grad geneigt)
|
;; 5. L_GF1 (3 Grad geneigt)
|
||||||
(if (> L_GF1 0.1)
|
(if (> L_GF1 0.1)
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-step5-strecke" (list (rtos L_GF1 2 2))))
|
(princ (ssg-textf "vfe-step5-strecke" (list (rtos L_GF1 2 2))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt L_GF1 3 0.0))
|
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt L_GF1 3 cur-hz))
|
||||||
)
|
)
|
||||||
(princ (ssg-text "vfe-step5-skip"))
|
(princ (ssg-text "vfe-step5-skip"))
|
||||||
)
|
)
|
||||||
@@ -662,7 +685,7 @@
|
|||||||
;; 6. Umlenkstation (3 Grad geneigt)
|
;; 6. Umlenkstation (3 Grad geneigt)
|
||||||
(princ (ssg-text "vfe-step6"))
|
(princ (ssg-text "vfe-step6"))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-rotated-block-with-ks "Vario_Umlenkstation_500mm" aktueller-punkt 3 500 0 0.0))
|
(insert-rotated-block-with-ks "Vario_Umlenkstation_500mm" aktueller-punkt 3 500 0 cur-hz))
|
||||||
|
|
||||||
;; 7. 1. Vertikalbogen (3 Grad geneigt)
|
;; 7. 1. Vertikalbogen (3 Grad geneigt)
|
||||||
(if (= richtung "Auf")
|
(if (= richtung "Auf")
|
||||||
@@ -678,7 +701,7 @@
|
|||||||
(setq bogen-dx (car bogen-mass) bogen-dz (caddr bogen-mass))
|
(setq bogen-dx (car bogen-mass) bogen-dz (caddr bogen-mass))
|
||||||
(princ (ssg-textf "vfe-step7" (list bogen-name)))
|
(princ (ssg-textf "vfe-step7" (list bogen-name)))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-rotated-block-with-ks bogen-name aktueller-punkt 3 bogen-dx bogen-dz 0.0))
|
(insert-rotated-block-with-ks bogen-name aktueller-punkt 3 bogen-dx bogen-dz cur-hz))
|
||||||
|
|
||||||
;; 8. Variable Strecke L_VF
|
;; 8. Variable Strecke L_VF
|
||||||
(if (> L_VF 0.1)
|
(if (> L_VF 0.1)
|
||||||
@@ -688,13 +711,13 @@
|
|||||||
(princ (ssg-textf "vfe-step8-auf" (list (itoa (- (- best-winkel 3))) (rtos L_VF 2 2))))
|
(princ (ssg-textf "vfe-step8-auf" (list (itoa (- (- best-winkel 3))) (rtos L_VF 2 2))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
|
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
|
||||||
L_VF (- (- best-winkel 3)) 0.0))
|
L_VF (- (- best-winkel 3)) cur-hz))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-step8-ab" (list (itoa (+ best-winkel 3)) (rtos L_VF 2 2))))
|
(princ (ssg-textf "vfe-step8-ab" (list (itoa (+ best-winkel 3)) (rtos L_VF 2 2))))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
|
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
|
||||||
L_VF (+ best-winkel 3) 0.0))
|
L_VF (+ best-winkel 3) cur-hz))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -719,56 +742,83 @@
|
|||||||
" (" (itoa (- 3 best-winkel)) " Grad geneigt)"))
|
" (" (itoa (- 3 best-winkel)) " Grad geneigt)"))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-rotated-block-with-ks bogen-name aktueller-punkt
|
(insert-rotated-block-with-ks bogen-name aktueller-punkt
|
||||||
(- 3 best-winkel) bogen-dx bogen-dz 0.0))
|
(- 3 best-winkel) bogen-dx bogen-dz cur-hz))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(princ (strcat "\n\n9/15: " bogen-name
|
(princ (strcat "\n\n9/15: " bogen-name
|
||||||
" (" (itoa (+ best-winkel 3)) " Grad geneigt)"))
|
" (" (itoa (+ best-winkel 3)) " Grad geneigt)"))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-rotated-block-with-ks bogen-name aktueller-punkt
|
(insert-rotated-block-with-ks bogen-name aktueller-punkt
|
||||||
(+ best-winkel 3) bogen-dx bogen-dz 0.0))
|
(+ best-winkel 3) bogen-dx bogen-dz cur-hz))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; 10. Motorstation (3 Grad geneigt)
|
;; 10. Motorstation (3 Grad geneigt)
|
||||||
(princ "\n\n10/15: Motorstation (500mm, 3 Grad geneigt)")
|
(princ "\n\n10/15: Motorstation (500mm, 3 Grad geneigt)")
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-rotated-block-with-ks "Vario_Motorstation_500mm" aktueller-punkt 3 500 0 0.0))
|
(insert-rotated-block-with-ks "Vario_Motorstation_500mm" aktueller-punkt 3 500 0 cur-hz))
|
||||||
|
|
||||||
;; 11. L_GF2 (3 Grad geneigt)
|
;; 11. L_GF2 (3 Grad geneigt)
|
||||||
(if (> L_GF2 0.1)
|
(if (> L_GF2 0.1)
|
||||||
(progn
|
(progn
|
||||||
(princ (strcat "\n\n11/15: Gefaellestrecke (3 Grad, L=" (rtos L_GF2 2 2) " mm)"))
|
(princ (strcat "\n\n11/15: Gefaellestrecke (3 Grad, L=" (rtos L_GF2 2 2) " mm)"))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt L_GF2 3 0.0))
|
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt L_GF2 3 cur-hz))
|
||||||
)
|
)
|
||||||
(princ "\n\n11/15: L_GF2 (uebersprungen)")
|
(princ "\n\n11/15: L_GF2 (uebersprungen)")
|
||||||
)
|
)
|
||||||
|
|
||||||
;; 12. Gefaellebogen Ende (via KS_EIN, 0 Grad vert)
|
;; 12. Gefaellebogen Ende (verkettet: KS_EIN auf cur-hz, dann cur-hz drehen)
|
||||||
(princ (strcat "\n\n12/15: " gefaelle-blockname " (Ende, KS_EIN)"))
|
(setq bogen-info (vf-element-ks-info gefaelle-blockname))
|
||||||
(setq aktueller-punkt (insert-block-by-ks gefaelle-blockname aktueller-punkt 0.0))
|
(princ (strcat "\n\n12/15: " gefaelle-blockname
|
||||||
|
" (Ende, verkettet cur-hz=" (rtos cur-hz 2 1) ")"))
|
||||||
;; 13. Separator Ende (hz-ende, 3 Grad vert)
|
|
||||||
(princ (strcat "\n\n13/15: Separator (300mm, "
|
|
||||||
(itoa hz-ende) " Grad hz, 3 Grad vert)"))
|
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-hz-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
|
(insert-block-by-ks gefaelle-blockname aktueller-punkt (- cur-hz (car bogen-info))))
|
||||||
hz-ende 3 300 0))
|
(setq cur-hz (+ cur-hz (- (cadr bogen-info) (car bogen-info))))
|
||||||
|
|
||||||
;; 14. Staustrecke 400mm Ende (hz-ende, 3 Grad vert, KS_EIN)
|
;; --- Auslauf RUECKWAERTS vom ES gerechnet (analog Linienzug Modus 2):
|
||||||
(princ (strcat "\n\n14/15: Staustrecke 400mm ("
|
;; die Auslauf-Staustrecke wird variabel, sodass das ES-KS_AUS OHNE
|
||||||
(itoa hz-ende) " Grad hz, 3 Grad vert, KS_EIN)"))
|
;; seitlichen Versatz auf der Hauptachse landet. Reihenfolge (Nutzer-Vorgabe):
|
||||||
|
;; Staustrecke -> Separator -> ES.
|
||||||
|
(setq es-info (vf-element-ks-info es-block))
|
||||||
|
;; perp = Einheitsvektor senkrecht zur Hauptlinie hz: (-sin hz, cos hz)
|
||||||
|
(setq perp-sin (sin (* hz (/ pi 180.0)))
|
||||||
|
perp-cos (cos (* hz (/ pi 180.0))))
|
||||||
|
;; seitliche Lage nach Bogen2 (perp-Abstand des aktuellen Punkts zu startpunkt)
|
||||||
|
(setq p2b-perp (+ (* (- (car aktueller-punkt) (car startpunkt)) (- perp-sin))
|
||||||
|
(* (- (cadr aktueller-punkt) (cadr startpunkt)) perp-cos)))
|
||||||
|
;; ES-Eigenversatz KS_EIN->KS_AUS (Block vx/vy) in Auslaufrichtung gedreht -> perp
|
||||||
|
(setq es-place-rad (* (- cur-hz (car es-info)) (/ pi 180.0)))
|
||||||
|
(setq es-wx (- (* (caddr es-info) (cos es-place-rad)) (* (cadddr es-info) (sin es-place-rad))))
|
||||||
|
(setq es-wy (+ (* (caddr es-info) (sin es-place-rad)) (* (cadddr es-info) (cos es-place-rad))))
|
||||||
|
(setq es-perp (+ (* es-wx (- perp-sin)) (* es-wy perp-cos)))
|
||||||
|
;; perp-Auslenkung pro Laengeneinheit bei cur-hz (Neigung 3 Grad)
|
||||||
|
(setq perp-rate (* (cos (* 3.0 (/ pi 180.0)))
|
||||||
|
(sin (* (- cur-hz hz) (/ pi 180.0)))))
|
||||||
|
;; Loesen: p2b-perp + (L_exit + 300)*perp-rate + es-perp = 0
|
||||||
|
(setq L-exit
|
||||||
|
(if (> (abs perp-rate) 1e-6)
|
||||||
|
(- (/ (- (+ p2b-perp es-perp)) perp-rate) 300.0)
|
||||||
|
400.0))
|
||||||
|
(if (< L-exit 50.0) (setq L-exit 50.0)) ; Schutz gegen negative/zu kurze GF
|
||||||
|
|
||||||
|
;; 13. Auslauf-Staustrecke (variabel, folgt cur-hz, 3 Grad vert, KS_EIN)
|
||||||
|
(princ (strcat "\n\n13/15: Staustrecke (variabel L=" (rtos L-exit 2 1)
|
||||||
|
", cur-hz=" (rtos cur-hz 2 1) ")"))
|
||||||
(setq aktueller-punkt
|
(setq aktueller-punkt
|
||||||
(insert-hz-scaled-block-by-ks "Staustrecke_SP_1000_mm" aktueller-punkt
|
(insert-hz-scaled-block-by-ks "Staustrecke_SP_1000_mm" aktueller-punkt
|
||||||
400 hz-ende 3))
|
L-exit cur-hz 3))
|
||||||
|
|
||||||
;; 15. ES_30 (hz-ende, 0 Grad vert)
|
;; 14. Separator (verkettet, folgt cur-hz, 3 Grad vert)
|
||||||
(princ (strcat "\n\n15/15: " es-block
|
(princ (strcat "\n\n14/15: Separator (300mm, cur-hz=" (rtos cur-hz 2 1) ")"))
|
||||||
" (Ende, " (itoa hz-ende) " Grad hz, 0 Grad vert)"))
|
(setq aktueller-punkt
|
||||||
|
(insert-hz-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
|
||||||
|
cur-hz 3 300 0))
|
||||||
|
|
||||||
|
;; 15. ES_30 (verkettet: KS_EIN auf cur-hz; KS_AUS auf der Hauptlinie)
|
||||||
|
(princ (strcat "\n\n15/15: " es-block " (Ende, verkettet cur-hz=" (rtos cur-hz 2 1) ")"))
|
||||||
(setq endpunkt
|
(setq endpunkt
|
||||||
(insert-hz-rotated-block-with-ks es-block aktueller-punkt
|
(insert-block-by-ks es-block aktueller-punkt (- cur-hz (car es-info))))
|
||||||
hz-ende 0 etage-ein-dx etage-ein-dz))
|
|
||||||
|
|
||||||
(princ "\n\n=========================================")
|
(princ "\n\n=========================================")
|
||||||
(princ "\n>>> Etage-VarioFoerderer eingefuegt! <<<")
|
(princ "\n>>> Etage-VarioFoerderer eingefuegt! <<<")
|
||||||
|
|||||||
Reference in New Issue
Block a user