;; ============================================================ ;; ILS_test.lsp - Automatisierter ILS Kreisel-Test ;; ;; Oeffnet ILStest.dxf, erzeugt 5 Kreisel per draw-module ;; (gleiche Kernfunktion wie KreiselConnect/KreiselInsert), ;; exportiert CSV und speichert. ;; ;; Voraussetzung: SSG_LIB muss geladen sein (ssg_load.lsp). ;; ============================================================ (defun c:ILSTEST ( / test-pfad dxf-pfad abstand z-hoehe) (princ "\n========== ILS TEST START ==========") (setq test-pfad (getenv "DXFM_TESTS")) (if (null test-pfad) (progn (princ "\nFEHLER: DXFM_TESTS nicht gesetzt!") (exit)) ) ;; DXF oeffnen (erzeugt durch create_ILStest_dxf.py) (setq dxf-pfad (strcat test-pfad "/ILStest.dxf")) (if (not (findfile dxf-pfad)) (progn (princ (strcat "\nFEHLER: " dxf-pfad " nicht gefunden!")) (exit)) ) (command "_.OPEN" dxf-pfad) ;; Konstanten fuer die Geometrie ;; Linien: H1 bei Y=0, H2 bei Y=5000, V1 bei X=0, V2 bei X=5000 ;; Alle auf Z=2500, je 2000mm lang ;; Kreiseldurchmesser=800 -> Abstand = Linienabstand - Durchmesser (setq abstand (- 5000.0 *kreisel-durchmesser*)) ;; 4200mm (setq z-hoehe 2500.0) (ssg-start "ILS TEST" '(("OSMODE") ("CECOLOR") ("ATTREQ") ("ATTDIA"))) (setvar "OSMODE" 0) (setvar "ATTREQ" 0) (setvar "ATTDIA" 0) ;; ---- Kreisel 1: Horizontal, oben->unten (90°), STANDARD ---- ;; AN-Punkt auf H2 (Y=5000), SP-Richtung nach unten (Y=0) ;; Rotation 270° = von oben nach unten (princ "\n[TEST] Kreisel 1: Horizontal oben->unten, STANDARD") (draw-module (list 500.0 5000.0 z-hoehe) abstand 270.0 (list (cons "KREISELART" "STANDARD") (cons "NAME" "TEST_H_ObenUnten"))) ;; ---- Kreisel 2: Horizontal, unten->oben (270°), PIN ---- ;; AN-Punkt auf H1 (Y=0), SP-Richtung nach oben (Y=5000) ;; Rotation 90° = von unten nach oben (princ "\n[TEST] Kreisel 2: Horizontal unten->oben, PIN") (draw-module (list 1500.0 0.0 z-hoehe) abstand 90.0 (list (cons "KREISELART" "PIN") (cons "NAME" "TEST_H_UntenOben"))) ;; ---- Kreisel 3: Vertikal, links->rechts (0°), PIN ---- ;; AN-Punkt auf V1 (X=0), SP-Richtung nach rechts (X=5000) ;; Rotation 0° = von links nach rechts (princ "\n[TEST] Kreisel 3: Vertikal links->rechts, PIN") (draw-module (list 0.0 500.0 z-hoehe) abstand 0.0 (list (cons "KREISELART" "PIN") (cons "NAME" "TEST_V_LinksRechts"))) ;; ---- Kreisel 4: Vertikal, rechts->links (180°), STANDARD ---- ;; AN-Punkt auf V2 (X=5000), SP-Richtung nach links (X=0) ;; Rotation 180° = von rechts nach links (princ "\n[TEST] Kreisel 4: Vertikal rechts->links, STANDARD") (draw-module (list 5000.0 1500.0 z-hoehe) abstand 180.0 (list (cons "KREISELART" "STANDARD") (cons "NAME" "TEST_V_RechtsLinks"))) ;; ---- Kreisel 5: KreiselInsert-Equivalent ---- ;; Position 3000/3000/2000, 6000mm lang, PIN, 10 Grad (princ "\n[TEST] Kreisel 5: Insert 3000/3000/2000, 6000mm, PIN, 10°") (draw-module (list 3000.0 3000.0 2000.0) 6000.0 10.0 (list (cons "KREISELART" "PIN") (cons "NAME" "TEST_Insert"))) (ssg-end) ;; Speichern als DXF (command "_.SAVEAS" "DXF" (strcat test-pfad "/ILStest.dxf") "_Y") (princ "\n[TEST] DXF gespeichert.") ;; Export CSV (nutzt csv:run-export aus tests.lsp) ;; Ergebnisse landen in DXFM_RESULTS (princ "\n[TEST] Starte CSV-Export...") (csv:run-export "ILSTEST" "export_csv.py" "ILStest_export.csv") (princ "\n========== ILS TEST ENDE ==========") (princ) ) (princ "\nILS_test.lsp geladen. Befehl: ILSTEST") (princ)