[REFACTOR] VF-Linienzug: GF-Bogen/Vario-Kurve-Winkel zentral aus *vfk-gf-bogen-winkel*
Statt das '(30 60 90)-Literal an ~12 Stellen in vf_linienzug zu wiederholen (Schema, schema-feld-pruefen, Live-Menue GF-Bogen + Vario-Kurve, Slice-Reader, beide Edit-Dialoge), verweisen jetzt alle auf die EINMALIGE zentrale Definition *vfk-gf-bogen-winkel* in vf_konstanten.lsp (war dort schon vorhanden, wurde aber nirgends genutzt). Kein Config-Eintrag (bewusst nicht in component_defaults.json): die Winkel sind an die vorhandenen DWG-Bloecke gebunden, eine Config waere nur halb verdrahtet. vf_konstanten ist zentrale Quelle; vf_linienzug hat einen Fallback, falls die Datei nicht geladen wurde. Werte unveraendert (30/60/90), Journal/Blocknamen kompatibel. Paren-Balance geprueft. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -70,10 +70,14 @@
|
||||
;; nicht greifen.
|
||||
(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, ueberall als
|
||||
;; Menue-Auswahl hartcodiert (KEIN Config-Bezug, auch nicht ueber
|
||||
;; ssg-cfg-or) - Blocknamen "Gefaellebogen_<seite>_<winkel>_R500" leiten
|
||||
;; sich direkt aus diesen drei Werten ab.
|
||||
;; 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)))
|
||||
|
||||
;; Etage-Typ: Schwenkwinkel der Ein-/Auslauf-Schraegsektion. Bereits als
|
||||
|
||||
+20
-15
@@ -215,6 +215,11 @@
|
||||
;; seite "1"=links / "2"=rechts
|
||||
;; menue fuehrende "Naechstes Element waehlen"-Antwort (nur GF-Bogen: "1")
|
||||
;; winkel GF-Bogen/Vario-Kurve als INT (30/60/90), AS/ES als STR ("30"/"90")
|
||||
;; GF-Bogen/Vario-Kurve-Winkel kommen zentral aus *vfk-gf-bogen-winkel*
|
||||
;; (vf_konstanten.lsp, einmalige Definition '(30 60 90)) - hier nicht mehr
|
||||
;; hartcodiert. Daher (list ...) statt Quote fuer die betroffenen Winkel-Slots.
|
||||
;; Fallback, falls vf_konstanten (aus irgendeinem Grund) nicht geladen wurde.
|
||||
(if (null *vfk-gf-bogen-winkel*) (setq *vfk-gf-bogen-winkel* '(30 60 90)))
|
||||
(setq *vfl-glied-schema*
|
||||
(list
|
||||
(cons "AS"
|
||||
@@ -225,10 +230,10 @@
|
||||
'("seite" "STR" ("1" "2"))))
|
||||
(cons "GF-Bogen"
|
||||
(list '("menue" "STR" ("1"))
|
||||
'("winkel" "INT" (30 60 90))
|
||||
(list "winkel" "INT" *vfk-gf-bogen-winkel*)
|
||||
'("seite" "STR" ("1" "2"))))
|
||||
(cons "Vario-Kurve"
|
||||
(list '("winkel" "INT" (30 60 90))
|
||||
(list (list "winkel" "INT" *vfk-gf-bogen-winkel*)
|
||||
'("seite" "STR" ("1" "2"))
|
||||
'("variante" "STR" ("1" "2"))))))
|
||||
|
||||
@@ -361,7 +366,7 @@
|
||||
((= kind "REAL") (cons "hoehe" nil)) ; Zielhoehe (Auf/Ab bzw. Linie-VF)
|
||||
((= kind "PT") (cons "punkt" nil))
|
||||
((= kind "INT") ; eingebettete Vario-Kurve
|
||||
(setq fehler (vfl-schema-feld-pruefen '("vk-winkel" "INT" (30 60 90)) val))
|
||||
(setq fehler (vfl-schema-feld-pruefen (list "vk-winkel" "INT" *vfk-gf-bogen-winkel*) val))
|
||||
(cons "variokurve.winkel" fehler))
|
||||
((= kind "STR")
|
||||
(cond
|
||||
@@ -695,7 +700,7 @@
|
||||
(unload_dialog dat)
|
||||
(if (= ergebnis 1)
|
||||
(vflw-pending-push-all
|
||||
(list (nth (atoi gwinkel) '(30 60 90))
|
||||
(list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*)
|
||||
(if (= gseite "1") "2" "1")
|
||||
(if (= gvariante "1") "2" "1"))))))
|
||||
(princ))
|
||||
@@ -2506,7 +2511,7 @@
|
||||
(vl-catch-all-apply 'vflw-gruppe-winkel-seite-impl
|
||||
(list "vfl-gf-bogen-winkel-header"
|
||||
(list (ssg-text "vfl-winkel-30") (ssg-text "vfl-winkel-60") (ssg-text "vfl-winkel-90"))
|
||||
'(30 60 90))))
|
||||
*vfk-gf-bogen-winkel*)))
|
||||
(princ (ssg-text "vfl-gf-bogen-winkel-header"))
|
||||
(princ (ssg-text "vfl-winkel-30"))
|
||||
(princ (ssg-text "vfl-winkel-60"))
|
||||
@@ -2514,7 +2519,7 @@
|
||||
(setq bwinkel (vfl-menu-winkel (ssg-text "vfl-prompt-wahl-winkel-30-60-90")
|
||||
(list (ssg-text "vfl-winkel-30") (ssg-text "vfl-winkel-60")
|
||||
(ssg-text "vfl-winkel-90"))
|
||||
'(30 60 90) 90 "vfl-gf-bogen-winkel-header"))
|
||||
*vfk-gf-bogen-winkel* 90 "vfl-gf-bogen-winkel-header"))
|
||||
(princ (ssg-text "vfl-gf-bogen-seite-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
@@ -2589,7 +2594,7 @@
|
||||
(setq kwinkel (vfl-menu-winkel (ssg-text "vfl-prompt-wahl-winkel-30-60-90")
|
||||
(list (ssg-text "vfl-opt3-30grad") (ssg-text "vfl-opt2-60grad")
|
||||
(ssg-text "vfl-opt1-90grad"))
|
||||
'(30 60 90) 90 "vfl-variokurve-winkel-header"))
|
||||
*vfk-gf-bogen-winkel* 90 "vfl-variokurve-winkel-header"))
|
||||
(princ (ssg-text "vfl-variokurve-seite-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
@@ -3663,7 +3668,7 @@
|
||||
(defun vfl-gf-bogen-slice-werte (slice / werte w s)
|
||||
(setq werte (vfl-schema-slice-werte "GF-Bogen" slice (list "1" 90 "1")))
|
||||
(setq w (cadr werte) s (caddr werte))
|
||||
(list (vfl-winkel-normieren w '(30 60 90) 90) s))
|
||||
(list (vfl-winkel-normieren w *vfk-gf-bogen-winkel* 90) s))
|
||||
|
||||
;; Pre-fill-faehiger Winkel+Seite-Dialog fuer den GF-Bogen (nutzt das
|
||||
;; bestehende vflw_winkel_seite-Tile aus dem Wizard-DCL, aber mit Vorbelegung
|
||||
@@ -3686,8 +3691,8 @@
|
||||
(add_list (ssg-text "vfl-winkel-90"))
|
||||
(end_list)
|
||||
;; Winkel 30/60/90 -> Listenposition 0/1/2
|
||||
(set_tile "winkel" (itoa (- (length '(30 60 90))
|
||||
(length (member vor-winkel '(30 60 90))))))
|
||||
(set_tile "winkel" (itoa (- (length *vfk-gf-bogen-winkel*)
|
||||
(length (member vor-winkel *vfk-gf-bogen-winkel*)))))
|
||||
(start_list "seite")
|
||||
(add_list (ssg-text "gf-seite-links"))
|
||||
(add_list (ssg-text "gf-seite-rechts"))
|
||||
@@ -3699,7 +3704,7 @@
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
(if (= ergebnis 1)
|
||||
(list (nth (atoi gwinkel) '(30 60 90)) ; Listenposition 0/1/2 -> 30/60/90
|
||||
(list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*) ; Listenposition 0/1/2 -> 30/60/90
|
||||
(if (= gseite "1") "2" "1")) ; Liste 0=links/1=rechts -> code "1"/"2"
|
||||
nil))))
|
||||
|
||||
@@ -3724,8 +3729,8 @@
|
||||
(add_list (ssg-text "vfl-opt1-90grad"))
|
||||
(end_list)
|
||||
;; Winkel 30/60/90 -> Listenposition 0/1/2
|
||||
(set_tile "winkel" (itoa (- (length '(30 60 90))
|
||||
(length (member vor-winkel '(30 60 90))))))
|
||||
(set_tile "winkel" (itoa (- (length *vfk-gf-bogen-winkel*)
|
||||
(length (member vor-winkel *vfk-gf-bogen-winkel*)))))
|
||||
(start_list "seite")
|
||||
(add_list (ssg-text "gf-seite-links"))
|
||||
(add_list (ssg-text "gf-seite-rechts"))
|
||||
@@ -3742,7 +3747,7 @@
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
(if (= ergebnis 1)
|
||||
(list (nth (atoi gwinkel) '(30 60 90)) ; Listenposition 0/1/2 -> 30/60/90
|
||||
(list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*) ; Listenposition 0/1/2 -> 30/60/90
|
||||
(if (= gseite "1") "2" "1") ; Liste 0=links/1=rechts -> "1"/"2"
|
||||
(if (= gvariante "1") "2" "1")) ; Liste 0=aussen/1=innen -> "1"/"2"
|
||||
nil))))
|
||||
@@ -3815,7 +3820,7 @@
|
||||
(defun vfl-vario-slice-werte (slice / werte)
|
||||
(setq werte (vfl-schema-slice-werte "Vario-Kurve" slice (list 90 "1" "2")))
|
||||
;; Winkel gegen Fremdwerte absichern (analog GF-Bogen).
|
||||
(list (vfl-winkel-normieren (car werte) '(30 60 90) 90)
|
||||
(list (vfl-winkel-normieren (car werte) *vfk-gf-bogen-winkel* 90)
|
||||
(cadr werte) (caddr werte)))
|
||||
|
||||
;; Neue Vario-Kurve-Slice bauen.
|
||||
|
||||
Reference in New Issue
Block a user