export: Separator-Typ VF/GF aus der Ketten-Einheit statt Bau-XDATA

Der Typ (Merkmal "Typ") jeder Separator-Zeile kommt jetzt an EINER Stelle
aus der Einheiten-Schneidung csv:kette-einheiten (neu: csv:kette-sep-typen,
eingetragen in csv:ketten-verarbeiten) - dieselbe Quelle wie die
Einheiten-Boundingbox. VF = Separator direkt vor der Umlenkstation bzw.
zwischen Umlenk- und Motorstation, sonst GF.

Die bauzeitige XDATA SSG_SEP_TYP (ssg-sep-typ-xdata-schreiben/-lesen,
15 Einfuegestellen) entfaellt. Sie war teils falsch: der Separator vor dem
ES hinter einer Motorstation bekam "VF", und ein sep_nach-Separator einer
GF, den die folgende VF-Einheit als Einlauf nutzt, blieb "GF"
(HundM05: Sep1/5/7/9/11 und Sep2).

Unit-Tests csv:kette-sep-typen in tests/test_unit.lsp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Samer Ayadi
2026-09-28 11:23:27 +02:00
co-authored by Claude Opus 5.5
parent 96ca43eff5
commit e67f7cc1aa
9 changed files with 85 additions and 105 deletions
+20
View File
@@ -482,6 +482,26 @@
'(("GF" (1 2)) ("VF" (3 4 5)))
(csv:kette-einheiten '("AS" "SEP" "BOGEN" "UMLENKSTATION" "STRECKENELEMENT" "MOTORSTATION" "ES")))
;; --- csv:kette-sep-typen: Separator erbt den Typ seiner Einheit ---
;; HundM05 VF_5: Einlauf-Separator vor der Umlenkstation (2) -> VF; der
;; Separator hinter der Motorstation (11) -> GF; der Separator hinter dem
;; Gefaellestueck, der zugleich Einlauf der zweiten VF ist (13) -> VF; der
;; Separator vor dem ES (27) -> GF.
(tu-eq "csv:kette-sep-typen/hundm05"
'((2 . "VF") (11 . "GF") (13 . "VF") (27 . "GF"))
(csv:kette-sep-typen _kette-hundm05))
;; Separator INNERHALB der VF (vor der Motorstation) -> VF.
(tu-eq "csv:kette-sep-typen/sep-im-koerper"
'((1 . "VF") (4 . "VF") (7 . "GF"))
(csv:kette-sep-typen '("AS" "SEP" "UMLENKSTATION" "STRECKENELEMENT" "SEP"
"STRECKENELEMENT" "MOTORSTATION" "SEP" "ES")))
;; Reine Gefaellestrecke -> alle GF; Kette ohne Separator -> nil.
(tu-eq "csv:kette-sep-typen/nur-gf"
'((1 . "GF") (3 . "GF"))
(csv:kette-sep-typen '("AS" "SEP" "STRECKENELEMENT" "SEP" "ES")))
(tu-nil "csv:kette-sep-typen/ohne-sep"
(csv:kette-sep-typen '("AS" "STRECKENELEMENT" "ES")))
;; --- csv:kette-ordnen: Vektorkette K2 -> K1, unabhaengig von der
;; Eingangsreihenfolge; Start am AS. rec wird dafuer nicht gebraucht (nil).
(setq _t-as (list "AS" nil '(0.0 0.0 0.0) '(10.0 0.0 0.0)))