Alle LISP-Module auf ssg-cfg-or umgestellt (hardcodierte Konstanten entfernt)
Alle bisher hart codierten Geometrie-, Farb- und Default-Werte in den
LISP-Modulen werden jetzt ueber ssg-cfg-or aus component_defaults.json
gelesen (mit Fallback auf den bisherigen Wert als Sicherheitsnetz).
Lisp/KreiselInsert.lsp:
- Geometrie-Konstanten: *kreisel-durchmesser*, *kreisel-pin-abstand*,
*kreisel-default-laenge*, *kreisel-default-hoehe*, *eckrad-default-hoehe*
- Beschriftungs-Einstellungen: Texthöhe, Farbe, Abstand
- Linienfarben (color_linie_1/2, color_pin) fuer Layer/CECOLOR
- Toleranzen: toleranz_kollinear, toleranz_winkel
Lisp/OmniModulInsert.lsp:
- Default-Werte fuer HOEHE und DREHUNG beim Einfuegen und Bearbeiten
- Textgroessen (textHeight, textGap) fuer Vorschau-Dialog
- Max-Laengen fuer AP60, AP110, APG110
Lisp/VarioFoerderer.lsp:
- staustrecke-basis, FESTE_HORIZONTAL
- bogen-winkel Liste (zweifach, in Bibliotheks-Extraktion und Berechnung)
- gefaelle_winkel (3°) an allen Stellen im Anlagen-Aufbau
- skalierung_basis fuer Block-Skalierung
- separator_block_dx/dz, station_block_dx/dz fuer Blockeinfuegung
Lisp/Gefaellestrecke.lsp:
- Default-Wert fuer deltaL, default_winkel
- separator_breite fuer Laengenberechnung
Lisp/export.lsp:
- default_hoehe fuer HOEHE-Attribut-Fallback in Bogen/Weiche/Gerade
- default_gerade_laenge fuer Laenge-Fallback
- mm_pro_meter (1000.0) fuer Umrechnung mm->m bei Laengenangaben
Lisp/ssg_dialog.lsp:
- dialog_preview_bg_color (-18) fuer fill_image Hintergrundfarbe
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+16
-16
@@ -30,11 +30,11 @@
|
||||
(setq *block-path* block-pfad)
|
||||
(princ (strcat "\nBlock-Pfad aktiv: " block-pfad))
|
||||
|
||||
;; Kreisel-Geometrie-Konstanten
|
||||
(setq *kreisel-durchmesser* 800.0) ;; Kreisdurchmesser AN8/SP8
|
||||
(setq *kreisel-pin-abstand* 100.0) ;; Einrueckung PIN-Linie vom Kreisrand
|
||||
(setq *kreisel-default-laenge* 2300.0) ;; Standard-Tangentenlaenge
|
||||
(setq *kreisel-default-hoehe* 2000.0) ;; Standard-Höhe (Z-Koordinate)
|
||||
;; Kreisel-Geometrie-Konstanten (aus Config oder Fallback)
|
||||
(setq *kreisel-durchmesser* (ssg-cfg-or "kreisel" "durchmesser" 800.0))
|
||||
(setq *kreisel-pin-abstand* (ssg-cfg-or "kreisel" "pin_abstand" 100.0))
|
||||
(setq *kreisel-default-laenge* (ssg-cfg-or "kreisel" "default_laenge" 2300.0))
|
||||
(setq *kreisel-default-hoehe* (ssg-cfg-or "kreisel" "default_hoehe" 2000.0))
|
||||
|
||||
;; Attribut-Definitionen: ((TAG DEFAULT) ...)
|
||||
(setq *kreisel-attrib-defs*
|
||||
@@ -51,7 +51,7 @@
|
||||
)
|
||||
|
||||
;; Eckrad-Einstellungen
|
||||
(setq *eckrad-default-hoehe* 2000.0) ;; Standard-Höhe (Z-Koordinate)
|
||||
(setq *eckrad-default-hoehe* (ssg-cfg-or "eckrad" "default_hoehe" 2000.0))
|
||||
|
||||
;; Eckrad Attribut-Definitionen: ((TAG DEFAULT) ...)
|
||||
(setq *eckrad-attrib-defs*
|
||||
@@ -67,9 +67,9 @@
|
||||
|
||||
;; Beschriftungs-Einstellungen (NUR EINMAL definieren!)
|
||||
(setq *kreisel-beschriftung-layer* "S_KRS_BESCHR")
|
||||
(setq *kreisel-beschriftung-hoehe* 100.0) ;; Texthöhe in mm
|
||||
(setq *kreisel-beschriftung-farbe* 7) ;; 7 = weiß
|
||||
(setq *kreisel-beschriftung-abstand-oben* 0.0) ;; Abstand über Kreisel-Mitte
|
||||
(setq *kreisel-beschriftung-hoehe* (ssg-cfg-or "kreisel" "label_hoehe" 100.0))
|
||||
(setq *kreisel-beschriftung-farbe* (ssg-cfg-or "kreisel" "label_farbe" 7))
|
||||
(setq *kreisel-beschriftung-abstand-oben* (ssg-cfg-or "kreisel" "label_abstand_oben" 0.0))
|
||||
(setq *kreisel-beschriftung-schriftart* "Arial") ;; Schriftart
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
(setq cross (abs (- (* (car d1) (cadr d2)) (* (cadr d1) (car d2))))
|
||||
len1 (sqrt (+ (* (car d1) (car d1)) (* (cadr d1) (cadr d1))))
|
||||
len2 (sqrt (+ (* (car d2) (car d2)) (* (cadr d2) (cadr d2)))))
|
||||
(< (/ cross (* len1 len2)) 0.01)
|
||||
(< (/ cross (* len1 len2)) (ssg-cfg-or "kreisel" "toleranz_kollinear" 0.01))
|
||||
)
|
||||
|
||||
|
||||
@@ -373,8 +373,8 @@
|
||||
;; Tangenten auf Layer S_LP
|
||||
(ssg-make-layer "S_LP" "7" T)
|
||||
(if is-pin
|
||||
(setvar "CECOLOR" "5")
|
||||
(setvar "CECOLOR" "1")
|
||||
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_linie_1" 5)))
|
||||
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_linie_2" 1)))
|
||||
)
|
||||
|
||||
;; Obere Tangente
|
||||
@@ -385,8 +385,8 @@
|
||||
;; PIN-Linien
|
||||
(if is-pin
|
||||
(progn
|
||||
(ssg-make-layer "pinbereich" "3" T)
|
||||
(setvar "CECOLOR" "3")
|
||||
(ssg-make-layer "pinbereich" (itoa (ssg-cfg-or "kreisel" "color_pin" 3)) T)
|
||||
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_pin" 3)))
|
||||
|
||||
;; Obere PIN-Linie
|
||||
(command "_.LINE" (list *kreisel-durchmesser* pin-y 0) (list (float abstand) pin-y 0) "")
|
||||
@@ -745,7 +745,7 @@
|
||||
(foreach entry *kreisel-ausrichtungen*
|
||||
(setq diff (abs (- (rem (+ rot 360.0) 360.0)
|
||||
(rem (+ (cadr entry) 360.0) 360.0))))
|
||||
(if (< diff 1.0) (setq idx i))
|
||||
(if (< diff (ssg-cfg-or "kreisel" "toleranz_winkel" 1.0)) (setq idx i))
|
||||
(setq i (1+ i))
|
||||
)
|
||||
idx
|
||||
@@ -966,7 +966,7 @@
|
||||
dy (- (cadr ptDir) (cadr ptTangent)))
|
||||
(setq dist (sqrt (+ (* dx dx) (* dy dy))))
|
||||
|
||||
(if (<= dist 0.001)
|
||||
(if (<= dist (ssg-cfg-or "kreisel" "toleranz_min_distanz" 0.001))
|
||||
(progn
|
||||
(princ "\nFehler: Beruehr- und Richtungspunkt sind identisch!")
|
||||
(dbgreturn nil)
|
||||
|
||||
Reference in New Issue
Block a user