[REFACTOR] VF-Cluster: Magic-Numbers auf *vfk-*-Konstanten umgestellt
vf_core/vf_standard/vf_etage/vf_linienzug referenzieren jetzt durchgaengig die zentralen *vfk-*-Konstanten aus vf_konstanten.lsp statt rohe Winkel-/ Laengen-/Toleranz-Literale (3.0 Grad, 500/300mm Stationen/Separatoren, 1000/800mm Mindestlaengen, AS/ES-Fallback-Versaetze, Text-/Label-Masse). Bereits ueber ssg-cfg-or config-gefuehrte Werte bleiben unangetastet (Config bleibt dort die aktive Quelle). vf_etage-Bogenwinkel-Inkonsistenz (fest verdrahtete Liste ohne Bezug zu *vfk-bogen-winkel*) behoben. vf_konstanten.lsp-Kommentare auf den neuen, aktiven Status aktualisiert.
This commit is contained in:
+94
-94
@@ -1438,7 +1438,7 @@
|
||||
(cond
|
||||
;; Zu kurz fuer eine VF-Einheit: Umlenkstation (500 mm) + Motorstation
|
||||
;; (500 mm) belegen zusammen 1000 mm deltaL.
|
||||
((< deltaL 1000.0) (list nil nil nil nil))
|
||||
((< deltaL *vfk-vf-mindestlaenge*) (list nil nil nil nil))
|
||||
|
||||
;; Segment ohne messbare Hoehenaenderung: kein sinnvolles VF
|
||||
((< deltaH 1.0) (list nil nil nil nil))
|
||||
@@ -1455,7 +1455,7 @@
|
||||
;; sonst -> VF (Horizontale Mitte oder diskreter Winkel)
|
||||
(t
|
||||
(setq winkel-natuerlich (* (atan (/ deltaH deltaL)) (/ 180.0 pi)))
|
||||
(if (> winkel-natuerlich 3.0)
|
||||
(if (> winkel-natuerlich *vfk-gefaelle-winkel*)
|
||||
(progn
|
||||
(setq wahl (vfl-vf-winkel deltaL deltaH "Ab"))
|
||||
(if wahl
|
||||
@@ -1504,8 +1504,8 @@
|
||||
mass2 (get-bogen-mass bogen-auf winkel)))
|
||||
(if (and mass1 mass2)
|
||||
(progn
|
||||
(setq rad5 (* 3.0 (/ pi 180.0)))
|
||||
(setq rad7 (* (float (if (= richtung "Auf") (- 3 winkel) (+ winkel 3)))
|
||||
(setq rad5 (* *vfk-gefaelle-winkel* (/ pi 180.0)))
|
||||
(setq rad7 (* (float (if (= richtung "Auf") (- *vfk-gefaelle-winkel* winkel) (+ winkel *vfk-gefaelle-winkel*)))
|
||||
(/ pi 180.0)))
|
||||
(setq bogen-x1 (+ (* (car mass1) (cos rad5)) (* (caddr mass1) (sin rad5))))
|
||||
(setq bogen-z1 (+ (* (- (car mass1)) (sin rad5)) (* (caddr mass1) (cos rad5))))
|
||||
@@ -1514,7 +1514,7 @@
|
||||
(setq cosa (cos (* winkel (/ pi 180.0)))
|
||||
sina (sin (* winkel (/ pi 180.0))))
|
||||
(setq A (- deltaL aus-dx ein-dx bogen-x1 bogen-x2 (* feste-hz cos3)))
|
||||
(setq winkel-eff (if (= richtung "Auf") (- winkel 3) (+ winkel 3)))
|
||||
(setq winkel-eff (if (= richtung "Auf") (- winkel *vfk-gefaelle-winkel*) (+ winkel *vfk-gefaelle-winkel*)))
|
||||
(setq cosEff (cos (* winkel-eff (/ pi 180.0)))
|
||||
sinEff (sin (* winkel-eff (/ pi 180.0))))
|
||||
(if (= richtung "Auf")
|
||||
@@ -1551,7 +1551,7 @@
|
||||
(defun vfl-vf-machbar-p (deltaL deltaH richtung / horizontal-info save-ausdx save-ausdz ergebnis)
|
||||
(if (or (not *lib-initialized*) (null bogen-auf)) (init-bibliothek))
|
||||
(cond
|
||||
((< deltaL 1000.0) nil)
|
||||
((< deltaL *vfk-vf-mindestlaenge*) nil)
|
||||
((< deltaH 1.0) nil)
|
||||
((= richtung "Auf")
|
||||
(setq save-ausdx aus-dx save-ausdz aus-dz)
|
||||
@@ -1579,7 +1579,7 @@
|
||||
;; Rueckgabe: deltaH (mm) oder nil, wenn in diesem Bereich nichts baubar ist.
|
||||
(defun vfl-vf-min-deltah (deltaL richtung / schritt grenze h gefunden)
|
||||
(setq schritt 10.0)
|
||||
(setq grenze (/ deltaL 3.0))
|
||||
(setq grenze (/ deltaL *vfk-gefaelle-winkel*))
|
||||
(setq h schritt gefunden nil)
|
||||
(while (and (not gefunden) (<= h grenze))
|
||||
(if (vfl-vf-machbar-p deltaL h richtung)
|
||||
@@ -1648,17 +1648,17 @@
|
||||
(setq aus-dx 0.0 aus-dz 0.0)
|
||||
(setq ergebnis
|
||||
(cond
|
||||
((< deltaL 800.0) nil)
|
||||
((< deltaL *vfk-kettenende-mindestlaenge*) nil)
|
||||
((< deltaH 1.0)
|
||||
(setq horizontal-info (berechne-horizontale-mitte deltaL deltaH "Ab"))
|
||||
(and horizontal-info (caddr horizontal-info) t))
|
||||
((= richtung "Auf")
|
||||
(vfl-winkel-machbar-p deltaL deltaH "Auf" 800.0))
|
||||
(vfl-winkel-machbar-p deltaL deltaH "Auf" *vfk-feste-horizontal-kettenende*))
|
||||
(t
|
||||
(setq horizontal-info (berechne-horizontale-mitte deltaL deltaH "Ab"))
|
||||
(if (and horizontal-info (caddr horizontal-info))
|
||||
t
|
||||
(vfl-winkel-machbar-p deltaL deltaH "Ab" 800.0)))
|
||||
(vfl-winkel-machbar-p deltaL deltaH "Ab" *vfk-feste-horizontal-kettenende*)))
|
||||
)
|
||||
)
|
||||
(setq aus-dx save-ausdx aus-dz save-ausdz)
|
||||
@@ -1669,7 +1669,7 @@
|
||||
;; vfl-body-zerlegung statt vfl-vf-entscheidung).
|
||||
(defun vfl-body-min-deltah (deltaL richtung / schritt grenze h gefunden)
|
||||
(setq schritt 10.0)
|
||||
(setq grenze (/ deltaL 3.0))
|
||||
(setq grenze (/ deltaL *vfk-gefaelle-winkel*))
|
||||
(setq h schritt gefunden nil)
|
||||
(while (and (not gefunden) (<= h grenze))
|
||||
(if (vfl-body-machbar-p deltaL h richtung)
|
||||
@@ -1704,10 +1704,10 @@
|
||||
;; (500 mm) belegen zusammen 1000 mm deltaL - darunter ist kein VF baubar.
|
||||
;; Also nur GF moeglich, und GF ist mindestens 3 Grad geneigt -> fest 3 Grad.
|
||||
;; Steigend geht mit einer Gefaellestrecke nicht -> nicht baubar.
|
||||
((< deltaL 1000.0)
|
||||
((< deltaL *vfk-vf-mindestlaenge*)
|
||||
(if (= richtung "Auf")
|
||||
(list nil nil nil nil)
|
||||
(list "GF" 3.0 nil nil)))
|
||||
(list "GF" *vfk-gefaelle-winkel* nil nil)))
|
||||
|
||||
;; Segment ohne messbare Hoehenaenderung: weder Gefaelle noch sinnvolles VF
|
||||
((< deltaH 1.0) (list nil nil nil nil))
|
||||
@@ -1721,8 +1721,8 @@
|
||||
;; sonst -> VF (vfl-vf-entscheidung)
|
||||
(t
|
||||
(setq winkel-natuerlich (* (atan (/ deltaH deltaL)) (/ 180.0 pi)))
|
||||
(if (<= (abs (- winkel-natuerlich 3.0)) *vfl-gf-winkel-toleranz*)
|
||||
(list "GF" 3.0 nil nil)
|
||||
(if (<= (abs (- winkel-natuerlich *vfk-gefaelle-winkel*)) *vfl-gf-winkel-toleranz*)
|
||||
(list "GF" *vfk-gefaelle-winkel* nil nil)
|
||||
(vfl-vf-entscheidung deltaL deltaH richtung))
|
||||
)
|
||||
)
|
||||
@@ -1890,7 +1890,7 @@
|
||||
(setq ergebnis nil fertig t)
|
||||
(progn
|
||||
(setq deltaL (car erg) hz-aktuell (cdr erg))
|
||||
(if (> deltaL 25000.0)
|
||||
(if (> deltaL *vfk-segment-maximallaenge*)
|
||||
(princ (ssg-textf "vfl-fehler-laenge-max" (list (rtos (/ deltaL 1000.0) 2 2))))
|
||||
(progn
|
||||
(setq ergebnis (list deltaL hz-aktuell))
|
||||
@@ -1926,7 +1926,7 @@
|
||||
;; automatisches Einfuegen einer Zwischen-Motorstation.
|
||||
(defun vfl-20m-check (p-umlenk p-akt / laenge)
|
||||
(setq laenge (vfl-planar-dist p-umlenk p-akt))
|
||||
(if (> laenge 20000.0)
|
||||
(if (> laenge *vfk-motorabstand-warnung*)
|
||||
(princ (ssg-textf "vfl-20m-hinweis" (list (rtos (/ laenge 1000.0) 2 2))))
|
||||
)
|
||||
)
|
||||
@@ -1944,14 +1944,14 @@
|
||||
;; nil => auf 3-Grad-Basis. Damit wird der Uebergang auf_3/ab_3 nur dann gesetzt,
|
||||
;; wenn wirklich ein Neigungswechsel noetig ist.
|
||||
(defun vfl-frame-flach-p (frame)
|
||||
(< (abs (cadr (frame->hz-winkel frame))) 1.5))
|
||||
(< (abs (cadr (frame->hz-winkel frame))) *vfk-frame-flach-toleranz*))
|
||||
|
||||
;; Separator (300 mm) HORIZONTAL (0 Grad) an einen Punkt anfuegen - fuer das
|
||||
;; horizontale Stueck, wo der Separator in der 0-Grad-Ebene liegt (NICHT auf der
|
||||
;; 3-Grad-Basis wie vfl-insert-separator). Rueckgabe: Endpunkt.
|
||||
(defun vfl-sep-hz (pt hz / ep)
|
||||
(princ (ssg-text "vfl-sep-horizontal-info"))
|
||||
(setq ep (gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" pt hz 0 300 0))
|
||||
(setq ep (gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" pt hz 0 *vfk-separator-laenge* 0))
|
||||
(setq *vfl-acc-separator* (1+ *vfl-acc-separator*))
|
||||
ep)
|
||||
|
||||
@@ -2005,7 +2005,7 @@
|
||||
(princ (ssg-text "vfl-nein"))
|
||||
(setq sep-vor (= (vfl-menu (ssg-text "vfl-prompt-wahl-1-2-def2")
|
||||
(list (ssg-text "vfl-ja") (ssg-text "vfl-nein")) 2 "vfl-sep-vor-frage") "1"))
|
||||
(if (and ziel-modus sep-vor) (setq dL (max 100.0 (- dL 300.0))))
|
||||
(if (and ziel-modus sep-vor) (setq dL (max *vfk-restlaenge-min-clamp* (- dL *vfk-separator-laenge*))))
|
||||
;; auf_3-Eintritt nur, wenn noch NICHT flach (sonst flache Zone fortsetzen).
|
||||
;; dL ist die gewuenschte Reststrecke AB HIER (pt) - der reale Bogen-
|
||||
;; Fussabdruck (gemessen, nicht aus der Tabellen-Masse geschaetzt - die
|
||||
@@ -2018,7 +2018,7 @@
|
||||
(princ (ssg-text "vfl-bogen-auf3-uebergang"))
|
||||
(setq pt (insert-rotated-block-with-ks "Vario_Bogen_auf_3_TEF_rechts" pt
|
||||
(ssg-cfg-or "vario" "gefaelle_winkel" 3) (car m1) (caddr m1) hz))
|
||||
(setq dL (max 100.0 (- dL (vfl-projiziere-distanz pt-vor-bogen pt hz))))))
|
||||
(setq dL (max *vfk-restlaenge-min-clamp* (- dL (vfl-projiziere-distanz pt-vor-bogen pt hz))))))
|
||||
;; Separator NACH abfragen (noch nicht bauen) - im Ziel-Modus VOR der
|
||||
;; Laengenberechnung, damit der Fussabdruck feststeht.
|
||||
(princ (ssg-text "vfl-sep-nach-frage"))
|
||||
@@ -2026,7 +2026,7 @@
|
||||
(princ (ssg-text "vfl-nein"))
|
||||
(setq sep-nach (= (vfl-menu (ssg-text "vfl-prompt-wahl-1-2-def2")
|
||||
(list (ssg-text "vfl-ja") (ssg-text "vfl-nein")) 2 "vfl-sep-nach-frage") "1"))
|
||||
(if (and ziel-modus sep-nach) (setq dL (max 100.0 (- dL 300.0))))
|
||||
(if (and ziel-modus sep-nach) (setq dL (max *vfk-restlaenge-min-clamp* (- dL *vfk-separator-laenge*))))
|
||||
;; Im Ziel-Modus: "Ist der Endpunkt der Foerderer?" JETZT abfragen (statt
|
||||
;; erst danach in der Aufruferschleife) - der Ausgangs-Fussabdruck
|
||||
;; (Vario_Bogen_ab_3 + Motorstation) wird nur reserviert, wenn tatsaechlich
|
||||
@@ -2044,11 +2044,11 @@
|
||||
"vfl-ist-endpunkt-frage"))
|
||||
(cond
|
||||
((= ist-ende-antwort "1")
|
||||
(setq dL (max 100.0 (- dL (car (get-bogen-mass bogen-ab 3)) 500.0
|
||||
(setq dL (max *vfk-restlaenge-min-clamp* (- dL (car (get-bogen-mass bogen-ab (fix *vfk-gefaelle-winkel*))) *vfk-stations-laenge*
|
||||
(* (if gf2-laenge gf2-laenge 0.0)
|
||||
(cos (* 3.0 (/ pi 180.0))))))))
|
||||
(cos (* *vfk-gefaelle-winkel* (/ pi 180.0))))))))
|
||||
((= ist-ende-antwort "3")
|
||||
(setq dL (max 100.0 (- dL (car (get-bogen-mass bogen-ab 3)) 500.0))))
|
||||
(setq dL (max *vfk-restlaenge-min-clamp* (- dL (car (get-bogen-mass bogen-ab (fix *vfk-gefaelle-winkel*))) *vfk-stations-laenge*))))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2088,11 +2088,11 @@
|
||||
(if (or (not *lib-initialized*) (null bogen-auf)) (init-bibliothek))
|
||||
;; Budget-Globals temporaer auf den Mid-Body-Fall umbiegen (mit Restore).
|
||||
(setq save-ausdx aus-dx save-ausdz aus-dz save-feste FESTE_HORIZONTAL)
|
||||
(setq aus-dx 0.0 aus-dz 0.0 FESTE_HORIZONTAL 800.0)
|
||||
(setq aus-dx 0.0 aus-dz 0.0 FESTE_HORIZONTAL *vfk-feste-horizontal-kettenende*)
|
||||
(setq res
|
||||
(cond
|
||||
;; kuerzer als Motor(500)+Separator(300): kein Abschluss baubar
|
||||
((< deltaL 800.0) (list nil nil nil nil))
|
||||
((< deltaL *vfk-kettenende-mindestlaenge*) (list nil nil nil nil))
|
||||
;; praktisch flach: horizontales VF + GF2
|
||||
((< deltaH 1.0)
|
||||
(setq horizontal-info (berechne-horizontale-mitte deltaL deltaH "Ab"))
|
||||
@@ -2101,18 +2101,18 @@
|
||||
(list nil nil nil nil)))
|
||||
;; steigend: nur gewinkeltes VF + GF2 moeglich
|
||||
((= richtung "Auf")
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Auf" 800.0))))
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Auf" *vfk-feste-horizontal-kettenende*))))
|
||||
(if wahl (list "VF" (nth 0 wahl) (nth 1 wahl) (nth 2 wahl)) (list nil nil nil nil)))
|
||||
;; fallend: natuerlichen Neigungswinkel gegen die 3-Grad-Eigenneigung pruefen
|
||||
(t
|
||||
(setq winkel-natuerlich (* (atan (/ deltaH deltaL)) (/ 180.0 pi)))
|
||||
(cond
|
||||
;; ~3 Grad -> reine GF2 (kein Koerper, GF2 traegt Laenge + 3-Grad-Absenkung)
|
||||
((<= (abs (- winkel-natuerlich 3.0)) *vfl-gf-winkel-toleranz*)
|
||||
(list "GF" 3.0 nil nil))
|
||||
((<= (abs (- winkel-natuerlich *vfk-gefaelle-winkel*)) *vfl-gf-winkel-toleranz*)
|
||||
(list "GF" *vfk-gefaelle-winkel* nil nil))
|
||||
;; steiler als 3 Grad -> Stufe 1: gewinkeltes VF + GF2 (GF2 variiert mit Winkel)
|
||||
((> winkel-natuerlich 3.0)
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Ab" 800.0))))
|
||||
((> winkel-natuerlich *vfk-gefaelle-winkel*)
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Ab" *vfk-feste-horizontal-kettenende*))))
|
||||
(if wahl (list "VF" (nth 0 wahl) (nth 1 wahl) (nth 2 wahl)) (list nil nil nil nil)))
|
||||
;; flacher als 3 Grad -> Stufe 2: horizontales VF + GF2
|
||||
(t
|
||||
@@ -2120,7 +2120,7 @@
|
||||
(if (and horizontal-info (caddr horizontal-info))
|
||||
(list "VF" 0 (car horizontal-info) (cadr horizontal-info))
|
||||
(progn
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Ab" 800.0))))
|
||||
(setq wahl (vfl-waehle-winkel (nth 3 (berechne-alle-winkel deltaL deltaH "Ab" *vfk-feste-horizontal-kettenende*))))
|
||||
(if wahl (list "VF" (nth 0 wahl) (nth 1 wahl) (nth 2 wahl)) (list nil nil nil nil)))))))))
|
||||
;; Budget-Globals zuruecksetzen
|
||||
(setq aus-dx save-ausdx aus-dz save-ausdz FESTE_HORIZONTAL save-feste)
|
||||
@@ -2205,7 +2205,7 @@
|
||||
(setq gf2
|
||||
(cond ((and lgf (> lgf 0.0)) lgf)
|
||||
((= typ "GF")
|
||||
(max 0.0 (- (/ (- dL (abs (if ein-dx ein-dx 576.0))) (cos rad3)) 800.0)))
|
||||
(max 0.0 (- (/ (- dL (abs (if ein-dx ein-dx *vfk-as-es-fallback-dx*))) (cos rad3)) *vfk-feste-horizontal-kettenende*)))
|
||||
(t 0.0)))
|
||||
(if (and (> gf2 0.0) (< gf2 *vfl-gf-min-laenge*))
|
||||
(progn
|
||||
@@ -2265,7 +2265,7 @@
|
||||
;; berechnung gestellt (siehe dortiger Kommentar) - die Antwort kommt
|
||||
;; hier zurueck, damit die Schleife unten sie nicht nochmal erfragt.
|
||||
(setq res-h (vfl-baue-horizontal-koerper frame hz1
|
||||
(max 100.0 (- L_VF1 (vfl-projiziere-distanz entry-start p-umlenk hz1)))
|
||||
(max *vfk-restlaenge-min-clamp* (- L_VF1 (vfl-projiziere-distanz entry-start p-umlenk hz1)))
|
||||
t L_GF2-bau))
|
||||
(setq frame (car res-h) vor-antwort (cadr res-h))
|
||||
)
|
||||
@@ -2709,7 +2709,7 @@
|
||||
(setq hz (car (frame->hz-winkel frame)))
|
||||
(setq w (ssg-cfg-or "vario" "gefaelle_winkel" 3))
|
||||
(setq sep-endpunkt
|
||||
(gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" (car frame) hz w 300 0))
|
||||
(gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" (car frame) hz w *vfk-separator-laenge* 0))
|
||||
(setq *vfl-acc-separator* (1+ *vfl-acc-separator*))
|
||||
(make-frame-from-dir sep-endpunkt (hz-winkel->xu hz w))
|
||||
)
|
||||
@@ -2727,7 +2727,7 @@
|
||||
w-eff sep-endpunkt sep-frame)
|
||||
(setq w-eff (if (= typ "GF") winkel (ssg-cfg-or "vario" "gefaelle_winkel" 3)))
|
||||
(setq sep-endpunkt
|
||||
(gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" (car frame) hz w-eff 300 0))
|
||||
(gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm" (car frame) hz w-eff *vfk-separator-laenge* 0))
|
||||
(setq sep-frame (make-frame-from-dir sep-endpunkt (hz-winkel->xu hz w-eff)))
|
||||
(if (boundp '*vfl-acc-separator*)
|
||||
(setq *vfl-acc-separator* (1+ *vfl-acc-separator*))) ; Separator vor ES
|
||||
@@ -3149,7 +3149,7 @@
|
||||
(setq frame (nth 0 erg) deltaL (nth 1 erg) p-aktuell (car frame))
|
||||
)
|
||||
)
|
||||
(if (< deltaL 1000.0)
|
||||
(if (< deltaL *vfk-vf-mindestlaenge*)
|
||||
(progn
|
||||
(princ (ssg-text "vfl-fehler-horizontal-vf-kurz"))
|
||||
(if dbg-an
|
||||
@@ -3340,7 +3340,7 @@
|
||||
(setq frame (nth 0 erg) deltaL (nth 1 erg) p-aktuell (car frame))
|
||||
)
|
||||
)
|
||||
(if (< deltaL 1000.0)
|
||||
(if (< deltaL *vfk-vf-mindestlaenge*)
|
||||
(princ (ssg-text "vfl-fehler-vf-kurz"))
|
||||
(progn
|
||||
(setq hoehe-vorschlaege (vfl-vf-hoehe-vorschlaege (caddr p-aktuell) deltaL))
|
||||
@@ -3434,11 +3434,11 @@
|
||||
;; sich damit fest aus deltaH = deltaL*tan(3 Grad).
|
||||
;; Im Kettenende-Modus (Option 4) wird IMMER nach der Zielhoehe
|
||||
;; gefragt (Kurzsegment-Automatik hier ueberspringen).
|
||||
(if (and (< deltaL 1000.0) (not linie-ende-modus))
|
||||
(if (and (< deltaL *vfk-vf-mindestlaenge*) (not linie-ende-modus))
|
||||
(progn
|
||||
(setq typ "GF" winkel 3.0 richtung "Ab" L_GF nil L_VF nil)
|
||||
(setq deltaH (* deltaL (/ (sin (* 3.0 (/ pi 180.0)))
|
||||
(cos (* 3.0 (/ pi 180.0))))))
|
||||
(setq typ "GF" winkel *vfk-gefaelle-winkel* richtung "Ab" L_GF nil L_VF nil)
|
||||
(setq deltaH (* deltaL (/ (sin (* *vfk-gefaelle-winkel* (/ pi 180.0)))
|
||||
(cos (* *vfk-gefaelle-winkel* (/ pi 180.0))))))
|
||||
(setq hoehe-neu (- (caddr p-aktuell) deltaH))
|
||||
(princ (ssg-textf "vfl-info-kurzes-segment"
|
||||
(list (rtos deltaL 2 0) (rtos deltaH 2 1))))
|
||||
@@ -3471,9 +3471,9 @@
|
||||
(progn
|
||||
(setq rad3 (* (float (ssg-cfg-or "vario" "gefaelle_winkel" 3))
|
||||
(/ pi 180.0)))
|
||||
(setq deltaL (max 1.0 (- deltaL (* 300.0 (cos rad3))
|
||||
(setq deltaL (max 1.0 (- deltaL (* *vfk-separator-laenge* (cos rad3))
|
||||
(abs (if ein-dx ein-dx 0.0)))))
|
||||
(setq deltaH (max 0.0 (- deltaH (* 300.0 (sin rad3))
|
||||
(setq deltaH (max 0.0 (- deltaH (* *vfk-separator-laenge* (sin rad3))
|
||||
(abs (if ein-dz ein-dz 0.0)))))
|
||||
(princ (ssg-textf "vfl-info-kettenende-footprint"
|
||||
(list (rtos deltaL 2 0) (rtos deltaH 2 0))))
|
||||
@@ -4378,17 +4378,17 @@
|
||||
(dbgflush)))
|
||||
|
||||
;; --- 4. Eck-Winkel-Vorpruefung (vor dem Bau) ---
|
||||
(setq ecke-bad (vfl2-pruefe-eckwinkel kette 5.0))
|
||||
(setq ecke-bad (vfl2-pruefe-eckwinkel kette *vfk-eckwinkel-toleranz*))
|
||||
(if ecke-bad
|
||||
(progn
|
||||
(alert (ssg-textf "vfl-vwnb-alert-eckwinkel" (list (rtos ecke-bad 2 1))))
|
||||
(exit)))
|
||||
|
||||
;; --- 5. Setup ---
|
||||
(setq aus (if aus-dx aus-dx 576.0) ein (if ein-dx ein-dx 576.0))
|
||||
(setq aus (if aus-dx aus-dx *vfk-as-es-fallback-dx*) ein (if ein-dx ein-dx *vfk-as-es-fallback-dx*))
|
||||
(setq rad3 (* (float (ssg-cfg-or "vario" "gefaelle_winkel" 3)) (/ pi 180.0)))
|
||||
;; Entry-Fussabdruck (planar) einer VF-Einheit: GF1(Basis)+Separator(300)+Umlenk(500)
|
||||
(setq ent-fp (* (+ *vfl-gf-min-laenge* 300.0 500.0) (cos rad3)))
|
||||
(setq ent-fp (* (+ *vfl-gf-min-laenge* *vfk-separator-laenge* *vfk-stations-laenge*) (cos rad3)))
|
||||
(setq run-typ nil)
|
||||
(setq vfl-nummer (vf-next-number))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
@@ -4430,9 +4430,9 @@
|
||||
(progn (setq frame (vfl2-vf-close frame (car (frame->hz-winkel frame))))
|
||||
(setq run-typ nil)))
|
||||
(setq winkel (vfl-in-real (ssg-text "vfl-m3-prompt-gf-neigung")))
|
||||
(if (null winkel) (setq winkel 3.0))
|
||||
(if (> winkel 3.0)
|
||||
(progn (princ (ssg-text "vfl-m3-hinweis-gf-max")) (setq winkel 3.0)))
|
||||
(if (null winkel) (setq winkel *vfk-gefaelle-winkel*))
|
||||
(if (> winkel *vfk-gefaelle-winkel*)
|
||||
(progn (princ (ssg-text "vfl-m3-hinweis-gf-max")) (setq winkel *vfk-gefaelle-winkel*)))
|
||||
(if (null frame)
|
||||
(setq frame (vfl2-insert-as-gf startpunkt hz winkel as-seite)))
|
||||
(setq deltaL laenge)
|
||||
@@ -4441,8 +4441,8 @@
|
||||
(setq deltaL (- deltaL
|
||||
(+ (* (- (car (car frame)) (car startpunkt)) (cos (* hz (/ pi 180.0))))
|
||||
(* (- (cadr (car frame)) (cadr startpunkt)) (sin (* hz (/ pi 180.0))))))))
|
||||
(if (= i last-line) (setq deltaL (- deltaL 300.0 ein)))
|
||||
(setq deltaL (max 100.0 deltaL))
|
||||
(if (= i last-line) (setq deltaL (- deltaL *vfk-separator-laenge* ein)))
|
||||
(setq deltaL (max *vfk-restlaenge-min-clamp* deltaL))
|
||||
(setq frame (vfl-insert-gf-segment (car frame) hz deltaL winkel))
|
||||
(vfl-acc-gf-seg (/ deltaL (cos (* winkel (/ pi 180.0)))) winkel)
|
||||
(setq anzahl-gf (1+ anzahl-gf) letzt-winkel winkel run-typ "GF"))
|
||||
@@ -4464,7 +4464,7 @@
|
||||
(if dbg-an (progn (dbgmsg "Vario-Winkel (gesnapt):") (dbg 'best-w) (dbgflush)))))
|
||||
(setq L_VF laenge)
|
||||
(if just-open (setq L_VF (- L_VF ent-fp))) ; Entry-Fussabdruck reservieren
|
||||
(setq L_VF (max 100.0 L_VF))
|
||||
(setq L_VF (max *vfk-restlaenge-min-clamp* L_VF))
|
||||
(setq frame (vfl-frame-3grad (vfs-vf-koerper (car frame) richtn best-w L_VF hz) hz))
|
||||
(vfl-acc-vf-seg richtn best-w L_VF)
|
||||
(setq anzahl-vf (1+ anzahl-vf) run-typ "VF"))))
|
||||
@@ -4509,7 +4509,7 @@
|
||||
(setq frame (vfl-insert-es-element "VF" frame (car (frame->hz-winkel frame))
|
||||
0.0 (caddr (car frame)) es-seite)))
|
||||
(setq frame (vfl-insert-es-element "GF" frame (car (frame->hz-winkel frame))
|
||||
(if letzt-winkel letzt-winkel 3.0) (caddr (car frame)) es-seite)))
|
||||
(if letzt-winkel letzt-winkel *vfk-gefaelle-winkel*) (caddr (car frame)) es-seite)))
|
||||
|
||||
;; --- 8. Block + Ist-Ziel-Report ---
|
||||
(setq hoehe-bis (caddr (car frame)))
|
||||
@@ -4606,14 +4606,14 @@
|
||||
;; 300+ein-fp, GF-Bogen bei Neigung). Eintritts-Neigung = 3 Grad (die Bruecke
|
||||
;; endet mit GF2 auf 3 Grad). So wird die Junction-Hoehe exakt statt geschaetzt.
|
||||
(defun vfl3-dback (plan start-idx n last-idx ein-fp / i seg drop inc w dL rad)
|
||||
(setq drop 0.0 inc 3.0 i start-idx)
|
||||
(setq drop 0.0 inc *vfk-gefaelle-winkel* i start-idx)
|
||||
(while (< i n)
|
||||
(setq seg (nth i plan))
|
||||
(cond
|
||||
((= (car seg) "Linie")
|
||||
(setq w (nth 4 seg) dL (caddr seg))
|
||||
(if (= i last-idx) (setq dL (- dL 300.0 ein-fp)))
|
||||
(setq dL (max 100.0 dL))
|
||||
(if (= i last-idx) (setq dL (- dL *vfk-separator-laenge* ein-fp)))
|
||||
(setq dL (max *vfk-restlaenge-min-clamp* dL))
|
||||
(setq rad (* (float w) (/ pi 180.0)))
|
||||
(setq drop (+ drop (* dL (/ (sin rad) (cos rad)))))
|
||||
(setq inc w))
|
||||
@@ -4623,7 +4623,7 @@
|
||||
(setq i (1+ i)))
|
||||
;; Auslauf-Separator (300 mm bei aktueller Neigung inc) + ES-Eigen-dz
|
||||
(setq rad (* (float inc) (/ pi 180.0)))
|
||||
(setq drop (+ drop (* 300.0 (/ (sin rad) (cos rad)))))
|
||||
(setq drop (+ drop (* *vfk-separator-laenge* (/ (sin rad) (cos rad)))))
|
||||
(setq drop (+ drop (abs (if ein-dz ein-dz 65.0))))
|
||||
drop)
|
||||
|
||||
@@ -4635,20 +4635,20 @@
|
||||
;; verifiziert). So ist die Hoehe rein rechnerisch bestimmt -> Kletterlaenge folgt.
|
||||
(defun vfl3-einheit-fix-dz (w n-climb n-hor gf1 richtung /
|
||||
pi180 rad3 s3 tot m1 m2 r1 r2 dz1 dz2)
|
||||
(setq pi180 (/ pi 180.0) rad3 (* 3.0 pi180) s3 (sin rad3) tot 0.0)
|
||||
(setq pi180 (/ pi 180.0) rad3 (* *vfk-gefaelle-winkel* pi180) s3 (sin rad3) tot 0.0)
|
||||
;; feste 3-Grad-Teile senken immer ab (GF1 + Separator + Umlenk + Motor)
|
||||
(setq tot (- tot (* (+ (float gf1) 300.0 500.0 500.0) s3)))
|
||||
(setq tot (- tot (* (+ (float gf1) *vfk-separator-laenge* *vfk-stations-laenge* *vfk-stations-laenge*) s3)))
|
||||
;; Kletterer-Boegen (Rotationen wie vfs-vf-koerper: 1. Bogen @3, 2. Bogen @(3-w)/(w+3))
|
||||
(if (= richtung "Auf")
|
||||
(setq m1 (get-bogen-mass bogen-auf w) r1 rad3
|
||||
m2 (get-bogen-mass bogen-ab w) r2 (* (- 3 w) pi180))
|
||||
m2 (get-bogen-mass bogen-ab w) r2 (* (- *vfk-gefaelle-winkel* w) pi180))
|
||||
(setq m1 (get-bogen-mass bogen-ab w) r1 rad3
|
||||
m2 (get-bogen-mass bogen-auf w) r2 (* (+ w 3) pi180)))
|
||||
m2 (get-bogen-mass bogen-auf w) r2 (* (+ w *vfk-gefaelle-winkel*) pi180)))
|
||||
(setq dz1 (+ (* (- (car m1)) (sin r1)) (* (caddr m1) (cos r1))))
|
||||
(setq dz2 (+ (* (- (car m2)) (sin r2)) (* (caddr m2) (cos r2))))
|
||||
(setq tot (+ tot (* n-climb (+ dz1 dz2))))
|
||||
;; Horizontal-Mitte-Koerper: auf_3@3 + ab_3@0
|
||||
(setq m1 (get-bogen-mass bogen-auf 3) m2 (get-bogen-mass bogen-ab 3))
|
||||
(setq m1 (get-bogen-mass bogen-auf (fix *vfk-gefaelle-winkel*)) m2 (get-bogen-mass bogen-ab (fix *vfk-gefaelle-winkel*)))
|
||||
(setq dz1 (+ (* (- (car m1)) (sin rad3)) (* (caddr m1) (cos rad3))))
|
||||
(setq dz2 (caddr m2))
|
||||
(setq tot (+ tot (* n-hor (+ dz1 dz2))))
|
||||
@@ -4661,17 +4661,17 @@
|
||||
;; Dient der Winkelwahl: Fussabdruck + Kletter-Planlaenge soll die Lauflaenge treffen.
|
||||
(defun vfl3-einheit-fix-dx (w n-climb n-hor gf1 richtung /
|
||||
pi180 rad3 tot m1 m2 r1 r2 dx1 dx2)
|
||||
(setq pi180 (/ pi 180.0) rad3 (* 3.0 pi180) tot 0.0)
|
||||
(setq tot (* (+ (float gf1) 300.0 500.0 500.0) (cos rad3))) ; Stationen planar
|
||||
(setq pi180 (/ pi 180.0) rad3 (* *vfk-gefaelle-winkel* pi180) tot 0.0)
|
||||
(setq tot (* (+ (float gf1) *vfk-separator-laenge* *vfk-stations-laenge* *vfk-stations-laenge*) (cos rad3))) ; Stationen planar
|
||||
(if (= richtung "Auf")
|
||||
(setq m1 (get-bogen-mass bogen-auf w) r1 rad3
|
||||
m2 (get-bogen-mass bogen-ab w) r2 (* (- 3 w) pi180))
|
||||
m2 (get-bogen-mass bogen-ab w) r2 (* (- *vfk-gefaelle-winkel* w) pi180))
|
||||
(setq m1 (get-bogen-mass bogen-ab w) r1 rad3
|
||||
m2 (get-bogen-mass bogen-auf w) r2 (* (+ w 3) pi180)))
|
||||
m2 (get-bogen-mass bogen-auf w) r2 (* (+ w *vfk-gefaelle-winkel*) pi180)))
|
||||
(setq dx1 (+ (* (car m1) (cos r1)) (* (caddr m1) (sin r1))))
|
||||
(setq dx2 (+ (* (car m2) (cos r2)) (* (caddr m2) (sin r2))))
|
||||
(setq tot (+ tot (* n-climb (+ dx1 dx2))))
|
||||
(setq m1 (get-bogen-mass bogen-auf 3) m2 (get-bogen-mass bogen-ab 3))
|
||||
(setq m1 (get-bogen-mass bogen-auf (fix *vfk-gefaelle-winkel*)) m2 (get-bogen-mass bogen-ab (fix *vfk-gefaelle-winkel*)))
|
||||
(setq dx1 (+ (* (car m1) (cos rad3)) (* (caddr m1) (sin rad3)))) ; auf_3 @ 3
|
||||
(setq dx2 (car m2)) ; ab_3 @ 0
|
||||
(setq tot (+ tot (* n-hor (+ dx1 dx2))))
|
||||
@@ -4717,7 +4717,7 @@
|
||||
(if (null info)
|
||||
(- (+ (* (- (car endp) (car pt)) (cos (* seg-hz (/ pi 180.0))))
|
||||
(* (- (cadr endp) (cadr pt)) (sin (* seg-hz (/ pi 180.0)))))
|
||||
(+ 196.0 (* (+ 800.0 gf2) (cos rad3)))) ; Fallback: Along-Naeherung
|
||||
(+ 196.0 (* (+ *vfk-feste-horizontal-kettenende* gf2) (cos rad3)))) ; Fallback: Along-Naeherung
|
||||
(progn
|
||||
(setq theta (* seg-hz (/ pi 180.0)))
|
||||
(setq dpx (cos theta) dpy (sin theta)) ; seg-hz Richtung
|
||||
@@ -4730,7 +4730,7 @@
|
||||
(setq perp-es (+ (* vwx npx) (* vwy npy)))
|
||||
(setq ua (* (+ seg-hz (- (cadr info) (car info))) (/ pi 180.0))) ; KS_AUS-Achse
|
||||
(setq na-x (- (sin ua)) na-y (cos ua)) ; senkrecht zur KS_AUS-Achse
|
||||
(setq cc (+ 196.0 (* (+ 800.0 gf2) (cos rad3)) along-es))
|
||||
(setq cc (+ 196.0 (* (+ *vfk-feste-horizontal-kettenende* gf2) (cos rad3)) along-es))
|
||||
(setq dp-na (+ (* dpx na-x) (* dpy na-y)))
|
||||
(setq np-na (+ (* npx na-x) (* npy na-y)))
|
||||
(setq ep-na (+ (* (- (car endp) (car pt)) na-x) (* (- (cadr endp) (cadr pt)) na-y)))
|
||||
@@ -4875,7 +4875,7 @@
|
||||
(if (null kette)
|
||||
(progn (princ (ssg-text "vfl-m3-fehler-nicht-sortierbar")) (exit)))
|
||||
(setq segmente (gf-analysiere-kette kette))
|
||||
(setq ecke-bad (vfl2-pruefe-eckwinkel kette 5.0))
|
||||
(setq ecke-bad (vfl2-pruefe-eckwinkel kette *vfk-eckwinkel-toleranz*))
|
||||
(if ecke-bad
|
||||
(progn
|
||||
(alert (ssg-textf "vfl-m3-alert-eckwinkel" (list (rtos ecke-bad 2 1))))
|
||||
@@ -4907,9 +4907,9 @@
|
||||
(setq plan (cons (list "Linie" hz laenge "VF" nil) plan))
|
||||
(progn
|
||||
(setq winkel (vfl-in-real (ssg-text "vfl-m3-prompt-gf-neigung")))
|
||||
(if (null winkel) (setq winkel 3.0))
|
||||
(if (> winkel 3.0)
|
||||
(progn (princ (ssg-text "vfl-m3-hinweis-gf-max")) (setq winkel 3.0)))
|
||||
(if (null winkel) (setq winkel *vfk-gefaelle-winkel*))
|
||||
(if (> winkel *vfk-gefaelle-winkel*)
|
||||
(progn (princ (ssg-text "vfl-m3-hinweis-gf-max")) (setq winkel *vfk-gefaelle-winkel*)))
|
||||
(setq plan (cons (list "Linie" hz laenge "GF" winkel) plan)))))))
|
||||
((= typ "Bogen")
|
||||
(setq bwinkel (nth 3 seg) bseite (nth 4 seg))
|
||||
@@ -5010,7 +5010,7 @@
|
||||
(princ (ssg-textf "vfl-m3-bruecke-richtung" (list richtn)))
|
||||
(princ (ssg-text "vfl-m3-vf-angetrieben"))
|
||||
(princ (ssg-textf "vfl-m3-mittlere-neigung" (list (rtos req-w 2 1))))
|
||||
(if (> req-w 51.0)
|
||||
(if (> req-w *vfk-vario-winkel-max*)
|
||||
(princ (ssg-text "vfl-m3-warnung-zu-steil"))
|
||||
(princ (ssg-text "vfl-m3-vario-bereich-ok")))
|
||||
|
||||
@@ -5022,8 +5022,8 @@
|
||||
;; Nummerierung + Akkumulatoren + AS/ES-Fussabdruecke. Ohne AS-Element (aus-
|
||||
;; vorhanden=nil) faellt der Fussabdruck weg - die Kette beginnt direkt am
|
||||
;; Startpunkt, also 0 statt Block-/Fallback-Mass.
|
||||
(setq aus (if as-vorhanden (if aus-dx aus-dx 576.0) 0.0)
|
||||
ein (if es-vorhanden (if ein-dx ein-dx 576.0) 0.0))
|
||||
(setq aus (if as-vorhanden (if aus-dx aus-dx *vfk-as-es-fallback-dx*) 0.0)
|
||||
ein (if es-vorhanden (if ein-dx ein-dx *vfk-as-es-fallback-dx*) 0.0))
|
||||
(setq vfl-nummer (vf-next-number))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
(vfl-acc-reset)
|
||||
@@ -5079,7 +5079,7 @@
|
||||
(setq deltaL (- deltaL
|
||||
(+ (* (- (car (car frame)) (car startpunkt)) (cos (* hz (/ pi 180.0))))
|
||||
(* (- (cadr (car frame)) (cadr startpunkt)) (sin (* hz (/ pi 180.0))))))))
|
||||
(setq deltaL (max 100.0 deltaL))
|
||||
(setq deltaL (max *vfk-restlaenge-min-clamp* deltaL))
|
||||
(setq frame (vfl-insert-gf-segment (car frame) hz deltaL winkel))
|
||||
(vfl-acc-gf-seg (/ deltaL (cos (* winkel (/ pi 180.0)))) winkel)
|
||||
(setq anzahl-gf (1+ anzahl-gf) letzt-winkel winkel))
|
||||
@@ -5135,7 +5135,7 @@
|
||||
;; (ein auf_3 rein, ein ab_3 raus), unabhaengig von der Zahl der Fueller/Kurven.
|
||||
(setq hor-pairs (if (or (> nkurve 0) (> nonclimber-cnt 0)) 1 0))
|
||||
(setq run-span (+ climber-span nonclimber-len kurve-chords))
|
||||
(setq br-gf1 400.0) ; feste kleine GF1
|
||||
(setq br-gf1 *vfl-gf-min-laenge*) ; feste kleine GF1
|
||||
(setq br-richtn (if (< dH-bruecke 0) "Auf" "Ab"))
|
||||
(setq target-climb (- z-junction z-front)) ; noetige Netto-Hoehe (Auf>0)
|
||||
;; Kletter-Segment als Standard-Vario loesen; GF wird BERECHNET (L_GF) und der
|
||||
@@ -5151,11 +5151,11 @@
|
||||
;; feste = 800 (Umlenk+Sep). berechne rechnet Motor-/Uebergangs-Abstieg NICHT,
|
||||
;; daher Kletterhoehe um diese Abstiege anpassen (GF2 bleibt ~0).
|
||||
;; - Ohne flache Zone (Einzel-Bruecke): feste = 1300 (inkl. Motor), keine Anpassung.
|
||||
(setq rad3v (* 3.0 (/ pi 180.0)))
|
||||
(setq rad3v (* *vfk-gefaelle-winkel* (/ pi 180.0)))
|
||||
(if (> hor-pairs 0)
|
||||
(setq feste-vf 800.0
|
||||
dH-adj (- dH-bruecke (+ (* 500.0 (sin rad3v)) 10.48))) ; Motor + auf_3/ab_3
|
||||
(setq feste-vf 1300.0 dH-adj dH-bruecke))
|
||||
(setq feste-vf *vfk-feste-horizontal-kettenende*
|
||||
dH-adj (- dH-bruecke (+ (* *vfk-stations-laenge* (sin rad3v)) *vfk-bruecke-korrektur*))) ; Motor + auf_3/ab_3
|
||||
(setq feste-vf *vfk-feste-horizontal-linienzug* dH-adj dH-bruecke))
|
||||
(setq wahl3 (vfl3-waehle-winkel climber-span dH-adj feste-vf))
|
||||
(if (null wahl3)
|
||||
(progn (princ (ssg-text "vfl-m3-kein-winkel"))
|
||||
@@ -5199,7 +5199,7 @@
|
||||
;; --- Kletterer (geneigt, 3-Grad-Basis) ---
|
||||
((and (= (car seg) "Linie") (member i climbers))
|
||||
(if flat-p (progn (setq pt (vfl3-flach-aus pt seg-hz)) (setq flat-p nil)))
|
||||
(setq this-lvf (max 100.0 (* br-lvf (/ (caddr seg) climber-span))))
|
||||
(setq this-lvf (max *vfk-restlaenge-min-clamp* (* br-lvf (/ (caddr seg) climber-span))))
|
||||
(setq pt (vfs-vf-koerper pt br-richtn br-winkel this-lvf seg-hz))
|
||||
(vfl-acc-vf-seg br-richtn br-winkel this-lvf)
|
||||
(setq anzahl-vf (1+ anzahl-vf) letzt-koerper-hz seg-hz))
|
||||
@@ -5229,11 +5229,11 @@
|
||||
br-gf2-exp rad3v)
|
||||
(- (+ (* (- (car endpunkt) (car pt)) (cos (* seg-hz (/ pi 180.0))))
|
||||
(* (- (cadr endpunkt) (cadr pt)) (sin (* seg-hz (/ pi 180.0)))))
|
||||
(* (+ 500.0 br-gf2-exp) (cos rad3v)))
|
||||
(* (+ *vfk-stations-laenge* br-gf2-exp) (cos rad3v)))
|
||||
)
|
||||
)
|
||||
(setq fill-len (caddr seg)))
|
||||
(setq fill-len (max 100.0 fill-len))
|
||||
(setq fill-len (max *vfk-restlaenge-min-clamp* fill-len))
|
||||
(setq pt (insert-inclined-scaled-block "Staustrecke_SP_1000_mm" pt fill-len 0 seg-hz))
|
||||
(vfl-acc-vf-seg "horizontal" 0 fill-len) (setq anzahl-vf (1+ anzahl-vf))
|
||||
(setq letzt-koerper-hz seg-hz))
|
||||
@@ -5265,12 +5265,12 @@
|
||||
(progn
|
||||
(princ (ssg-textf "vfl-m3-warnung-gf2-negativ" (list (rtos (- gf2-drop) 2 1))))
|
||||
(setq gf2-drop 0.0)))
|
||||
(setq gf2-planar (/ gf2-drop (/ (sin (* 3.0 (/ pi 180.0))) (cos (* 3.0 (/ pi 180.0))))))
|
||||
(setq gf2-planar (/ gf2-drop (/ (sin (* *vfk-gefaelle-winkel* (/ pi 180.0))) (cos (* *vfk-gefaelle-winkel* (/ pi 180.0))))))
|
||||
(if (> gf2-planar 0.1)
|
||||
(progn
|
||||
(princ (ssg-textf "vfl-m3-gf2-ausgleich" (list (rtos gf2-planar 2 1))))
|
||||
(setq frame (vfl-insert-gf-segment pt letzt-koerper-hz gf2-planar 3))
|
||||
(vfl-acc-gf-seg (/ gf2-planar (cos (* 3.0 (/ pi 180.0)))) 3))
|
||||
(setq frame (vfl-insert-gf-segment pt letzt-koerper-hz gf2-planar (fix *vfk-gefaelle-winkel*)))
|
||||
(vfl-acc-gf-seg (/ gf2-planar (cos (* *vfk-gefaelle-winkel* (/ pi 180.0)))) (fix *vfk-gefaelle-winkel*)))
|
||||
(setq frame (vfl-frame-3grad pt letzt-koerper-hz)))
|
||||
(setq hz letzt-koerper-hz)
|
||||
|
||||
@@ -5284,8 +5284,8 @@
|
||||
;; Footprint fuer Separator(300)+ES nur reservieren, wenn ES-Element
|
||||
;; gewuenscht ist (ein=0 sonst, siehe oben) - ohne ES entfaellt auch
|
||||
;; der abschliessende Separator.
|
||||
(if (= i last-line) (setq deltaL (- deltaL (if es-vorhanden 300.0 0.0) ein)))
|
||||
(setq deltaL (max 100.0 deltaL))
|
||||
(if (= i last-line) (setq deltaL (- deltaL (if es-vorhanden *vfk-separator-laenge* 0.0) ein)))
|
||||
(setq deltaL (max *vfk-restlaenge-min-clamp* deltaL))
|
||||
(setq frame (vfl-insert-gf-segment (car frame) hz deltaL winkel))
|
||||
(vfl-acc-gf-seg (/ deltaL (cos (* winkel (/ pi 180.0)))) winkel)
|
||||
(setq anzahl-gf (1+ anzahl-gf) letzt-winkel winkel))
|
||||
@@ -5300,7 +5300,7 @@
|
||||
(if (null frame) (progn (princ (ssg-text "vfl-m3-nichts-gebaut")) (exit)))
|
||||
(if es-vorhanden
|
||||
(setq frame (vfl-insert-es-element "GF" frame (car (frame->hz-winkel frame))
|
||||
(if letzt-winkel letzt-winkel 3.0) (caddr (car frame)) es-seite)))
|
||||
(if letzt-winkel letzt-winkel *vfk-gefaelle-winkel*) (caddr (car frame)) es-seite)))
|
||||
|
||||
;; ---------- Block + Ist-Ziel-Report ----------
|
||||
(setq hoehe-bis (caddr (car frame)))
|
||||
@@ -5609,7 +5609,7 @@
|
||||
(cond
|
||||
((null fund) (setq fertig T))
|
||||
((<= (cdr fund) *vfl-kette-tol-eng*)
|
||||
(if (> (cdr fund) 0.5)
|
||||
(if (> (cdr fund) *vfk-kette-anschluss-warnung*)
|
||||
(setq verdaechtig (cons (list (vfl-kette-rec-bname aktuell) (vfl-kette-rec-bname (car fund)) (cdr fund)) verdaechtig)))
|
||||
(setq aktuell (car fund))
|
||||
(setq kette (append kette (list aktuell)))
|
||||
|
||||
Reference in New Issue
Block a user