20fc01ab25
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
75 lines
3.6 KiB
Common Lisp
75 lines
3.6 KiB
Common Lisp
;; ============================================================
|
|
;; test_showroom_ils.lsp - Nachbau des ILS-3.0-Showrooms.
|
|
;;
|
|
;; Datenquelle: tests/testdata/showroom_ils.json. Entstehung in zwei Stufen:
|
|
;; 1. Scanner auf der Fremdzeichnung (flacher 2D-Plan, Hoehen vom Anwender):
|
|
;; python lib/dxf_scan_components.py \
|
|
;; C:/develop/sps_skel/data/Showroom_ILS_3_0.dxf data \
|
|
;; tests/testdata/showroom_ils.json --projekt Showroom \
|
|
;; --flach --ohne-hoehen \
|
|
;; --kreisel-achse 27797.93 16298.90 36705.93 16298.90 \
|
|
;; --kreisel-achse 28772.93 13093.90 35305.93 13093.90 \
|
|
;; --kreisel-hoehe 26997.93 3066.4 2226.4 \
|
|
;; --kreisel-hoehe 26997.93 12898.9 2226.4 \
|
|
;; --kreisel-hoehe 37105.93 9888.9 1700 \
|
|
;; --kreisel-hoehe 27397.93 16298.9 2226.4 \
|
|
;; --kreisel-hoehe 28372.93 13093.9 1970
|
|
;; 2. VON HAND (geht bei Stufe 1 verloren - danach neu eintragen):
|
|
;; Kreisel_Showroom_04 (vertikal, rechts) samt Separator/Scanner bei
|
|
;; y=14979 entfernt, dafuer VF_Showroom_01 (VarioFoerderer standard,
|
|
;; Auf von Kreisel_Showroom_03 zu Kreisel_Showroom_05) eingetragen.
|
|
;; Showroom_BTMT_BEL_01 (Kreisel_Showroom_03) und Showroom_BTMT_ENT_01
|
|
;; (Kreisel_Showroom_01) aus der gebauten Zeichnung uebernommen
|
|
;; (results/export_raw.json, EXPORTCSV vom 2026-10-07).
|
|
;;
|
|
;; Inhalt: 5 Kreisel, 1 VarioFoerderer, 11 Gefaellestrecken (Modus 1),
|
|
;; Separatoren/Scanner, BTMT Be- und Entladung.
|
|
;; - Ebenen: oben 2226.4 (Kreisel 01/02/05), Mitte 1970 (06), unten 1700 (03)
|
|
;; - in der gebauten Zeichnung KREISEL_1/2/4, KREISEL_5, KREISEL_3.
|
|
;; - Kreisel_Showroom_05/06 sind Schleifen ohne AN8/SP8 im Plan (an beiden
|
|
;; Enden Weichenboegen) - per --kreisel-achse als STANDARD-Kreisel
|
|
;; angenaehert (Radmitten = Mittelpunkte der PIN-Kreise).
|
|
;; - Weichen (WB-*/WM-*/WL-*/WR-*) werden bewusst NICHT nachgebaut.
|
|
;; - GF: den Winkel
|
|
;; und die Staustreckenlaenge rechnet dematic_arvato:gf-geometrie aus
|
|
;; hoehe_ende_mm (ES-Masse bei der Neigung gemessen), und
|
|
;; dematic_arvato:gf-endhoehe-pruefen meldet "warnung", wenn eine GF
|
|
;; den unteren Kreisel um mehr als 5 mm verfehlt.
|
|
;;
|
|
;; Keine eigene Bau-Logik: Eintragsschema und Lauf wie TEST_DEMATIC_ARVATO
|
|
;; (dematic_arvato:bau-datei aus tests/test_dematic_arvato.lsp).
|
|
;;
|
|
;; Aufruf in BricsCAD:
|
|
;; (load (strcat (getenv "DXFMAKRO") "/tests/test_showroom_ils.lsp"))
|
|
;; TEST_SHOWROOM_ILS
|
|
;; ============================================================
|
|
|
|
(if (not (boundp '*showroom-ils-records*)) (setq *showroom-ils-records* nil))
|
|
|
|
;; Beim LADEN holen (siehe test_dematic_arvato.lsp: per load definierte
|
|
;; Funktionen sind erst nach Rueckkehr zum Top-Level sichtbar).
|
|
(if (null (car (atoms-family 1 '("DEMATIC_ARVATO:BAU-DATEI"))))
|
|
(load (strcat (getenv "DXFMAKRO") "/tests/test_dematic_arvato.lsp")))
|
|
|
|
(defun showroom_ils:datei ()
|
|
(strcat (getenv "DXFMAKRO") "/tests/testdata/showroom_ils.json"))
|
|
|
|
(defun c:TEST_SHOWROOM_ILS ()
|
|
(setq *showroom-ils-records*
|
|
(dematic_arvato:bau-datei "TEST_SHOWROOM_ILS" "ILS 3.0 Showroom"
|
|
(showroom_ils:datei)))
|
|
(princ))
|
|
|
|
;; Ergebnis-Export (Konvention <name>:export-results fuer test_run_all.lsp)
|
|
(defun showroom_ils:export-results (out-dir / pfad)
|
|
(if (null *showroom-ils-records*)
|
|
(princ "\n Keine Showroom-Ergebnisse vorhanden.")
|
|
(progn
|
|
(vl-mkdir out-dir)
|
|
(setq pfad (strcat out-dir "/showroom_ils_results.json"))
|
|
(vsp-results-schreiben *showroom-ils-records* pfad)))
|
|
(princ))
|
|
|
|
(princ "\nTEST_SHOWROOM_ILS geladen. Aufruf: TEST_SHOWROOM_ILS")
|
|
(princ)
|