833a4b60a6
Die Frage "Lauf beginnen mit" (Modus 2) journalisiert jetzt den WERT
("mit-gf1"/"direkt"/"ohne") statt der Auswahl-Ziffer. Anlass war die
Umstellung der Optionsreihenfolge auf Regelfall zuerst: mit einer Ziffer
haette dieselbe "3" vor und nach der Umstellung Verschiedenes bedeutet,
eine bestehende Kette waere beim Doppelklick still mit einer ANDEREN
Anfangsvariante neu gebaut worden. Alte Ketten laufen ueber die Tabelle
*vfl-m2-anfang-alt* weiter; ein Wert, der weder Alt-Ziffer noch gueltiger
Wert ist, bricht den Aufbau ab und nennt Kette und Wert, statt eine
Variante zu raten.
Weiter aus der Modus-2-Arbeit:
- Laengenbudget je VF-Einheit (max. 25 m, max. 2 Vario-Kurven,
*vfk-vf-kurven-max*), bei Ueberschreitung automatischer Schnitt
- nach einer VF-Geraden ist der Bogentyp waehlbar (GF-Bogen/Vario-Kurve)
- Segmentnummer steht im Kopf jedes Dialogs
- "Separator NACH" ist am letzten GF-Stueck vor einem ES gesperrt, der
automatische Separator wird dort erklaert
- "Ohne Umlenkstation" ist mit AS-Element gesperrt
- Fuellerlaenge nur noch dann aus dem Rueckanker, wenn der VF-Lauf das
Pfadende ist
Dialoge: Hinweis steht in Klammern hinter dem Ankreuzfeld statt darunter,
Lauf-Anfang-Optionen tragen die Nummern der Konsolenliste, die
Begruendungszeile ist breit genug und wird nicht mehr abgeschnitten.
14 neue Unit-Tests zur Wert-Normierung (durchlaufen die Alt-Tabelle).
Sprachdateien 1205/1205 synchron.
Offen: der Fuellerlaengen-Fix ist in BricsCAD noch nicht nachgemessen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
316 lines
18 KiB
Plaintext
316 lines
18 KiB
Plaintext
;; ============================================================
|
|
;; VF_KONSTANTEN - Zentrale Sammlung aller Laengen-/Winkel-/Toleranz-
|
|
;; Magic-Numbers aus vf_core.lsp, vf_standard.lsp, vf_etage.lsp,
|
|
;; vf_linienzug.lsp
|
|
;; ============================================================
|
|
;; 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.
|
|
;;
|
|
;; 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
|
|
;; vf_*.lsp-Dateien: atoms-family-Check verhindert Doppel-Laden).
|
|
;; ============================================================
|
|
|
|
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
|
|
(progn
|
|
;; Pfad zentral ueber ssg_core (ssg-lisp-verzeichnis), mit Inline-Fallback
|
|
;; falls ssg_core hier noch nicht geladen ist.
|
|
(setq *vf-konst-core-pfad*
|
|
(if (car (atoms-family 1 '("SSG-LISP-VERZEICHNIS")))
|
|
(ssg-lisp-verzeichnis)
|
|
(cond
|
|
((getenv "DXFM_LISP") (vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
|
|
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*) *ssg-lisp-pfad*)
|
|
(t nil))))
|
|
(if *vf-konst-core-pfad*
|
|
(load (strcat *vf-konst-core-pfad* "/vf_core.lsp"))
|
|
(princ "\n[WARNUNG] vf_konstanten.lsp: DXFM_LISP/ssg-lisp-pfad nicht gesetzt.")
|
|
)
|
|
)
|
|
)
|
|
|
|
;; ============================================================
|
|
;; TEIL 1: WINKEL (Grad)
|
|
;; ============================================================
|
|
|
|
;; Basis-Neigungswinkel jeder Gefaellestrecke (GF) - AKTIVE Quelle bleibt
|
|
;; (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
|
|
;; Neigungswinkel eines fallenden Segments innerhalb Toleranz, gilt es als
|
|
;; reine Gefaellestrecke statt VF. Bereits als *vfl-gf-winkel-toleranz* in
|
|
;; vf_linienzug.lsp benannt (Wert 0.5) - hier nur gespiegelt/dokumentiert.
|
|
(if (null *vfk-gf-winkel-toleranz*) (setq *vfk-gf-winkel-toleranz* 0.5))
|
|
|
|
;; 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. 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
|
|
;; fuer die Winkel-Menues/Schema/Slice/Edit im VF-Linienzug (vf_linienzug.lsp
|
|
;; referenziert *vfk-gf-bogen-winkel* statt eigener '(30 60 90)-Literale) - gilt
|
|
;; auch fuer die Vario-Kurve (gleiche drei Winkel). Blocknamen
|
|
;; "Gefaellebogen_<seite>_<winkel>_R500" / "Vario_Kurve_<seite>_<winkel>_TEF_*"
|
|
;; leiten sich direkt aus diesen Werten ab. Kein Config-Bezug (bewusst: an die
|
|
;; vorhandenen DWG-Bloecke gebunden). vf_linienzug hat einen eigenen Fallback,
|
|
;; falls diese Datei nicht geladen wurde.
|
|
(if (null *vfk-gf-bogen-winkel*) (setq *vfk-gf-bogen-winkel* '(30 60 90)))
|
|
|
|
;; AS-/ES-Element-Winkel: nur 30 und 90 Grad - anders als GF-Bogen/Vario-Kurve
|
|
;; gibt es KEINE 60-Grad-AS/ES-Bloecke (AS_Element_60/ES_Element_60 existieren
|
|
;; nirgends). Als STRING gefuehrt (Blockname "AS_Element_<winkel>_<seite>" wird
|
|
;; per strcat gebaut, Journal fuehrt AS/ES-Winkel als STR). Zentrale, einmalige
|
|
;; Quelle fuer die gueltige Wertemenge (vf_linienzug-Glied-Schema); die
|
|
;; Reihenfolge (30 vor 90) entspricht dem Schema. vf_linienzug hat einen
|
|
;; Fallback, falls diese Datei nicht geladen wurde.
|
|
(if (null *vfk-as-es-winkel*) (setq *vfk-as-es-winkel* '("30" "90")))
|
|
|
|
;; Etage-Typ: Schwenkwinkel der Ein-/Auslauf-Schraegsektion. Bereits als
|
|
;; ETAGE_HZ_WINKEL in vf_etage.lsp benannt (Wert 30, Kommentar "war frueher
|
|
;; 60") - hier nur gespiegelt.
|
|
(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 -> vfl-pfad-eckwinkel-pruefen). Aktiv referenziert in
|
|
;; vf_linienzug.lsp (beide Aufrufstellen von vfl-pfad-eckwinkel-pruefen).
|
|
(if (null *vfk-eckwinkel-toleranz*) (setq *vfk-eckwinkel-toleranz* 5.0))
|
|
|
|
;; Schwellwert (Grad), ab dem ein Frame noch als "flach" (~0 Grad) gilt.
|
|
;; Aktiv referenziert in vfl-frame-flach-p (vf_linienzug.lsp).
|
|
(if (null *vfk-frame-flach-toleranz*) (setq *vfk-frame-flach-toleranz* 1.5))
|
|
|
|
;; ============================================================
|
|
;; TEIL 2: HORIZONTALE BUDGETS (mm) - Umlenk-/Motorstation + Separatoren
|
|
;; ============================================================
|
|
;; ACHTUNG: vier verschiedene, NICHT austauschbare Werte fuer "horizontales
|
|
;; Budget der festen Elemente einer VF-Einheit", je nach Kontext - das ist
|
|
;; die verwirrendste Stelle im ganzen Modul-Satz:
|
|
;; - Standard-VF (2 Separatoren, Ein+Aus): FESTE_HORIZONTAL = 1600
|
|
;; (vf_standard.lsp Z.38, ssg-cfg-or "vario" "feste_horizontal" 1600)
|
|
;; - Linienzug-VF (1 Separator, nur Einlauf): *vfl-feste-horizontal* = 1300
|
|
;; (vf_linienzug.lsp Z.63)
|
|
;; - Etage-VF (mittlere Sektion): FESTE_ETAGE_MITTE = 1000
|
|
;; (vf_etage.lsp Z.41)
|
|
;; - Linienzug-Kettenende/Body-Abschluss (nur Motor+1 Separator, KEIN
|
|
;; Umlenk-Anteil): 800 als rohes Literal an >10 Stellen in
|
|
;; vf_linienzug.lsp (vfl-body-zerlegung, vfl-zsolve-winkel-waehlen, ...)
|
|
;; Diese vier NICHT vereinheitlichen ohne sorgfaeltige Pruefung - sie
|
|
;; entstehen aus unterschiedlicher Bauteil-Zusammensetzung (siehe jeweiliger
|
|
;; Kommentar im Modul), keine Kopiergleichheit.
|
|
(if (null *vfk-feste-horizontal-standard*) (setq *vfk-feste-horizontal-standard* 1600.0))
|
|
(if (null *vfk-feste-horizontal-linienzug*) (setq *vfk-feste-horizontal-linienzug* 1300.0))
|
|
(if (null *vfk-feste-horizontal-etage*) (setq *vfk-feste-horizontal-etage* 1000.0))
|
|
(if (null *vfk-feste-horizontal-kettenende*) (setq *vfk-feste-horizontal-kettenende* 800.0))
|
|
|
|
;; 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 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
|
|
;; 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))
|
|
|
|
;; "QC Linie mit GF" / "QC Linie mit GF und U-Form" (Lisp/vf_linienzug.lsp,
|
|
;; vfl-qc-linie-mit-gf/-uform): reine Vorschlagswerte fuer die Ein-/Auslauf-
|
|
;; Geradenstuecke bzw. die feste U-Form-Zwischenstrecke - alle drei bleiben
|
|
;; Nutzereingaben (getreal mit diesem Default), keine harten Konstanten.
|
|
(if (null *vfk-qc-einlauf-laenge*) (setq *vfk-qc-einlauf-laenge* 1000.0))
|
|
(if (null *vfk-qc-u-fest-laenge*) (setq *vfk-qc-u-fest-laenge* 400.0))
|
|
(if (null *vfk-qc-fallend-anteil-default*) (setq *vfk-qc-fallend-anteil-default* 0.5))
|
|
|
|
;; Mindestlaenge (mm) fuer eine VF-Einheit (Umlenk+Motor = 2x
|
|
;; *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*).
|
|
;; 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. Das fruehere rohe 400.0-
|
|
;; Duplikat (br-gf1 in vfl-zsolve-*) 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). 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). 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 ... ..."), 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"). Aktiv referenziert in
|
|
;; etage-foerderanlage-einfuegen (vf_etage.lsp).
|
|
(if (null *vfk-etage-auslauf-min-clamp*) (setq *vfk-etage-auslauf-min-clamp* 50.0))
|
|
|
|
;; Feste Einlauf-Staustrecke (mm) des Etage-Typs: Schritt 2 in
|
|
;; etage-foerderanlage-einfuegen, direkt hinter dem AS-Element. Das
|
|
;; Gegenstueck am Auslauf (Schritt 13) ist NICHT fest, sondern wird aus der
|
|
;; Quer-Bilanz bestimmt (etage-rand-budget), damit das ES-KS_AUS
|
|
;; querversatzfrei auf der Hauptachse landet. Dient zugleich als Rueckfallwert
|
|
;; fuer diese Auslaufstrecke, wenn der Auslauf nicht schwenkt (Quer-Rate 0).
|
|
(if (null *vfk-etage-stau-ein*) (setq *vfk-etage-stau-ein* 400.0))
|
|
|
|
;; Mindest-2D-Laenge (mm) eines Pfad-Segments (LINE-Laenge bzw. ARC-Sehne),
|
|
;; das der Linienzug-Modus 2/3 aus einer Objektauswahl akzeptiert. Kuerzere
|
|
;; Objekte sind Geister-/Artefakt-Elemente (z.B. ein von einer Rechteck-Auswahl
|
|
;; miterfasstes Mini-Segment) und werden VOR der Sortierung ausgeworfen, mit
|
|
;; Warnung an den Nutzer (vfl-in-segmente). Konservativ deutlich unter jedem
|
|
;; realen Bauteil (kleinstes Bauteil = Separator 300 mm; kleinster echter
|
|
;; Eck-Bogen R500/30 Grad hat eine Sehne von ~259 mm) und knapp ueber dem
|
|
;; allgemeinen Restlaengen-Clamp (100 mm), damit kein legitimes Segment
|
|
;; faelschlich verworfen wird.
|
|
(if (null *vfk-pfad-min-segmentlaenge*) (setq *vfk-pfad-min-segmentlaenge* 100.0))
|
|
|
|
;; ============================================================
|
|
;; TEIL 4: FALLBACK-VERSATZWERTE (mm) - AS-/ES-/Gefaellebogen-Masse, falls
|
|
;; die Blockdefinition/das Koordinatensystem nicht extrahierbar ist
|
|
;; ============================================================
|
|
;; Diese Werte sind EMPIRISCH aus den realen Blockmassen abgeleitet und
|
|
;; sollten bei einer Aenderung der zugrundeliegenden DWG-Bloecke ebenfalls
|
|
;; neu vermessen werden - keine "sauberen" Rundwerte.
|
|
|
|
;; AS-/ES-Element-Fallback-Versatz (dx, mm), Standard-Typ (90 Grad) und
|
|
;; 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 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, init-bibliothek-etage).
|
|
;; Aktiv referenziert.
|
|
(if (null *vfk-etage-gefaellebogen-fallback-dz*) (setq *vfk-etage-gefaellebogen-fallback-dz* -10.0))
|
|
|
|
;; ============================================================
|
|
;; TEIL 5: BESCHRIFTUNG / TEXT (mm)
|
|
;; ============================================================
|
|
|
|
;; Texthoehe (mm) des sichtbaren ATTDEF/TEXT-Labels (vf-make-label,
|
|
;; vf_core.lsp). Aktiv referenziert.
|
|
(if (null *vfk-label-texthoehe*) (setq *vfk-label-texthoehe* 100.0))
|
|
|
|
;; Texthoehe (mm) der unsichtbaren ATTDEFs (vf-wrapper-bauen, vf_core.lsp -
|
|
;; gemeinsamer Wrapper-Rumpf fuer Standard/Etage UND Linienzug). Aktiv referenziert.
|
|
(if (null *vfk-attdef-texthoehe*) (setq *vfk-attdef-texthoehe* 50.0))
|
|
;; (*vfk-attdef-zeilenabstand* entfernt 2026-09-18: die einzige Nutzung war die
|
|
;; y-Dekrementierung der ATTDEF-Zeilen im alten vf-block-erstellen - historischer
|
|
;; Drift ohne Effekt bei unsichtbaren ATTDEFs; der kanonische Wrapper setzt alle
|
|
;; ATTDEFs an denselben Startpunkt.)
|
|
|
|
;; Beschriftungsversatz (mm) senkrecht zur Fahrtrichtung (vf-make-label,
|
|
;; vf_core.lsp). Aktiv referenziert.
|
|
(if (null *vfk-label-versatz*) (setq *vfk-label-versatz* 200.0))
|
|
|
|
;; ============================================================
|
|
;; TEIL 6: SONSTIGE
|
|
;; ============================================================
|
|
|
|
;; 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 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:
|
|
;; (ssg-cfg-or "vario" "skalierung_basis" 1000.0), vf_core.lsp Zeile ~821.
|
|
;; Hier nur gespiegelt/dokumentiert.
|
|
(if (null *vfk-skalierungsbasis*) (setq *vfk-skalierungsbasis* 1000.0))
|
|
|
|
;; Toleranzband (mm) der automatischen Ketten-Nachbarschaftserkennung
|
|
;; (Vario_Kette_Merge). Bereits als *vfl-kette-tol-eng*/*vfl-kette-tol-weit*
|
|
;; in vf_linienzug.lsp benannt (Werte 2.0/100.0) - hier nur gespiegelt.
|
|
(if (null *vfk-kette-tol-eng*) (setq *vfk-kette-tol-eng* 2.0))
|
|
(if (null *vfk-kette-tol-weit*) (setq *vfk-kette-tol-weit* 100.0))
|
|
|
|
;; Diagnose-Schwellwert (mm): ab wann ein Anschlussabstand beim
|
|
;; Ketten-Verfolgen als "spuerbar, aber noch sauber" gilt (vfl-kette-
|
|
;; 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). 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). 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))
|
|
|
|
;; Konstruktions-Obergrenze (mm) fuer die Gesamtlaenge eines zusammen-
|
|
;; haengenden VF-Laufs (Modus 2, vf-linienzug-modus2) - reiner Hinweis beim
|
|
;; Ueberschreiten, kein Abbruch. Aktiv referenziert.
|
|
(if (null *vfk-vf-laenge-max*) (setq *vfk-vf-laenge-max* 25000.0))
|
|
|
|
;; Hoechstzahl Vario-Kurven INNERHALB einer VF-Einheit (zwischen Umlenk- und
|
|
;; Motorstation) - Nutzer-Regel 2026-10-22. Zwei Kurven bedeuten hoechstens
|
|
;; drei VF-Geraden im selben Lauf; danach muss die Einheit mit einer
|
|
;; Motorstation schliessen und eine neue mit Umlenkstation beginnen.
|
|
;; Geprueft in vfl-m2-lauf-grenzen (vf_linienzug.lsp, Modus 2).
|
|
(if (null *vfk-vf-kurven-max*) (setq *vfk-vf-kurven-max* 2))
|
|
|
|
(setq *vfk-konstanten-geladen* t)
|
|
(princ)
|
|
(princ)
|