Files
dxfmakros/data/json/component_defaults.json
m.stangl cc301b318e JSON-Konfigurationssystem in ssg_core.lsp eingefuehrt
data/json/component_defaults.json: Neue zentrale Konfigurationsdatei
mit Standardwerten fuer alle Komponenten (kreisel, eckrad, omniflo,
vario, gefaelle, infrastruktur). Bisher waren Konstanten (Masse,
Farben, Toleranzen, Defaults) hart im LISP-Code eingebettet.

Lisp/ssg_core.lsp: JSON-Parser und Config-Zugriff hinzugefuegt:
  - ssg-read-file-lines: Datei zeilenweise einlesen
  - ssg-cfg-trim, ssg-cfg-split-comma: String-Hilfsfunktionen
  - ssg-cfg-parse-value, ssg-cfg-parse-array: JSON-Wert-Parser
    (unterstuetzt String, Zahl, Boolean, Array, null)
  - ssg-cfg-parse-section: JSON-Sektion zu Assoziationsliste parsen
  - ssg-load-config: Laedt component_defaults.json in *ssg-config*
  - ssg-cfg: Wert aus *ssg-config* lesen, nil wenn nicht vorhanden
  - ssg-cfg-or: Wert aus Config lesen mit Fallback-Default

Lisp/ssg_load.lsp: (ssg-load-config) wird direkt nach dem Laden von
ssg_core.lsp aufgerufen, sodass die Config beim Laden aller weiteren
Module bereits verfuegbar ist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 11:25:54 +02:00

56 lines
1.4 KiB
JSON

{
"kreisel": {
"durchmesser": 800.0,
"pin_abstand": 100.0,
"default_laenge": 2300.0,
"default_hoehe": 2000.0,
"label_hoehe": 100.0,
"label_farbe": 7,
"label_abstand_oben": 0.0,
"color_linie_1": 5,
"color_linie_2": 1,
"color_pin": 3,
"toleranz_kollinear": 0.01,
"toleranz_winkel": 1.0,
"toleranz_min_distanz": 0.001
},
"eckrad": {
"default_hoehe": 2000.0
},
"omniflo": {
"text_height": 100.0,
"text_gap": 20.0,
"default_hoehe": "2000",
"default_drehung": "0",
"laengemax_ap60": 7000.0,
"laengemax_ap110": 6000.0,
"laengemax_apg110": 6000.0,
"default_gerade_laenge": "2000",
"bogen_winkel": [180, 90, 67.5, 45, 22.5],
"weichen_winkel_90": 90,
"weichen_winkel_45": 45,
"weichen_winkel_parallel": 0,
"weichen_winkel_koerper": 22.5
},
"vario": {
"staustrecke_basis": 1000,
"feste_horizontal": 1600,
"bogen_winkel": [3, 6, 9, 12, 15, 18, 21, 27, 33, 39, 45, 51],
"gefaelle_winkel": 3,
"separator_block_dx": 300,
"separator_block_dz": 0,
"station_block_dx": 499,
"station_block_dz": -26,
"skalierung_basis": 1000.0
},
"gefaelle": {
"default_delta_l": 5000.0,
"default_winkel": 3.0,
"separator_breite": 300.0
},
"infrastruktur": {
"attdef_y_spacing_factor": 2.0,
"dialog_preview_bg_color": -18,
"mm_pro_meter": 1000.0
}
}