HundM05: fehlende BTMT Be-/Entladung nachgetragen

TEST_HUNDM05 baute bisher keine BTMT-Beladung/SC_Entladung-Stationen,
weil hundm05.json anders als mubea.json nie Eintraege dafuer hatte -
dadurch fehlten sie im CSV-Export der Testanlage. Koordinaten/Rotation
aus dem Insertpoint/K1-KOS-String der realen Referenz-CSV
(hundmM05_1.csv) dekodiert und als "block"-Eintraege ergaenzt; der
bestehende generische _.INSERT-Pfad in hundm05:bau-sensor baut sie ohne
weitere Code-Aenderung. Kommentare/Doku (test_hundm05.lsp,
object_data.md Abschnitt 5) an die jetzt nicht mehr auf Separator/
Scanner beschraenkte Nutzung angepasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-10 10:28:31 +02:00
parent 332bd24ab0
commit 776ab05f92
4 changed files with 112 additions and 25 deletions
+20 -14
View File
@@ -59,10 +59,14 @@
;; unveraendert ans Dateiende (sonst waeren sie beim naechsten Lauf weg).
;;
;; Unterstuetzt: Kreisel (function "insert", wie test_kreisel.lsp) und
;; Separator/Scanner (zusaetzlich "block", wie in mubea.json - Schema
;; tests/testdata/object_data.md Abschnitt 5). Unterscheidung ueber das
;; Feld "block": nur Separator/Scanner-Eintraege haben es.
;; Weitere Arten kommen als eigener cond-Zweig dazu.
;; beliebige eigenstaendige Bloecke ueber "block" (Separator/Scanner sowie
;; BTMT-Beladung/SC_Entladung, wie in mubea.json - Schema tests/testdata/
;; object_data.md Abschnitt 5). Unterscheidung ueber das Feld "block": nur
;; Bloecke haben es, Kreisel-Eintraege nicht. hundm05:bau-sensor ist dabei
;; blockname-agnostisch (reiner _.INSERT), der "kind"-Wert "sensor" bleibt
;; als Sammelbegriff fuer "kein Kreisel" bestehen (siehe dort).
;; Weitere Arten (die kein reiner _.INSERT sind) kommen als eigener
;; cond-Zweig dazu.
(defun hundm05:zusatz-objekt-p (obj)
(and (ssg-val obj "function")
@@ -119,16 +123,18 @@
(vsp-set (vsp-set rec "status" "abbruch") "fehler_text"
"kreisel-insert-script lieferte nil"))))))
;; Separator/Scanner bauen ("block"-Eintraege, siehe object_data.md
;; Abschnitt 5). ils-insert-sensor (SSG_LIB_Commands.lsp) ist dafuer NICHT
;; scriptbar (fragt Punkt/Rotation per getpoint/pause in einer Schleife) -
;; wir bauen den _.INSERT darum direkt selbst nach, wie
;; mubea:build-separator-one in tests/test_mubea.lsp es fuer die
;; Mubea-Anlage schon vorgemacht hat (dieselbe Vorlage, hier auf das
;; hundm05:bau-*/vsp-rec-neu-Record-Format dieser Datei uebertragen statt
;; mubeas eigenes result-json). "sensor" als Sammelbegriff fuer den "kind"-
;; Wert, weil dieselbe Routine Separator UND Scanner einfuegt - genau wie
;; ils-insert-sensor selbst.
;; Separator/Scanner/BTMT-Beladung/SC_Entladung bauen ("block"-Eintraege,
;; siehe object_data.md Abschnitt 5). ils-insert-sensor/ils-insert-station
;; (SSG_LIB_Commands.lsp) sind dafuer NICHT scriptbar (fragen Punkt/Rotation
;; per getpoint/pause in einer Schleife) - wir bauen den _.INSERT darum
;; direkt selbst nach, wie mubea:build-separator-one in tests/test_mubea.lsp
;; es fuer die Mubea-Anlage (inkl. deren BTMT-Stationen) schon vorgemacht hat
;; (dieselbe Vorlage, hier auf das hundm05:bau-*/vsp-rec-neu-Record-Format
;; dieser Datei uebertragen statt mubeas eigenes result-json). Der Blockname
;; kommt unveraendert aus dem "block"-Feld - kein Katalog/Whitelist noetig,
;; jeder ueber ssg-ils-block-laden aufloesbare Blockname funktioniert. "sensor"
;; bleibt als Sammelbegriff fuer den "kind"-Wert (= "kein Kreisel"), auch wenn
;; inzwischen nicht mehr nur Separator/Scanner darueberlaufen.
(defun hundm05:bau-sensor (obj / id blockname x y z rotation pt eff n ent ed rec)
(setq id (ssg-val obj "id"))
(setq blockname (ssg-val obj "block"))