;; ============================================================ ;; 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 35305.93 13093.90 28772.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 35705.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). Die AN8-Seite ;; ist NICHT beliebig: der Export legt Bahn L links von AN8->SP8, der ;; Materialfluss setzt den Bahnwechsel ans AN8-Ende. Kreisel_Showroom_06 ;; (UZS) hat AN8 darum im OSTEN, sonst wird Bahn L zur Sackgasse. ;; - 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 :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)