[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:
+75
-71
@@ -3,23 +3,29 @@
|
||||
;; Magic-Numbers aus vf_core.lsp, vf_standard.lsp, vf_etage.lsp,
|
||||
;; vf_linienzug.lsp
|
||||
;; ============================================================
|
||||
;; ZWECK dieser Datei: Nachschlagewerk + Grundlage fuer eine schrittweise
|
||||
;; Migration - NICHT (noch) die aktive Quelle der Werte. Die vier vf_*.lsp-
|
||||
;; Module verwenden ihre Werte weiterhin direkt (eigene *vfl-*/*vfs-*/
|
||||
;; FESTE_*-Variablen bzw. rohe Literale, teils ueber ssg-cfg-or). Aendert
|
||||
;; sich ein Wert hier, hat das AKTUELL KEINE Wirkung auf den Bauablauf -
|
||||
;; die entsprechende Stelle im jeweiligen Modul muss weiterhin dort separat
|
||||
;; angepasst werden. Diese Datei macht nur sichtbar, WELCHE Werte es gibt,
|
||||
;; wo sie herkommen und wo sie (noch) dupliziert sind.
|
||||
;; ZWECK dieser Datei: zentrale, aktive Quelle der Magic-Numbers aus dem
|
||||
;; VarioFoerderer-Cluster. Die weit ueberwiegende Mehrheit der frueher
|
||||
;; rohen Literale in vf_core/vf_standard/vf_etage/vf_linienzug wurde auf
|
||||
;; die *vfk-*-Konstanten hier umgestellt (Migration abgeschlossen, siehe
|
||||
;; Git-Historie). Aendert sich ein Wert hier, wirkt sich das direkt auf
|
||||
;; alle referenzierenden Aufrufstellen aus.
|
||||
;;
|
||||
;; Migrationsidee (spaeter, schrittweise, EIN Modul nach dem anderen):
|
||||
;; einzelne Aufrufstellen von rohem Literal auf *vfk-*-Konstante umstellen,
|
||||
;; mit Test in BricsCAD nach jedem Modul. Bei den bereits ueber ssg-cfg-or
|
||||
;; konfigurierbaren Werten (gefaelle_winkel, bogen_winkel, feste_horizontal,
|
||||
;; staustrecke_basis, separator_block_dx/dz, station_block_dx/dz,
|
||||
;; skalierung_basis) bleibt die Config-Anbindung die fuehrende Quelle -
|
||||
;; *vfk-*-Konstanten hier sind dafuer nur Fallback/Dokumentation, siehe
|
||||
;; jeweiliger Kommentar.
|
||||
;; Ausnahmen (bewusst NICHT umgestellt):
|
||||
;; - Werte, die bereits ueber (ssg-cfg-or "vario" "<key>" <default>) laufen
|
||||
;; (gefaelle_winkel, bogen_winkel, feste_horizontal, staustrecke_basis,
|
||||
;; separator_block_dx/dz, station_block_dx/dz, skalierung_basis): dort
|
||||
;; bleibt die Config-Anbindung die fuehrende Quelle, *vfk-* dient nur als
|
||||
;; Fallback/Dokumentation (siehe jeweiliger Kommentar).
|
||||
;; - Stellen, an denen der Literal-Wert in einem itoa-/Integer-Kontext
|
||||
;; verwendet wird (z.B. vf_etage.lsp: "best-winkel +/- 3" vor itoa) und
|
||||
;; *vfk-gefaelle-winkel* als Float (3.0) statt Integer (3) einen Typfehler
|
||||
;; ausloesen wuerde. Bewusst als rohes Literal belassen (siehe Kommentare
|
||||
;; im jeweiligen Modul).
|
||||
;; - Blocknamen-Strings, die eine Zahl eingebettet tragen (z.B.
|
||||
;; "Vario_Umlenkstation_500mm_...", "Staustrecke_Separator_SP_300_mm"):
|
||||
;; das sind DWG-Blockreferenzen, keine Zahlenwerte.
|
||||
;; - Die mm/m-Umrechnung 2000.0 (= 2 * *vfk-mm-je-m*) ist keine 1:1-
|
||||
;; Ersetzung und bleibt als eigenstaendiges Literal bestehen.
|
||||
;;
|
||||
;; Geladen von vf_core.lsp VOR vf_standard/vf_etage/vf_linienzug (siehe
|
||||
;; dortige Ladereihenfolge, dieselbe Guard-Systematik wie in den anderen
|
||||
@@ -49,12 +55,11 @@
|
||||
;; ============================================================
|
||||
|
||||
;; Basis-Neigungswinkel jeder Gefaellestrecke (GF) - AKTIVE Quelle bleibt
|
||||
;; (ssg-cfg-or "vario" "gefaelle_winkel" 3), an >15 Stellen korrekt darueber
|
||||
;; bezogen. ABER an mindestens 12 weiteren Stellen als rohes 3.0/3-Literal
|
||||
;; dupliziert, OHNE Bezug zur Config (vf_standard.lsp Z.309/412;
|
||||
;; vf_etage.lsp Z.449-450/479/654ff/793; vf_linienzug.lsp Z.1071/1554/2873/
|
||||
;; 3394/4159/4273/4278) - eine Aenderung des Winkels ueber Config wuerde
|
||||
;; diese Stellen NICHT mitziehen.
|
||||
;; (ssg-cfg-or "vario" "gefaelle_winkel" 3) ueberall dort, wo bereits ueber
|
||||
;; Config bezogen wird. Alle frueher rohen 3.0/3-Literale OHNE Config-Bezug
|
||||
;; in vf_standard.lsp/vf_etage.lsp/vf_linienzug.lsp wurden auf
|
||||
;; *vfk-gefaelle-winkel* umgestellt (Ausnahme: einzelne itoa-/Integer-
|
||||
;; Kontexte in vf_etage.lsp, siehe Datei-Kopfkommentar).
|
||||
(if (null *vfk-gefaelle-winkel*) (setq *vfk-gefaelle-winkel* 3.0))
|
||||
|
||||
;; Toleranzband (Grad) um *vfk-gefaelle-winkel*: liegt der natuerliche
|
||||
@@ -65,9 +70,10 @@
|
||||
|
||||
;; Diskrete Bogenwinkel-Tabelle fuer VF-Boegen (auf/ab). AKTIVE Quelle in
|
||||
;; vf_standard.lsp/vf_linienzug.lsp: (ssg-cfg-or "vario" "bogen_winkel" ...)
|
||||
;; mit demselben Fallback. INKONSISTENZ: in vf_etage.lsp (Zeile ~447) fest
|
||||
;; verdrahtet OHNE Config-Anbindung - eine Config-Aenderung wuerde dort
|
||||
;; nicht greifen.
|
||||
;; mit demselben Fallback. Die frueher fest verdrahtete Inkonsistenz in
|
||||
;; vf_etage.lsp (winkel-list ohne Config-Anbindung) wurde behoben: bezieht
|
||||
;; jetzt *vfk-bogen-winkel* direkt (weiterhin ohne Config-Anbindung wie
|
||||
;; zuvor, aber konsistent mit dem Fallback-Wert der anderen Module).
|
||||
(if (null *vfk-bogen-winkel*) (setq *vfk-bogen-winkel* '(3 6 9 12 15 18 21 27 33 39 45 51)))
|
||||
|
||||
;; GF-Bogen-Winkel (horizontale Kurve): 30/60/90 Grad. AKTIVE, EINMALIGE Quelle
|
||||
@@ -95,12 +101,12 @@
|
||||
(if (null *vfk-etage-hz-winkel*) (setq *vfk-etage-hz-winkel* 30.0))
|
||||
|
||||
;; Eckwinkel-Toleranz bei der automatischen Pfad-Klassifizierung (Modus 3,
|
||||
;; vf-linienzug-modus3 -> vfl2-pruefe-eckwinkel). Rohes Literal in
|
||||
;; vf_linienzug.lsp Zeile ~3386, keine Konstante bisher.
|
||||
;; vf-linienzug-modus3 -> vfl2-pruefe-eckwinkel). Aktiv referenziert in
|
||||
;; vf_linienzug.lsp (beide Aufrufstellen von vfl2-pruefe-eckwinkel).
|
||||
(if (null *vfk-eckwinkel-toleranz*) (setq *vfk-eckwinkel-toleranz* 5.0))
|
||||
|
||||
;; Schwellwert (Grad), ab dem ein Frame noch als "flach" (~0 Grad) gilt.
|
||||
;; Rohes Literal in vfl-frame-flach-p (vf_linienzug.lsp), keine Konstante.
|
||||
;; Aktiv referenziert in vfl-frame-flach-p (vf_linienzug.lsp).
|
||||
(if (null *vfk-frame-flach-toleranz*) (setq *vfk-frame-flach-toleranz* 1.5))
|
||||
|
||||
;; ============================================================
|
||||
@@ -128,58 +134,55 @@
|
||||
|
||||
;; Umlenk-/Motorstation-Fussabdruck (mm), je EINE Station. AKTIVE Quelle in
|
||||
;; vf_standard.lsp: (ssg-cfg-or "vario" "station_block_dx" 500). In
|
||||
;; vf_etage.lsp/vf_linienzug.lsp ueberwiegend als rohes 500/500.0-Literal
|
||||
;; direkt in Formeln/Blockaufrufen dupliziert (>10 Fundstellen), OHNE
|
||||
;; Config-Bezug.
|
||||
;; vf_etage.lsp/vf_linienzug.lsp jetzt aktiv referenziert (vormals rohes
|
||||
;; 500/500.0-Literal, OHNE Config-Bezug).
|
||||
(if (null *vfk-stations-laenge*) (setq *vfk-stations-laenge* 500.0))
|
||||
|
||||
;; Separator-Laenge (mm). AKTIVE Quelle in vf_standard.lsp: (ssg-cfg-or
|
||||
;; "vario" "separator_block_dx" 300). In vf_etage.lsp/vf_linienzug.lsp
|
||||
;; ueberwiegend als rohes 300/300.0-Literal dupliziert (Blockname
|
||||
;; "Staustrecke_Separator_SP_300_mm" traegt den Wert zusaetzlich im String).
|
||||
;; jetzt aktiv referenziert (Blockname "Staustrecke_Separator_SP_300_mm"
|
||||
;; traegt den Wert weiterhin zusaetzlich im String - dort unangetastet).
|
||||
(if (null *vfk-separator-laenge*) (setq *vfk-separator-laenge* 300.0))
|
||||
|
||||
;; Mindestlaenge (mm) fuer eine VF-Einheit (Umlenk+Motor = 2x
|
||||
;; *vfk-stations-laenge*). Rohes 1000.0-Literal an 7 Stellen in
|
||||
;; vf_linienzug.lsp dupliziert (vfl-vf-entscheidung, vfl-vf-machbar-p,
|
||||
;; vfl-segment-entscheidung, vf-linienzug-modus mehrfach).
|
||||
;; *vfk-stations-laenge*). Aktiv referenziert in vf_linienzug.lsp
|
||||
;; (vfl-vf-entscheidung, vfl-vf-machbar-p, vfl-segment-entscheidung,
|
||||
;; vf-linienzug-modus).
|
||||
(if (null *vfk-vf-mindestlaenge*) (setq *vfk-vf-mindestlaenge* 1000.0))
|
||||
|
||||
;; Mindestlaenge (mm) am Linienzug-Kettenende-Abschluss (nur Motor+
|
||||
;; Separator, kein Umlenk-Anteil - siehe *vfk-feste-horizontal-kettenende*).
|
||||
;; Rohes 800.0-Literal, identisch zum Budget-Wert selbst.
|
||||
;; Aktiv referenziert in vf_linienzug.lsp.
|
||||
(if (null *vfk-kettenende-mindestlaenge*) (setq *vfk-kettenende-mindestlaenge* 800.0))
|
||||
|
||||
;; Mindestlaenge (mm) fuer die 3-Grad-GF-Anschlussstrecke (GF1 am Einlauf
|
||||
;; einer VF-Einheit). Bereits als *vfl-gf-min-laenge* in vf_linienzug.lsp
|
||||
;; benannt (Wert 400.0) - hier nur gespiegelt. In vf_linienzug.lsp Zeile
|
||||
;; ~4143 zusaetzlich als rohes 400.0-Literal dupliziert (br-gf1), ohne
|
||||
;; Bezug auf *vfl-gf-min-laenge*.
|
||||
;; benannt (Wert 400.0) - hier nur gespiegelt. Das fruehere rohe 400.0-
|
||||
;; Duplikat (br-gf1 in vfl3-*) referenziert jetzt *vfl-gf-min-laenge*.
|
||||
(if (null *vfk-gf-anschluss-mindestlaenge*) (setq *vfk-gf-anschluss-mindestlaenge* 400.0))
|
||||
|
||||
;; ============================================================
|
||||
;; TEIL 3: STRECKENLAENGEN-GRENZWERTE (mm)
|
||||
;; ============================================================
|
||||
|
||||
;; Foerderer-Maximallaenge (Linienzug-Einzelsegment beim Picken). Rohes
|
||||
;; 25000.0-Literal in vfl-neue-linie-messen (vf_linienzug.lsp), keine
|
||||
;; Konstante bisher.
|
||||
;; Foerderer-Maximallaenge (Linienzug-Einzelsegment beim Picken). Aktiv
|
||||
;; referenziert in vfl-neue-linie-messen (vf_linienzug.lsp).
|
||||
(if (null *vfk-segment-maximallaenge*) (setq *vfk-segment-maximallaenge* 25000.0))
|
||||
|
||||
;; 20-Meter-Regel (Warnschwelle Gesamtlaenge seit letzter Umlenkstation,
|
||||
;; siehe Prinzipien-Dok Abschnitt 7). Rohes 20000.0-Literal in
|
||||
;; vfl-20m-check (vf_linienzug.lsp), keine Konstante bisher.
|
||||
;; siehe Prinzipien-Dok Abschnitt 7). Aktiv referenziert in vfl-20m-check
|
||||
;; (vf_linienzug.lsp).
|
||||
(if (null *vfk-motorabstand-warnung*) (setq *vfk-motorabstand-warnung* 20000.0))
|
||||
|
||||
;; Unterer Clamp-Wert (mm) fuer diverse Restlaengen-Berechnungen
|
||||
;; ("max 100.0 ..."), verhindert negative/entartete Kurzstrecken. Rohes
|
||||
;; 100.0-Literal an >10 Stellen in vf_linienzug.lsp dupliziert
|
||||
;; (vfl-baue-horizontal-koerper, vf-linienzug-modus3-Umfeld, ...).
|
||||
;; ("max ... ..."), verhindert negative/entartete Kurzstrecken. Aktiv
|
||||
;; referenziert an allen frueher rohen "(max 100.0 ...)"-Stellen in
|
||||
;; vf_linienzug.lsp.
|
||||
(if (null *vfk-restlaenge-min-clamp*) (setq *vfk-restlaenge-min-clamp* 100.0))
|
||||
|
||||
;; Unterer Clamp-Wert (mm) fuer die variable Auslauf-Staustrecke im
|
||||
;; Etage-Typ ("Schutz gegen negative/zu kurze GF"). Rohes 50.0-Literal in
|
||||
;; etage-foerderanlage-einfuegen (vf_etage.lsp Zeile ~800).
|
||||
;; Etage-Typ ("Schutz gegen negative/zu kurze GF"). Aktiv referenziert in
|
||||
;; etage-foerderanlage-einfuegen (vf_etage.lsp).
|
||||
(if (null *vfk-etage-auslauf-min-clamp*) (setq *vfk-etage-auslauf-min-clamp* 50.0))
|
||||
|
||||
;; ============================================================
|
||||
@@ -191,21 +194,21 @@
|
||||
;; neu vermessen werden - keine "sauberen" Rundwerte.
|
||||
|
||||
;; AS-/ES-Element-Fallback-Versatz (dx, mm), Standard-Typ (90 Grad) und
|
||||
;; Linienzug. Rohes 576.0-Literal an mehreren Stellen in vf_linienzug.lsp
|
||||
;; dupliziert (Zeile ~3393/4030/4031: "(if aus-dx aus-dx 576.0)" bzw.
|
||||
;; ein-dx-Aequivalent).
|
||||
;; Linienzug. Aktiv referenziert an allen frueher rohen 576.0-Stellen in
|
||||
;; vf_linienzug.lsp ("(if aus-dx aus-dx ...)" bzw. ein-dx-Aequivalent).
|
||||
(if (null *vfk-as-es-fallback-dx*) (setq *vfk-as-es-fallback-dx* 576.0))
|
||||
|
||||
;; Etage-Typ (30 Grad): eigene Fallback-Masse fuer AS_Element_30 (dx/dz,
|
||||
;; vf_etage.lsp Zeile ~90/96) und ES_Element_30 (Zeile ~124/130) - NICHT
|
||||
;; identisch zu *vfk-as-es-fallback-dx* (anderer Blocktyp/Winkel).
|
||||
;; Etage-Typ (30 Grad): eigene Fallback-Masse fuer AS_Element_30 und
|
||||
;; ES_Element_30 (vf_etage.lsp, init-bibliothek-etage) - NICHT identisch
|
||||
;; zu *vfk-as-es-fallback-dx* (anderer Blocktyp/Winkel). Aktiv referenziert.
|
||||
(if (null *vfk-etage-as-fallback-dx*) (setq *vfk-etage-as-fallback-dx* 525.8))
|
||||
(if (null *vfk-etage-as-fallback-dz*) (setq *vfk-etage-as-fallback-dz* -72.9))
|
||||
(if (null *vfk-etage-es-fallback-dx*) (setq *vfk-etage-es-fallback-dx* 576.2))
|
||||
(if (null *vfk-etage-es-fallback-dz*) (setq *vfk-etage-es-fallback-dz* -54.6))
|
||||
|
||||
;; Etage-Typ: Fallback-Versatz (dz, mm) fuer Gefaellebogen links/rechts,
|
||||
;; falls Block/KS nicht extrahierbar (vf_etage.lsp Zeile ~156-195).
|
||||
;; falls Block/KS nicht extrahierbar (vf_etage.lsp, init-bibliothek-etage).
|
||||
;; Aktiv referenziert.
|
||||
(if (null *vfk-etage-gefaellebogen-fallback-dz*) (setq *vfk-etage-gefaellebogen-fallback-dz* -10.0))
|
||||
|
||||
;; ============================================================
|
||||
@@ -213,19 +216,19 @@
|
||||
;; ============================================================
|
||||
|
||||
;; Texthoehe (mm) des sichtbaren ATTDEF/TEXT-Labels (vf-make-label,
|
||||
;; vf_core.lsp Zeile ~1073). Rohes Literal, keine Konstante bisher.
|
||||
;; vf_core.lsp). Aktiv referenziert.
|
||||
(if (null *vfk-label-texthoehe*) (setq *vfk-label-texthoehe* 100.0))
|
||||
|
||||
;; Texthoehe (mm) der unsichtbaren ATTDEFs (vf-block-erstellen,
|
||||
;; vf_core.lsp Zeile ~1125). Rohes Literal, keine Konstante bisher.
|
||||
;; vf_core.lsp). Aktiv referenziert.
|
||||
(if (null *vfk-attdef-texthoehe*) (setq *vfk-attdef-texthoehe* 50.0))
|
||||
|
||||
;; Y-Versatz (mm) zwischen aufeinanderfolgenden ATTDEF-Zeilen
|
||||
;; (vf_core.lsp Zeile ~1131). Rohes Literal, keine Konstante bisher.
|
||||
;; (vf_core.lsp). Aktiv referenziert.
|
||||
(if (null *vfk-attdef-zeilenabstand*) (setq *vfk-attdef-zeilenabstand* 100.0))
|
||||
|
||||
;; Beschriftungsversatz (mm) senkrecht zur Fahrtrichtung (vf-make-label,
|
||||
;; vf_core.lsp Zeile ~1059-1060). Rohes 200.0-Literal.
|
||||
;; vf_core.lsp). Aktiv referenziert.
|
||||
(if (null *vfk-label-versatz*) (setq *vfk-label-versatz* 200.0))
|
||||
|
||||
;; ============================================================
|
||||
@@ -234,9 +237,10 @@
|
||||
|
||||
;; mm -> m Umrechnungsfaktor fuer die Montagehoehe-Mittelwertbildung
|
||||
;; ("(/ (+ hoehe-von hoehe-bis) 2000.0)" = Mittelwert zweier mm-Werte,
|
||||
;; direkt in m). Kommt identisch in vf_core.lsp Zeile ~1154 UND
|
||||
;; vf_linienzug.lsp Zeile ~2258/4742 vor - inhaltlich einfach 1000.0*2,
|
||||
;; aber nirgends so ausgedrueckt.
|
||||
;; direkt in m). Kommt identisch in vf_core.lsp und vf_linienzug.lsp vor -
|
||||
;; inhaltlich einfach 1000.0*2, aber nirgends so ausgedrueckt. BEWUSST NICHT
|
||||
;; auf *vfk-mm-je-m* umgestellt (keine 1:1-Ersetzung, siehe Datei-
|
||||
;; Kopfkommentar) - bleibt als eigenstaendiges 2000.0-Literal bestehen.
|
||||
(if (null *vfk-mm-je-m*) (setq *vfk-mm-je-m* 1000.0))
|
||||
|
||||
;; Skalierungsbasis (mm) fuer insert-inclined-scaled-block. AKTIVE Quelle:
|
||||
@@ -252,19 +256,19 @@
|
||||
|
||||
;; Diagnose-Schwellwert (mm): ab wann ein Anschlussabstand beim
|
||||
;; Ketten-Verfolgen als "spuerbar, aber noch sauber" gilt (vfl-kette-
|
||||
;; verfolgen, vf_linienzug.lsp Zeile ~4617). Rohes 0.5-Literal.
|
||||
;; verfolgen, vf_linienzug.lsp). Aktiv referenziert.
|
||||
(if (null *vfk-kette-anschluss-warnung*) (setq *vfk-kette-anschluss-warnung* 0.5))
|
||||
|
||||
;; Warnschwelle (Grad): Vario-Winkel oberhalb des Maximums der
|
||||
;; Bogenwinkel-Tabelle (Modus 3, vf-linienzug-modus3 Zeile ~4018). Rohes
|
||||
;; 51.0-Literal, dupliziert das Maximum von *vfk-bogen-winkel*.
|
||||
;; Bogenwinkel-Tabelle (Modus 3, vf-linienzug-modus3). Dupliziert das
|
||||
;; Maximum von *vfk-bogen-winkel*. Aktiv referenziert.
|
||||
(if (null *vfk-vario-winkel-max*) (setq *vfk-vario-winkel-max* 51.0))
|
||||
|
||||
;; Empirischer Korrekturfaktor (mm) fuer die Bruecken-Hoehenberechnung in
|
||||
;; Modus 3 (vf-linienzug-modus3, "dH-adj", vf_linienzug.lsp Zeile ~4162).
|
||||
;; UNKOMMENTIERTE Herleitung im Original - nur "Motor + auf_3/ab_3"-Notiz.
|
||||
;; Bei Gelegenheit pruefen/nachvollziehen, ob sich der Wert geometrisch
|
||||
;; herleiten laesst statt empirisch fixiert zu bleiben.
|
||||
;; Modus 3 (vf-linienzug-modus3, "dH-adj", vf_linienzug.lsp). Aktiv
|
||||
;; referenziert. UNKOMMENTIERTE Herleitung im Original - nur "Motor +
|
||||
;; auf_3/ab_3"-Notiz. Bei Gelegenheit pruefen/nachvollziehen, ob sich der
|
||||
;; Wert geometrisch herleiten laesst statt empirisch fixiert zu bleiben.
|
||||
(if (null *vfk-bruecke-korrektur*) (setq *vfk-bruecke-korrektur* 10.48))
|
||||
|
||||
(setq *vfk-konstanten-geladen* t)
|
||||
|
||||
Reference in New Issue
Block a user