[ADD] Geruest: Teile-DWGs (data/geruest/<artnr>.dwg) als Geometrie im GR_-Block; TEILEFARBE als Liste parallel zu ARTINR (Flag farbig in geruest.json), Sivas-Merkmal 108 aus cfg [Sivas]; Menue-Befehle GERUEST_SAEULEN/_ROHRABHAENGER/_WANDBEFESTIGUNG
[FIX] Sivas-Export las nicht existierendes Attribut FARBE
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
{ "name": "linienzug", "save": "dwg", "module": "VarioFoerderer" },
|
||||
{ "name": "vfl_schema", "module": "VarioFoerderer" },
|
||||
{ "name": "vf_spec", "module": "VarioFoerderer" },
|
||||
{ "name": "lastent", "module": "GeruestInsert" },
|
||||
{ "name": "omniflo", "save": "dxf", "module": "OmniModulInsert" },
|
||||
{ "name": "omniflo_strecke", "save": "dxf", "module": "OmniModulInsert" },
|
||||
{ "name": "gefaellestrecke", "save": "dwg", "module": "Gefaellestrecke" },
|
||||
|
||||
@@ -101,3 +101,29 @@ def test_geruest_unveraendert():
|
||||
assert zeilen["825002022"]["teileart"] == "Geruest Saeule 2 Zoll"
|
||||
assert zeilen["825002022"]["ids"] == ["0060"]
|
||||
assert zeilen["825002022"]["dispgruppe"] == 20
|
||||
# Ohne TEILEFARBE kein Farb-Merkmal
|
||||
assert zeilen["825002022"]["details"] == {}
|
||||
|
||||
|
||||
def test_geruest_teilefarbe_je_artikelnummer():
|
||||
zeilen = _zeilen([
|
||||
_block("GR_Saeulen_20260929100000", "0061", "Geruest Saeule 2 Zoll",
|
||||
"821006051,821004201,825002022,825002022",
|
||||
TEILEFARBE=",RAL7030,RAL7030,RAL7030"),
|
||||
])
|
||||
merkmal = export_sivas.MERKMAL_TEILEFARBE
|
||||
assert merkmal == "108"
|
||||
assert zeilen["821006051"]["details"] == {}
|
||||
assert zeilen["821004201"]["details"] == {merkmal: "RAL7030"}
|
||||
assert zeilen["825002022"]["details"] == {merkmal: "RAL7030"}
|
||||
assert zeilen["825002022"]["anzahl"] == 2
|
||||
|
||||
|
||||
def test_geruest_teilefarbe_laenge_passt_nicht(capsys):
|
||||
zeilen = _zeilen([
|
||||
_block("GR_Saeulen_20260929100001", "0062", "Geruest Saeule 2 Zoll",
|
||||
"821006051,821004201", TEILEFARBE="RAL7030"),
|
||||
])
|
||||
assert zeilen["821006051"]["details"] == {}
|
||||
assert zeilen["821004201"]["details"] == {}
|
||||
assert "TEILEFARBE" in capsys.readouterr().err
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
;; Wie c:VarioFoerderer: Attribut-Entities/SEQEND des vorherigen
|
||||
;; VF_N-Blocks ueberspringen, sonst rutschen sie in den naechsten
|
||||
;; Block hinein (Blockerstellung faengt sonst am falschen Entity an).
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
(setq lastEnt (ssg-lastent-ohne-attribute))
|
||||
(setq gf-split (foerderer:split-gf gf-verteilung L_GF))
|
||||
(setq lastEnt
|
||||
(foerderer:baue-block startpunkt blk-nummer hoehe-von hoehe-bis
|
||||
@@ -300,7 +300,7 @@
|
||||
(setq blk-nummer (1+ blk-nummer))
|
||||
(setq hoehe-von 0)
|
||||
(setq hoehe-bis (- deltaH))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
(setq lastEnt (ssg-lastent-ohne-attribute))
|
||||
;; seite/gf-verteilung vom Elternfall erben (gleicher
|
||||
;; Foerderer); winkel-soll ist hier nicht anwendbar -
|
||||
;; berechne-horizontale-mitte hat keine Winkel-Kandidatenliste
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
|
||||
;; 7. GF-Nummer und Entity-Grenze vor erster Einfuegung
|
||||
(setq gf-nummer (gf-next-number))
|
||||
(setq last-ent (vf-lastent-ohne-attribute))
|
||||
(setq last-ent (ssg-lastent-ohne-attribute))
|
||||
|
||||
;; 8. AUS-Element einfuegen
|
||||
;; KS_EIN-Richtung so, dass KS_AUS in entry-hz zeigt:
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
" L_GF2=" (rtos gf2 2 1)))
|
||||
|
||||
(setq hoehe-bis (if (= richtung "Auf") deltaH (- deltaH)))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
(setq lastEnt (ssg-lastent-ohne-attribute))
|
||||
(if (= typ "etage")
|
||||
(etage-foerderanlage-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz)
|
||||
(variofoerderer-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz))
|
||||
|
||||
@@ -823,6 +823,21 @@
|
||||
(geruest-artikelnummern
|
||||
(ssg-json-parse "{\"artikel\": \"C\", \"sivas_id\": 333}")))
|
||||
|
||||
;; --- Teile-DWGs (visuelle Rueckmeldung im Block) ---
|
||||
(tu-eq "geruest-eindeutig/dupl" '("1" "2" "3")
|
||||
(geruest-eindeutig '("1" "2" "1" "3" "2")))
|
||||
(tu-eq "geruest-eindeutig/leer" nil (geruest-eindeutig nil))
|
||||
;; Artikelnummer ohne DWG -> still uebergangen
|
||||
(tu-eq "geruest-teile-dwgs/fehlt" nil
|
||||
(geruest-teile-dwgs '("999999999")))
|
||||
;; Vorhandene DWG (liegt im Repo) -> genau ein Pfad, auch bei Mehrfach-
|
||||
;; Stueckzahl und gemischt mit einer fehlenden Nummer
|
||||
(setq _pfad (geruest-dummy-pfad "825002019.dwg"))
|
||||
(if (and _pfad (findfile _pfad))
|
||||
(tu-eq "geruest-teile-dwgs/vorhanden" (list _pfad)
|
||||
(geruest-teile-dwgs '("825002019" "999999999" "825002019")))
|
||||
)
|
||||
|
||||
;; --- Mengenfeld ---
|
||||
(tu-eq "geruest-zahl-p/ziffern" T (geruest-zahl-p "12"))
|
||||
(tu-eq "geruest-zahl-p/text" nil (geruest-zahl-p "1a"))
|
||||
@@ -841,6 +856,35 @@
|
||||
(tu-eq "geruest-artnr-n/gruppe" '("111" "222" "222" "111" "222" "222")
|
||||
(geruest-artikelnummern-n _gruppe 2))
|
||||
|
||||
;; --- farbig-Flag / TEILEFARBE-Liste parallel zu ARTINR ---
|
||||
;; _eintrag hat kein "farbig" -> nicht farbig
|
||||
(tu-eq "geruest-paare/ohne-flag" '(("825002019") ("825002019"))
|
||||
(geruest-teile-paare _eintrag nil))
|
||||
(tu-eq "geruest-paare/farbig" '(("444" . T))
|
||||
(geruest-teile-paare
|
||||
(ssg-json-parse "{\"artikel\": \"D\", \"sivas_id\": 444, \"farbig\": true}")
|
||||
nil))
|
||||
(tu-eq "geruest-paare/false" '(("555"))
|
||||
(geruest-teile-paare
|
||||
(ssg-json-parse "{\"artikel\": \"E\", \"sivas_id\": 555, \"farbig\": false}")
|
||||
nil))
|
||||
;; Gruppe mit farbig vererbt an alle Teile, Mengen bleiben erhalten
|
||||
(setq _teile (ssg-json-parse
|
||||
(strcat "{\"name\": \"Set\", \"farbig\": true, \"teile\": ["
|
||||
"{\"artikel\": \"A\", \"sivas_id\": 111},"
|
||||
"{\"artikel\": \"B\", \"sivas_id\": 222, \"menge\": 2}]}")))
|
||||
(tu-eq "geruest-paare/gruppe-erbt" '(("111" . T) ("222" . T) ("222" . T))
|
||||
(geruest-teile-paare _teile nil))
|
||||
(tu-eq "geruest-paare-n/gruppe" 6 (length (geruest-teile-paare-n _teile 2)))
|
||||
(tu-eq "geruest-paare-n/einzelteil-farbig" '(("444" . T) ("444" . T))
|
||||
(geruest-teile-paare-n
|
||||
(ssg-json-parse "{\"artikel\": \"D\", \"sivas_id\": 444, \"farbig\": true}")
|
||||
2))
|
||||
(tu-eq "geruest-farbliste" '("" "RAL7030" "")
|
||||
(geruest-farbliste '(("1") ("2" . T) ("3")) "RAL7030"))
|
||||
(tu-eq "geruest-farbliste/join" ",RAL7030,"
|
||||
(ssg-join (geruest-farbliste '(("1") ("2" . T) ("3")) "RAL7030") ","))
|
||||
|
||||
;; --- DCL-Label: Anfuehrungszeichen wuerde die Datei zerstoeren ---
|
||||
(tu-eq "geruest-dcl-label/quote" "ROHRKLAMMER 1'' KPL. VERTIKAL"
|
||||
(geruest-dcl-label "ROHRKLAMMER 1\" KPL. VERTIKAL"))
|
||||
|
||||
Reference in New Issue
Block a user