[MERGE] Lager branch in main
This commit is contained in:
Binary file not shown.
@@ -76,6 +76,15 @@
|
||||
# erkennt sie wie alle Omniflo-Teile ueber TEILEART "Omniflo ..." und schreibt
|
||||
# je Nummer aus ARTINR eine Omniflo-Zeile.
|
||||
#
|
||||
# pattern_kettenfoerderer: Kettenfoerderer/Schraegfoerderer Stahl
|
||||
# (KettenFoerderer.lsp, KF_<n>). Eine selbst zusammengebaute Baugruppe wie
|
||||
# GR_*, mit eigenen Attributen TEILEART ("Omniflo Kettenfoerderer ...") und
|
||||
# ARTINR - erkannt wird sie darum im allgemeinen Omniflo-Zweig von
|
||||
# export_sivas.py. Die drei Bausteine darin (Umlenkstation, skaliertes
|
||||
# Zwischenstueck, Antriebsstation) werden NICHT einzeln gezaehlt. Die im
|
||||
# Dialog gewaehlten Verbindungselemente stehen als Attribut
|
||||
# VERBINDUNGSELEMENTE am Block und landen im Merkmale-/details-JSON.
|
||||
#
|
||||
# pattern_nested_bogen/_streckenelement/_umlenkstation/_motorstation: die
|
||||
# uebrigen Bausteine einer VF_n/GF_n-Kette (Boegen, gerade Foerderer-/
|
||||
# Gefaellestrecken-Segmente, Umlenk-/Motorstation). Wie pattern_schleuselement
|
||||
@@ -136,6 +145,7 @@ pattern_gerade= AP110*, AP_110*, AP60*
|
||||
# Gerüst
|
||||
pattern_geruest= GR_*
|
||||
pattern_verbinder= VB_*, TV_*
|
||||
pattern_kettenfoerderer= KF_*
|
||||
|
||||
[python]
|
||||
# Interpreter fuer die Export-Skripte (lib/export_csv.py, lib/export_sivas.py).
|
||||
|
||||
@@ -168,6 +168,13 @@ gf_beschriftung = GF_Beschriftung, 7
|
||||
# Lisp/DrawPlanquadrate.lsp (DRAW_PLANQUADRATE).
|
||||
planquadrate = ZZ_Planquadrate, 8
|
||||
|
||||
# Kettenfoerderer (Schraegfoerderer Stahl), aus Umlenkstation + skaliertem
|
||||
# Zwischenstueck + Antriebsstation zusammengebauter Block KF_n - siehe
|
||||
# Lisp/KettenFoerderer.lsp (KETTENFOERDERER). Wie VF_n/GF_n eine
|
||||
# ZUSAMMENGEBAUTE Baugruppe ohne eigene Blockdatei, der Layer muss darum hier
|
||||
# stehen. Die drei Bausteine darin behalten ihre eigenen Layer.
|
||||
kettenfoerderer = Omni_Kettenfoerderer, 4
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Lagerplanung (LagerInsert.lsp, Bloecke LG_*)
|
||||
|
||||
+97
-4
@@ -28,19 +28,45 @@
|
||||
# (TRANSFORMS-Dict), die den ermittelten Rohwert
|
||||
# (Attribut- oder Default-Wert) in die Sivas-Anzeige
|
||||
# umwandelt (z.B. "0"/"1" -> "Ja"/"Nein"). Bekannte Namen:
|
||||
# ja_nein, geruest_typ_anzeige. Ein unbekannter Name
|
||||
# ja_nein, geruest_typ_anzeige, mm_zu_m, as_es_vorhanden,
|
||||
# as_es_winkel, as_seite, es_seite. Ein unbekannter Name
|
||||
# bricht NICHT ab, der Rohwert wird unveraendert
|
||||
# uebernommen (siehe sivas_mapping.anwenden).
|
||||
# Soll ein Merkmal ohne eigenes Attribut nur per Transform
|
||||
# entstehen, braucht die Zeile trotzdem den ":" vor dem
|
||||
# "|" ("WINKEL_AS : | as_es_vorhanden") - sonst gilt der
|
||||
# Transform-Name als Fallback-Attributname.
|
||||
# Transforms, die mit @braucht_attribs markiert sind
|
||||
# (as_seite/es_seite), sehen zusaetzlich alle uebrigen
|
||||
# Attribute des Blocks - noetig, wenn ein Merkmal von
|
||||
# einem ZWEITEN Attribut abhaengt (Seite nur, wenn der
|
||||
# zugehoerige Winkel ueberhaupt ein Element ausweist).
|
||||
#
|
||||
# Abschnittsnamen entsprechen den bisherigen build_*_details-Funktionen in
|
||||
# export_sivas.py: [gefaellestrecke], [kreisel], [eckrad], [geruest]. Die
|
||||
# geruest-typ-Anzeige-Tabelle (ASCII-Attributwert -> Sivas-Klartext mit
|
||||
# Umlauten) UND SEPARATOR_BEARBEITUNG_ANZEIGE bleiben eigene, kleine
|
||||
# Abschnitte weiter unten.
|
||||
# Anzeige-Tabellen (ASCII-Attributwert -> Sivas-Klartext/Optionswert:
|
||||
# [geruest_typ_anzeige], [as_es_winkel_anzeige]) UND
|
||||
# SEPARATOR_BEARBEITUNG_ANZEIGE bleiben eigene, kleine Abschnitte weiter
|
||||
# unten.
|
||||
#
|
||||
# [gefaellestrecke] und [variofoerderer] fuehren die AS-/ES-Merkmale
|
||||
# (4427-4432) absichtlich DOPPELT: GF_N- und VF_N-Bloecke tragen dieselben
|
||||
# Attribute des gemeinsamen Strecken-Schemas, und jeder Abschnitt soll fuer
|
||||
# sich lesbar bleiben. Aenderungen dort bitte in beiden nachziehen (der Test
|
||||
# tests/test_export_sivas_as_es.py::test_zuordnung_steht_in_der_config wacht
|
||||
# darueber).
|
||||
# ============================================================
|
||||
|
||||
[gefaellestrecke]
|
||||
2950= MONTAGEHOEHE_m : 0
|
||||
# AS-/ES-Element, Reihenfolge wie die Sivas-Hierarchie (identisch in
|
||||
# [variofoerderer]): 4431/4432 Ja/Nein schalten Winkel und Seite frei.
|
||||
4431= WINKEL_AS : | as_es_vorhanden
|
||||
4427= WINKEL_AS : | as_es_winkel
|
||||
4428= SEITE_AS : | as_seite
|
||||
4432= WINKEL_ES : | as_es_vorhanden
|
||||
4429= WINKEL_ES : | as_es_winkel
|
||||
4430= SEITE_ES : | es_seite
|
||||
4384= : Gefällestrecke
|
||||
4318= L_GF_m
|
||||
4391= GF_WINKEL
|
||||
@@ -79,12 +105,55 @@
|
||||
[geruest]
|
||||
Farbe= FARBE
|
||||
|
||||
[kettenfoerderer]
|
||||
# Kettenfoerderer / Schraegfoerderer Stahl (KF_n, Lisp/KettenFoerderer.lsp).
|
||||
# Merkmalnummern laut Merkmalstamm des Schraegfoerderers.
|
||||
#
|
||||
# 350 kommt aus FOERDERERTYP (Bauart im Klartext). Der Default greift nur
|
||||
# bei Altbestands-Bloecken ohne das Attribut.
|
||||
# 359 kommt aus WINKEL, das den Neigungswinkel als nackte Zahl fuehrt
|
||||
# ("26"/"30"); die Anzeige-Tabelle [kf_typ_anzeige] weiter unten macht
|
||||
# daraus den Sivas-Optionstext mit Gradzeichen. Grund fuer die
|
||||
# Zweiteilung: Block-Attribute bleiben laut Projektkonvention ASCII.
|
||||
# 353 (Anzahl der gleichen KF) steht ABSICHTLICH NICHT hier: der Wert
|
||||
# entsteht erst aus der Gruppierung baugleicher Bloecke
|
||||
# (kettenfoerderer_signature in export_sivas.py) und ist damit kein
|
||||
# flaches Attribut-Mapping - gleiche Bauart wie 3510/3512 beim Kreisel.
|
||||
# 356 und 361 nutzen den vorhandenen Transform ja_nein, die Attribute
|
||||
# fuehren "1"/"0".
|
||||
# 357 "Antriebsart" ist beim Kettenfoerderer FEST (1.1 kW): im Dialog ein
|
||||
# Dropdown mit genau einer, zwingend gewaehlten Option - das Attribut gibt es trotzdem, damit der Wert am
|
||||
# Block steht und nicht nur im Export auftaucht.
|
||||
# 354 "Farbe Foerderer" und 355 "Antriebsmotor Foerderer" sind ZWEI getrennte
|
||||
# Merkmale (nicht ein kombinierter Text) - im Dialog darum auch zwei
|
||||
# Felder, Attribute FARBE und ANTRIEBSMOTOR.
|
||||
# 354/355/391 tragen bereits den vollen Sivas-Optionstext im Attribut (die
|
||||
# Auswahllisten in data/json/kettenfoerderer.json liefern ihn so) -
|
||||
# darum kein Transform.
|
||||
350= FOERDERERTYP : Schrägförderer Stahl
|
||||
359= WINKEL : 26 | kf_typ_anzeige
|
||||
361= STANDARD_STEUERUNG : 0 | ja_nein
|
||||
354= FARBE : RAL 7035
|
||||
355= ANTRIEBSMOTOR : Europa 50 Hz
|
||||
357= ANTRIEBSART : 1.1 kW
|
||||
356= MOVIMOT : 0 | ja_nein
|
||||
360= H_EINBAUHOEHE_mm : 0
|
||||
391= VERBINDUNGSELEMENTE : Nein
|
||||
|
||||
[variofoerderer]
|
||||
# Nur die von der Segmentanzahl UNABHAENGIGEN Top-Level-Felder einer VF_N-
|
||||
# Streckengruppe (siehe build_variofoerderer_details in export_sivas.py).
|
||||
# Die Gefaelle-/Vario-Segmentpaare (4312-4392, 4353/4354/4386) haengen an der
|
||||
# Listenlaenge von L_GF_m/L_VF_m und bleiben Code.
|
||||
2950= MONTAGEHOEHE_m : 0
|
||||
# AS-/ES-Element, Reihenfolge wie die Sivas-Hierarchie (identisch in
|
||||
# [gefaellestrecke]): 4431/4432 Ja/Nein schalten Winkel und Seite frei.
|
||||
4431= WINKEL_AS : | as_es_vorhanden
|
||||
4427= WINKEL_AS : | as_es_winkel
|
||||
4428= SEITE_AS : | as_seite
|
||||
4432= WINKEL_ES : | as_es_vorhanden
|
||||
4429= WINKEL_ES : | as_es_winkel
|
||||
4430= SEITE_ES : | es_seite
|
||||
4329= GF_Bogen_L_90 : 0
|
||||
4330= GF_Bogen_L_60 : 0
|
||||
4331= GF_Bogen_L_30 : 0
|
||||
@@ -103,11 +172,35 @@ Farbe= FARBE
|
||||
3992= GERUEST_EINZELMODUL : 0 | ja_nein
|
||||
3993= GERUEST_TYP : Schoenenberger Geruest | geruest_typ_anzeige
|
||||
|
||||
[as_es_winkel_anzeige]
|
||||
# Attributwert WINKEL_AS/WINKEL_ES -> Optionswert der Sivas-Auswahlliste zu
|
||||
# Merkmal 4427/4429. Im Merkmalstamm heissen die Optionen "30 °"/"90 °" (mit
|
||||
# Leerzeichen vor dem Gradzeichen) - das Attribut in der Zeichnung bleibt die
|
||||
# nackte Zahl. Gleiche Bauart wie [geruest_typ_anzeige]: steht ein Winkel
|
||||
# hier NICHT drin, wird er unveraendert uebernommen.
|
||||
#
|
||||
# >>> Falls Sivas den Import mit "30 °" ablehnt, ist DIESE Tabelle die
|
||||
# >>> einzige Stelle zum Nachziehen (z.B. auf "30°" ohne Leerzeichen oder
|
||||
# >>> auf die nackte Zahl) - der Code bleibt unberuehrt.
|
||||
30= 30 °
|
||||
90= 90 °
|
||||
|
||||
[geruest_typ_anzeige]
|
||||
# ASCII-Attributwert (GERUEST_TYP) -> Sivas-Klartext mit Umlauten/Sonder-
|
||||
# zeichen (Attribute selbst bleiben ASCII, siehe CLAUDE.md-Konvention).
|
||||
Schoenenberger Geruest= Schönenberger-Gerüst
|
||||
|
||||
[kf_typ_anzeige]
|
||||
# Attributwert WINKEL (Neigungswinkel als nackte Zahl) -> Optionswert der
|
||||
# Sivas-Auswahlliste zu Merkmal 359. Gleiche Bauart wie
|
||||
# [geruest_typ_anzeige]/[as_es_winkel_anzeige]: steht ein Wert hier NICHT
|
||||
# drin, wird er unveraendert uebernommen.
|
||||
#
|
||||
# >>> Lehnt Sivas den Import ab, ist DIESE Tabelle die einzige Stelle zum
|
||||
# >>> Nachziehen (z.B. "26 °" mit Leerzeichen) - der Code bleibt unberuehrt.
|
||||
26= Schrägförderer Stahl 26°
|
||||
30= Schrägförderer Stahl 30°
|
||||
|
||||
[weichen]
|
||||
# ILS 2.0 Weiche (6216): eine Summenzeile, Werte aus den Kreisel-Beruehr-
|
||||
# punkten des LISP-Exports (kreisel_weichen.json). Ein Beruehrpunkt ist eine
|
||||
|
||||
@@ -8,7 +8,8 @@ der Wahrheit ist der Code in `lib/export_sivas.py` - diese Datei ist ein
|
||||
Backup/Nachschlagewerk, bei Aenderungen am Code bitte hier nachziehen.
|
||||
|
||||
Stand: abgeglichen mit `lib/export_sivas.py` nach der Umstellung von
|
||||
beschreibenden JSON-Keys auf reine Merkmalnummern (Sept. 2026).
|
||||
beschreibenden JSON-Keys auf reine Merkmalnummern (Sept. 2026), ergaenzt um
|
||||
die AS-/ES-Element-Merkmale 4427-4432 (Okt. 2026).
|
||||
|
||||
## ILS 2.0 Kreisel (SivasNr 6200, Dispogruppe 20)
|
||||
|
||||
@@ -59,6 +60,7 @@ immer 1. Sivas kennt je Streckengruppe nur EIN Gefaelle-Segment-Paar
|
||||
| 4381 | Streckengruppe - Anzahl der Separatoren - Variofoerderer | `ANZAHL_SEPARATOR` | **voller Blockwert** (Aufteilung noch offen, siehe 4337) |
|
||||
| 4382 | (dieselbe Bezeichnung wie 4338 im Merkmalstamm) | - | fest `SEPARATOR_BEARBEITUNG_ANZEIGE` |
|
||||
| 4383 | Streckengruppe - Anzahl der Scanner (Vario-Anteil) | `ANZAHL_SCANNER` | **voller Blockwert** |
|
||||
| 4427-4432 | AS-/ES-Element (vorhanden/Winkel/Seite) | `WINKEL_AS`/`SEITE_AS`/`WINKEL_ES`/`SEITE_ES` | siehe eigener Abschnitt unten |
|
||||
| 3992 | Geruest fuer Einzelmodul | `GERUEST_EINZELMODUL` | wie Kreisel |
|
||||
| 3993 | Geruestoption fuer Einzelmodul | `GERUEST_TYP` | wie Kreisel |
|
||||
|
||||
@@ -86,9 +88,56 @@ Stueckzahl der Gruppe steht im Merkmal 4311.
|
||||
| 4337 | Streckengruppe - Anzahl der Separatoren - Gefaellestrecke | `ANZAHL_SEPARATOR` | direkt (kein Split noetig, kein Vario-Anteil vorhanden) |
|
||||
| 4338 | Streckengruppe - Bearbeitung Gefaellestreckenteilstueck fuer Separator (829516050) | - | fest `SEPARATOR_BEARBEITUNG_ANZEIGE` |
|
||||
| 4339 | Streckengruppe - Anzahl der Scanner | `ANZAHL_SCANNER` | direkt |
|
||||
| 4427-4432 | AS-/ES-Element (vorhanden/Winkel/Seite) | `WINKEL_AS`/`SEITE_AS`/`WINKEL_ES`/`SEITE_ES` | siehe eigener Abschnitt unten |
|
||||
| 3992 | Geruest fuer Einzelmodul | `GERUEST_EINZELMODUL` | wie Kreisel |
|
||||
| 3993 | Geruestoption fuer Einzelmodul | `GERUEST_TYP` | wie Kreisel |
|
||||
|
||||
Die Gruppierung (`gefaellestrecke_signature`) beruecksichtigt AS-/ES-Element
|
||||
mit: zwei sonst baugleiche Gefaellestrecken mit AS links bzw. AS rechts
|
||||
bleiben getrennte Zeilen, sonst zeigte die gemeinsame Zeile nur die Seite des
|
||||
ersten Blocks.
|
||||
|
||||
## AS-/ES-Element (4427-4432) - gilt fuer VF_N UND GF_N
|
||||
|
||||
Die Zuordnung steht vollstaendig in `cfg/sivas.cfg` - mit denselben sechs
|
||||
Zeilen in `[gefaellestrecke]` UND `[variofoerderer]`, weil beide Blockarten
|
||||
dieselben Attribute des gemeinsamen Strecken-Schemas tragen
|
||||
(`*strecke-attr-front*` in `ssg_core.lsp`). In `export_sivas.py` stehen nur
|
||||
die Transform-Funktionen.
|
||||
|
||||
Sivas-Hierarchie (Merkmalstamm): 4431/4432 (`"Ja"`/`"Nein"`) sind die
|
||||
Oberknoten, Winkel und Seite haengen als Unterknoten darunter - darum auch
|
||||
diese Reihenfolge in der Config.
|
||||
|
||||
| Merkmalnr | Bezeichnung (Merkmalstamm) | Block-Attribut | Transform | Berechnung |
|
||||
|---|---|---|---|---|
|
||||
| 4431 | AS-Element | `WINKEL_AS` | `as_es_vorhanden` | `"Ja"`, wenn ein Winkel gesetzt ist, sonst `"Nein"` |
|
||||
| 4427 | AS-Element - Winkel | `WINKEL_AS` | `as_es_winkel` | Optionswert der Auswahlliste (`"30"` -> `"30 °"`, Tabelle `[as_es_winkel_anzeige]`); leer, wenn kein AS-Element |
|
||||
| 4428 | AS-Element - Seite | `SEITE_AS` | `as_seite` | kleingeschrieben (`"links"`/`"rechts"`); leer, wenn kein AS-Element |
|
||||
| 4432 | ES-Element | `WINKEL_ES` | `as_es_vorhanden` | wie 4431 |
|
||||
| 4429 | ES-Element - Winkel | `WINKEL_ES` | `as_es_winkel` | wie 4427 |
|
||||
| 4430 | ES-Element - Seite | `SEITE_ES` | `es_seite` | wie 4428 |
|
||||
|
||||
**Warum der Winkel ueber das Vorhandensein entscheidet und nicht die Seite:**
|
||||
das Schema laesst `WINKEL_AS`/`WINKEL_ES` leer, wenn kein Element gewaehlt
|
||||
wurde, waehrend `SEITE_AS`/`SEITE_ES` mit `"rechts"` immer einen Vorgabewert
|
||||
tragen. Ohne Element bleiben darum Winkel UND Seite leer - sonst stuende in
|
||||
Sivas eine Seite unter einem `"Nein"`-Knoten.
|
||||
|
||||
**Winkel-Schreibweise:** die Sivas-Auswahlliste fuehrt `"30 °"`/`"90 °"` (mit
|
||||
Leerzeichen vor dem Gradzeichen), das Block-Attribut dagegen die nackte Zahl.
|
||||
Die Uebersetzung steht als Tabelle `[as_es_winkel_anzeige]` in `sivas.cfg`
|
||||
(gleiche Bauart wie `[geruest_typ_anzeige]`) - weicht Sivas davon ab, ist das
|
||||
die einzige Stelle zum Nachziehen. Ein Winkel ohne Eintrag dort wird
|
||||
unveraendert uebernommen.
|
||||
|
||||
**Neu im Mapping-Mechanismus:** `4428`/`4430` brauchen ein ZWEITES Attribut
|
||||
(die Seite haengt am Winkel). Dafuer gibt es in `sivas_mapping.py` den
|
||||
Dekorator `@braucht_attribs` - ein so markierter Transform wird als
|
||||
`fn(wert, attribs)` statt `fn(wert)` aufgerufen und sieht damit die uebrigen
|
||||
Attribute des Blocks. Ohne diese Klammer muessten bedingte Merkmale wieder
|
||||
als Python-Code aus der Config herauswandern.
|
||||
|
||||
## ILS 2.0 Zusatzmodul (SivasNr 6215, Dispogruppe 20)
|
||||
|
||||
BTMT-Beladestationen UND Abwurfstationen (Klammerbuegel-Entladung) in EINER
|
||||
|
||||
Reference in New Issue
Block a user