[FIX] Kreisel-Umlauf (export_neighbors.compute_kreisel_umlauf): AS/ES, deren ZZ_ASES_MARKER-Box keinen Kreisel trifft, ueber den Ein-/Auslaufpunkt der Strecke (K1 = KS_EIN, K2 = KS_AUS) zuordnen - laeuft eine Strecke parallel zum Kreisel, liegt der Marker (Einfuegepunkt) ~560 mm neben der Kette, der Einlauf aber darauf (Dematic VF_5 an Kreisel1 fehlte in den TrackIds); bereits zugeordnete AS/ES unveraendert + Tests; [ADD] dxf_anlage_export.py: Kreisel-Drehrichtung (DREHRICHTUNG) ins Testdaten-JSON; [CHANGE] dematic_arvato.json aus dem aktuellen Dematic_TST.dxf (Kreisel 1/4 GUZ, BTMT Be-/Entladung, Scanner vor Separator 0048)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -194,7 +194,7 @@ Abhaengigkeiten: `ezdxf`, Standard-Library. Benoetigen Umgebungsvariablen (`DXFM
|
|||||||
| `vf_journal_export.py` | Liest die Eingabe-Journale der `VF_n`-Bloecke (XDATA-App `SSG_VF_EDIT`, Marker `"linienzug"`) aus einer Zeichnung und schreibt sie als Frage-Antwort-Protokoll im Schema von `tests/testdata/linienzug_tests.json` (Gegenstueck zu `vfl-entry->string`; kein ezdxf, reine Gruppencode-Lesung). Optional `--csv <sivas_export.csv>` fuer Strecken-ID und Erwartungswerte je Kette. Aufruf: `python vf_journal_export.py <dxf> <output.json> [--csv ...] [--kein-startpunkt-fix]` — erzeugt `tests/testdata/hm_recformat.json` aus `data/polylines.dxf` (die Aufzeichnung, aus der `tests/testdata/hundm05.json` als Spec abgeleitet wird) |
|
| `vf_journal_export.py` | Liest die Eingabe-Journale der `VF_n`-Bloecke (XDATA-App `SSG_VF_EDIT`, Marker `"linienzug"`) aus einer Zeichnung und schreibt sie als Frage-Antwort-Protokoll im Schema von `tests/testdata/linienzug_tests.json` (Gegenstueck zu `vfl-entry->string`; kein ezdxf, reine Gruppencode-Lesung). Optional `--csv <sivas_export.csv>` fuer Strecken-ID und Erwartungswerte je Kette. Aufruf: `python vf_journal_export.py <dxf> <output.json> [--csv ...] [--kein-startpunkt-fix]` — erzeugt `tests/testdata/hm_recformat.json` aus `data/polylines.dxf` (die Aufzeichnung, aus der `tests/testdata/hundm05.json` als Spec abgeleitet wird) |
|
||||||
| `dxf_vf_abbild.py` | Abbild der `VF_`/`GF_`-Wrapperbloecke einer Testzeichnung: Attribute UND Bausteinzusammensetzung je Kette, Ketten ueber den Einfuegepunkt der Spec zugeordnet (der Blockname taugt nicht - die VF-Nummer beginnt in jeder Zeichnung neu bei 1). Regressionsnetz fuer Umbauten am Bau-Ablauf: `--referenz` vergleicht gegen `tests/reference/hundm05_attribute.json` (Exit 1 bei Abweichung), `--schreibe-referenz` frischt sie nach einem GEPRUEFTEN Lauf auf. Faengt genau das, was der Ergebnis-Record nicht sieht - eine vertauschte `vfl-acc-*`-Reihenfolge (Komma-Listen `L_VF_m`/`L_GF_m`/`GF_WINKEL`, in der Zeichnung unsichtbar, im Sivas-Export falsch) und eine falsche Blockvariante. Liest ASCII-DXF streamend; binaere DXF kann `dxf_scan_components.py`. Genutzt von `tests/test_vf_geometrie.py` |
|
| `dxf_vf_abbild.py` | Abbild der `VF_`/`GF_`-Wrapperbloecke einer Testzeichnung: Attribute UND Bausteinzusammensetzung je Kette, Ketten ueber den Einfuegepunkt der Spec zugeordnet (der Blockname taugt nicht - die VF-Nummer beginnt in jeder Zeichnung neu bei 1). Regressionsnetz fuer Umbauten am Bau-Ablauf: `--referenz` vergleicht gegen `tests/reference/hundm05_attribute.json` (Exit 1 bei Abweichung), `--schreibe-referenz` frischt sie nach einem GEPRUEFTEN Lauf auf. Faengt genau das, was der Ergebnis-Record nicht sieht - eine vertauschte `vfl-acc-*`-Reihenfolge (Komma-Listen `L_VF_m`/`L_GF_m`/`GF_WINKEL`, in der Zeichnung unsichtbar, im Sivas-Export falsch) und eine falsche Blockvariante. Liest ASCII-DXF streamend; binaere DXF kann `dxf_scan_components.py`. Genutzt von `tests/test_vf_geometrie.py` |
|
||||||
| `vf_spec_export.py` | Uebersetzt ein Eingabe-Journal in eine **Spec** und zurueck (`spec_aus_journal` / `journal_aus_spec`) - Gegenstueck zu `vsp-journal` in `Lisp/vf_spec.lsp`, beide muessen dieselbe Tokenfolge liefern. Der Rundlauf `journal_aus_spec(spec_aus_journal(tok)) == tok` laeuft in `tests/test_vf_spec.py` gegen die 5 echten HundM-Ketten und beweist, dass die Spec das Journal verlustfrei abbildet. Schreibt das flache Spec-JSON (vom LISP-Parser lesbar). Objekte der Ziel-Datei, die keine Kette beschreiben (von Hand ergaenzte Anlagenteile mit `function`, z.B. Kreisel), werden beim Neuschreiben unveraendert ans Dateiende uebernommen - sonst waeren sie beim naechsten Lauf weg. Aufruf: `python vf_spec_export.py <protokoll.json> <spec.json>` — erzeugt `tests/testdata/hundm05.json` (Spec, Eingabe fuer `TEST_HUNDM05`/`VF_SPEC_BAU`) aus `tests/testdata/hm_recformat.json` (Aufzeichnung) |
|
| `vf_spec_export.py` | Uebersetzt ein Eingabe-Journal in eine **Spec** und zurueck (`spec_aus_journal` / `journal_aus_spec`) - Gegenstueck zu `vsp-journal` in `Lisp/vf_spec.lsp`, beide muessen dieselbe Tokenfolge liefern. Der Rundlauf `journal_aus_spec(spec_aus_journal(tok)) == tok` laeuft in `tests/test_vf_spec.py` gegen die 5 echten HundM-Ketten und beweist, dass die Spec das Journal verlustfrei abbildet. Schreibt das flache Spec-JSON (vom LISP-Parser lesbar). Objekte der Ziel-Datei, die keine Kette beschreiben (von Hand ergaenzte Anlagenteile mit `function`, z.B. Kreisel), werden beim Neuschreiben unveraendert ans Dateiende uebernommen - sonst waeren sie beim naechsten Lauf weg. Aufruf: `python vf_spec_export.py <protokoll.json> <spec.json>` — erzeugt `tests/testdata/hundm05.json` (Spec, Eingabe fuer `TEST_HUNDM05`/`VF_SPEC_BAU`) aus `tests/testdata/hm_recformat.json` (Aufzeichnung) |
|
||||||
| `dxf_anlage_export.py` | Gegenstueck zum Scanner: liest eine mit unseren Makros GEBAUTE (und von Hand nachbearbeitete) Anlage aus der Zeichnung zurueck in Nachbau-Testdaten - je Wrapper genau die Parameter, die auch dessen Edit-Befehl liest (KREISEL_n: Einfuegepunkt, `abstand` exakt aus der Blockdefinition; GF_n: SSG_GF_EDIT + SEITE_AS/ES, endet die GF auf einer Kreisel-Kette, wird dessen Hoehe `hoehe_ende_mm`; VF_n `standard`/`etage`: mubea-Schema wie `vfs-edit-basis-lesen`; VF_n `linienzug`: Journal UNVERAENDERT als `"typ": "linienzug_journal"` - bewusst keine Spec, weil der Bau-Dialog neuer ist als die Spec-Grammatik; uebrige Bloecke als Einzel-Insert ohne `_2D`/`_3D`-Suffix). Reihenfolge Kreisel, VF, GF, Einzelbloecke (VF vor GF wie mubea). Aufruf: `python dxf_anlage_export.py <dxf> <output.json> [--projekt NAME]` — erzeugt `tests/testdata/dematic_arvato.json` aus `Dematic_TST.dxf`. Test `tests/test_dxf_anlage_export.py` |
|
| `dxf_anlage_export.py` | Gegenstueck zum Scanner: liest eine mit unseren Makros GEBAUTE (und von Hand nachbearbeitete) Anlage aus der Zeichnung zurueck in Nachbau-Testdaten - je Wrapper genau die Parameter, die auch dessen Edit-Befehl liest (KREISEL_n: Einfuegepunkt, `abstand` exakt aus der Blockdefinition, `drehrichtung` aus DREHRICHTUNG; GF_n: SSG_GF_EDIT + SEITE_AS/ES, endet die GF auf einer Kreisel-Kette, wird dessen Hoehe `hoehe_ende_mm`; VF_n `standard`/`etage`: mubea-Schema wie `vfs-edit-basis-lesen`; VF_n `linienzug`: Journal UNVERAENDERT als `"typ": "linienzug_journal"` - bewusst keine Spec, weil der Bau-Dialog neuer ist als die Spec-Grammatik; uebrige Bloecke als Einzel-Insert ohne `_2D`/`_3D`-Suffix). Reihenfolge Kreisel, VF, GF, Einzelbloecke (VF vor GF wie mubea). Aufruf: `python dxf_anlage_export.py <dxf> <output.json> [--projekt NAME]` — erzeugt `tests/testdata/dematic_arvato.json` aus `Dematic_TST.dxf`. Test `tests/test_dxf_anlage_export.py` |
|
||||||
| `dxf_scan_components.py` | Erkennt ILS-/Omniflo-Komponenten in einer **fremden** Projektzeichnung (ohne unsere Wrapper-Bloecke) und schreibt sie im JSON-Schema aus `tests/testdata/object_data.md` — Grundlage fuer Nachbau-Testfaelle wie `tests/testdata/mubea.json`. Liest binaere DXF im GB-Bereich streamend per mmap (ezdxf-DOM waere zu gross), loest INSERTs inkl. OCS/Extrusionsrichtung rekursiv in Weltkoordinaten auf, paart AN8/SP8 zu Kreiseln und Antrieb/Umlenkung zu Foerderern. Gefaellestrecken, die als 3D-LINE auf einem Staustrecken-Layer gezeichnet sind (`GF_LINIE_LAYER`, z.B. `6-SP`), werden in einem zweiten Lesedurchgang zu Modus-1-Eintraegen: Start/Ende werden auf die Ketten der anschliessenden Kreisel verlaengert (gezeichnet ist nur die Staustrecke; `deltaL` reicht von AS- bis ES-Ursprung), AS-Seite aus dem Ausschleuselement am oberen Ende; dieses und Separatoren auf der Achse entfallen als Einzel-Insert (die GF baut beide selbst). Sitzt der AS am UNTEREN Ende, ist es ein Steigfoerderer und wird nur gemeldet (`gf_eintraege_aus_linien`, Test `tests/test_dxf_scan_gf.py`). `--ohne-hoehen` setzt alle Z auf 0, `--kreisel-hoehe X Y Z` gibt einem Kreisel seine Hoehe - die daran haengenden GF bekommen daraus `start_mm.z`/`hoehe_ende_mm`, den Winkel rechnet der Treiber (`dematic_arvato:gf-geometrie`: atan ueber die HORIZONTALE Laenge, ES-Laenge UND -Abfall bei der Einlaufneigung gemessen und iteriert, Staustrecke daraus - die flache ES-Laenge liess steile GF ~144 mm vor der Kette enden - NICHT `gf-winkel-berechnen`, dessen asin bei steilen GF wie im Showroom ~50 statt ~37 Grad liefert; `dematic_arvato:gf-endhoehe-pruefen` meldet `warnung` bei > 5 mm Abweichung von HOEHE_BIS). Flache 2D-Plaene: `--flach` (waagrechte Staustrecke mit AS an genau einem Ende = GF, zerstueckelte Linien werden vereint, ES am unteren Ende wird verbraucht, AS/ES-Seite ohne Namensangabe aus der Lage zur Fahrtrichtung), `--kreisel-achse X1 Y1 X2 Y2` (Kreisel ohne AN8/SP8), Einzelteile auf einer Kreisel-Kette erben dessen Anwender-Hoehe (`sensor_hoehen_von_kreiseln`). Kreisel-Paarung mit Tausch-Nachbesserung auf minimale Abstandssumme (zwei Kreisel auf einer Achse). Genutzt fuer `tests/testdata/showroom_ils.json` (`TEST_SHOWROOM_ILS`). Aufruf: `python dxf_scan_components.py <dxf> <data_dir> <output.json> [--fenster X0 Y0 X1 Y1]` — ohne `--fenster` liefert eine Anlagenzeichnung leicht ueber 1300 Eintraege, zuviel fuer einen Testlauf |
|
| `dxf_scan_components.py` | Erkennt ILS-/Omniflo-Komponenten in einer **fremden** Projektzeichnung (ohne unsere Wrapper-Bloecke) und schreibt sie im JSON-Schema aus `tests/testdata/object_data.md` — Grundlage fuer Nachbau-Testfaelle wie `tests/testdata/mubea.json`. Liest binaere DXF im GB-Bereich streamend per mmap (ezdxf-DOM waere zu gross), loest INSERTs inkl. OCS/Extrusionsrichtung rekursiv in Weltkoordinaten auf, paart AN8/SP8 zu Kreiseln und Antrieb/Umlenkung zu Foerderern. Gefaellestrecken, die als 3D-LINE auf einem Staustrecken-Layer gezeichnet sind (`GF_LINIE_LAYER`, z.B. `6-SP`), werden in einem zweiten Lesedurchgang zu Modus-1-Eintraegen: Start/Ende werden auf die Ketten der anschliessenden Kreisel verlaengert (gezeichnet ist nur die Staustrecke; `deltaL` reicht von AS- bis ES-Ursprung), AS-Seite aus dem Ausschleuselement am oberen Ende; dieses und Separatoren auf der Achse entfallen als Einzel-Insert (die GF baut beide selbst). Sitzt der AS am UNTEREN Ende, ist es ein Steigfoerderer und wird nur gemeldet (`gf_eintraege_aus_linien`, Test `tests/test_dxf_scan_gf.py`). `--ohne-hoehen` setzt alle Z auf 0, `--kreisel-hoehe X Y Z` gibt einem Kreisel seine Hoehe - die daran haengenden GF bekommen daraus `start_mm.z`/`hoehe_ende_mm`, den Winkel rechnet der Treiber (`dematic_arvato:gf-geometrie`: atan ueber die HORIZONTALE Laenge, ES-Laenge UND -Abfall bei der Einlaufneigung gemessen und iteriert, Staustrecke daraus - die flache ES-Laenge liess steile GF ~144 mm vor der Kette enden - NICHT `gf-winkel-berechnen`, dessen asin bei steilen GF wie im Showroom ~50 statt ~37 Grad liefert; `dematic_arvato:gf-endhoehe-pruefen` meldet `warnung` bei > 5 mm Abweichung von HOEHE_BIS). Flache 2D-Plaene: `--flach` (waagrechte Staustrecke mit AS an genau einem Ende = GF, zerstueckelte Linien werden vereint, ES am unteren Ende wird verbraucht, AS/ES-Seite ohne Namensangabe aus der Lage zur Fahrtrichtung), `--kreisel-achse X1 Y1 X2 Y2` (Kreisel ohne AN8/SP8), Einzelteile auf einer Kreisel-Kette erben dessen Anwender-Hoehe (`sensor_hoehen_von_kreiseln`). Kreisel-Paarung mit Tausch-Nachbesserung auf minimale Abstandssumme (zwei Kreisel auf einer Achse). Genutzt fuer `tests/testdata/showroom_ils.json` (`TEST_SHOWROOM_ILS`). Aufruf: `python dxf_scan_components.py <dxf> <data_dir> <output.json> [--fenster X0 Y0 X1 Y1]` — ohne `--fenster` liefert eine Anlagenzeichnung leicht ueber 1300 Eintraege, zuviel fuer einen Testlauf |
|
||||||
|
|
||||||
### Entwickler-Tools (`lib/`) - kein ezdxf, reine Text-/AutoLISP-Verarbeitung
|
### Entwickler-Tools (`lib/`) - kein ezdxf, reine Text-/AutoLISP-Verarbeitung
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Je Wrapper (Felder wie in tests/testdata/object_data.md bzw. mubea.json):
|
|||||||
|
|
||||||
KREISEL_n -> Kreisel ("function": "insert", x/y/z = Einfuegepunkt,
|
KREISEL_n -> Kreisel ("function": "insert", x/y/z = Einfuegepunkt,
|
||||||
abstand = Mittenabstand AN8-SP8 aus der Blockdefinition,
|
abstand = Mittenabstand AN8-SP8 aus der Blockdefinition,
|
||||||
rotation, typ = KREISELART)
|
rotation, typ = KREISELART, drehrichtung = DREHRICHTUNG)
|
||||||
GF_n -> Gefaellestrecke Modus 1 (XDATA SSG_GF_EDIT wie
|
GF_n -> Gefaellestrecke Modus 1 (XDATA SSG_GF_EDIT wie
|
||||||
gf-xdata-lesen + SEITE_AS/SEITE_ES wie GEFAELLESTRECKE_EDIT).
|
gf-xdata-lesen + SEITE_AS/SEITE_ES wie GEFAELLESTRECKE_EDIT).
|
||||||
Endet die Strecke auf der Kette eines Kreisels, wird statt
|
Endet die Strecke auf der Kette eines Kreisels, wird statt
|
||||||
@@ -210,6 +210,10 @@ def kreisel_eintrag(e, block_inhalt, projekt):
|
|||||||
("abstand", _r(abstand)),
|
("abstand", _r(abstand)),
|
||||||
("rotation", _r(e["rot"])),
|
("rotation", _r(e["rot"])),
|
||||||
("typ", a.get("KREISELART") or "STANDARD"),
|
("typ", a.get("KREISELART") or "STANDARD"),
|
||||||
|
# Umlaufsinn: bestimmt die Reihenfolge im Kreisel-Umlauf und damit den
|
||||||
|
# TRO-Fluss - ohne ihn kam jeder Nachbau als UZS heraus (Dematic 1/4:
|
||||||
|
# GUZ). hundm05:bau-kreisel reicht ihn an kreisel-insert-script weiter.
|
||||||
|
("drehrichtung", a.get("DREHRICHTUNG") or "UZS"),
|
||||||
("comment", "aus Zeichnung: %s (ID %s), abstand aus %s"
|
("comment", "aus Zeichnung: %s (ID %s), abstand aus %s"
|
||||||
% (e["name"], a.get("ID", "?"), quelle)),
|
% (e["name"], a.get("ID", "?"), quelle)),
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1287,6 +1287,11 @@ def compute_kreisel_umlauf(items, tolerance_mm, durchmesser_mm=800.0,
|
|||||||
|
|
||||||
punkte_je_kreisel = {tid: [] for tid in kreisel}
|
punkte_je_kreisel = {tid: [] for tid in kreisel}
|
||||||
|
|
||||||
|
# Ein-/Auslaufpunkt je Strecke (K1 = KS_EIN des AS, K2 = KS_AUS des ES),
|
||||||
|
# fuer AS/ES, deren Marker-Box keinen Kreisel trifft (siehe unten).
|
||||||
|
strecken_kos = {it.get("teileid", ""): _asel_kos_xy(it)
|
||||||
|
for it in items if it.get("teileart", "") in GF_VF_TEILEARTEN}
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
if item.get("teileart", "") not in KREISEL_UMLAUF_TEILEARTEN:
|
if item.get("teileart", "") not in KREISEL_UMLAUF_TEILEARTEN:
|
||||||
continue
|
continue
|
||||||
@@ -1305,6 +1310,31 @@ def compute_kreisel_umlauf(items, tolerance_mm, durchmesser_mm=800.0,
|
|||||||
(teileid, bbox.get("cx", 0.0), bbox.get("cy", 0.0)))
|
(teileid, bbox.get("cx", 0.0), bbox.get("cy", 0.0)))
|
||||||
matched_tid = tid
|
matched_tid = tid
|
||||||
break
|
break
|
||||||
|
# Rueckfall fuer AS/ES: der ZZ_ASES_MARKER sitzt auf dem EINFUEGEPUNKT
|
||||||
|
# des Elements, der Kreisel beruehrt aber dessen Ein-/Auslauf (KS_EIN/
|
||||||
|
# KS_AUS). Ein 90-Grad-Element hat den Einlauf ~610 mm seitlich - laeuft
|
||||||
|
# die Strecke quer vom Kreisel weg, liegt dieser Versatz entlang der
|
||||||
|
# Kette und der Marker trotzdem darauf; laeuft sie PARALLEL zum
|
||||||
|
# Kreisel, liegt er quer dazu und der Marker ~560 mm daneben (Dematic/
|
||||||
|
# Arvato VF_5 an Kreisel1: Marker 557 mm, Einlauf 52 mm von der Kette,
|
||||||
|
# Review 2026-10-08). Nur wenn die Marker-Box nichts trifft - bereits
|
||||||
|
# zugeordnete AS/ES behalten Position und Reihenfolge.
|
||||||
|
if matched_tid is None and item.get("teileart", "") in (
|
||||||
|
AUSSCHLEUS_TEILEART, EINSCHLEUS_TEILEART):
|
||||||
|
k1_xy, k2_xy = strecken_kos.get(item.get("_zuordnung", ""), (None, None))
|
||||||
|
pt = k1_xy if item.get("teileart", "") == AUSSCHLEUS_TEILEART else k2_xy
|
||||||
|
if pt is not None:
|
||||||
|
pt_bounds = _bounds({"cx": pt[0], "cy": pt[1], "dx": 0.0, "dy": 0.0},
|
||||||
|
half_tol)
|
||||||
|
for tid, kb in kreisel_bounds.items():
|
||||||
|
if _overlaps(pt_bounds, kb):
|
||||||
|
punkte_je_kreisel[tid].append((teileid, pt[0], pt[1]))
|
||||||
|
matched_tid = tid
|
||||||
|
if dbg:
|
||||||
|
dbg(f" Umlauf-Kandidat {teileid!r}: Marker-Box ohne "
|
||||||
|
f"Kreisel, Ein-/Auslauf ({pt[0]:.0f},{pt[1]:.0f}) "
|
||||||
|
f"liegt auf Kreisel {tid}")
|
||||||
|
break
|
||||||
if dbg:
|
if dbg:
|
||||||
if matched_tid is not None:
|
if matched_tid is not None:
|
||||||
dbg(f" Umlauf-Kandidat {teileid!r} ({item.get('teileart', '')!r}) "
|
dbg(f" Umlauf-Kandidat {teileid!r} ({item.get('teileart', '')!r}) "
|
||||||
|
|||||||
@@ -57,6 +57,13 @@ def test_kreisel_abstand_aus_blockdefinition():
|
|||||||
assert (k["x"], k["y"], k["z"], k["rotation"]) == (35860.37, 12519.72, 2437.0, 180.0)
|
assert (k["x"], k["y"], k["z"], k["rotation"]) == (35860.37, 12519.72, 2437.0, 180.0)
|
||||||
ohne_block = dae.kreisel_eintrag(KREISEL_OBEN, {}, "T")
|
ohne_block = dae.kreisel_eintrag(KREISEL_OBEN, {}, "T")
|
||||||
assert ohne_block["abstand"] == 33044.0
|
assert ohne_block["abstand"] == 33044.0
|
||||||
|
assert k["drehrichtung"] == "UZS" # Attribut fehlt -> Vorgabe
|
||||||
|
|
||||||
|
|
||||||
|
def test_kreisel_drehrichtung_aus_attribut():
|
||||||
|
guz = _insert("KREISEL_4_STANDARD_3619", (42563.78, 1703.66, 2177.0), 90.0,
|
||||||
|
{"NUMMER": "4", "DREHRICHTUNG": "GUZ"})
|
||||||
|
assert dae.kreisel_eintrag(guz, {}, "T")["drehrichtung"] == "GUZ"
|
||||||
|
|
||||||
|
|
||||||
def test_gf_zwischen_zwei_kreiseln_bekommt_endhoehe():
|
def test_gf_zwischen_zwei_kreiseln_bekommt_endhoehe():
|
||||||
|
|||||||
@@ -485,3 +485,56 @@ class TestAsEsImKreiselUmlauf:
|
|||||||
keys = [p[0] for p in umlauf["0001"]]
|
keys = [p[0] for p in umlauf["0001"]]
|
||||||
assert "0057" not in keys, (
|
assert "0057" not in keys, (
|
||||||
"ES-Item weit ausserhalb der Kreiselbox wurde faelschlich erkannt")
|
"ES-Item weit ausserhalb der Kreiselbox wurde faelschlich erkannt")
|
||||||
|
|
||||||
|
|
||||||
|
def _trans(x, y, z=0.0):
|
||||||
|
"""Gegenstueck zu _decode_trans_xy (csv:trans-encode in export.lsp): drei
|
||||||
|
vorzeichenbehaftete 24-Bit-Fixed-Point-Werte (Faktor 10), je 4 Zeichen."""
|
||||||
|
from export_neighbors import _B64_CHARS
|
||||||
|
text = ""
|
||||||
|
for v in (x, y, z):
|
||||||
|
n = int(round(v * 10.0)) & 0xFFFFFF
|
||||||
|
text += "".join(_B64_CHARS[(n >> s) & 63] for s in (18, 12, 6, 0))
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
|
def _strecke(teileid, k1_xy, k2_xy):
|
||||||
|
return {"teileart": "ILS 2.0 Strecke", "teileid": teileid,
|
||||||
|
"k1": _trans(*k1_xy), "k2": _trans(*k2_xy)}
|
||||||
|
|
||||||
|
|
||||||
|
class TestAsEsUeberEinlaufpunkt:
|
||||||
|
"""Dematic/Arvato VF_5 an Kreisel1 (Review 2026-10-08): die Strecke laeuft
|
||||||
|
PARALLEL zum Kreisel, der 90-Grad-Einlauf (KS_EIN) liegt darum quer zur
|
||||||
|
Kette - Marker (Einfuegepunkt) 557 mm neben der Kette, Einlauf nur 52 mm
|
||||||
|
davor. Kreisel entlang +Y, rechte Kette bei x = +400."""
|
||||||
|
|
||||||
|
def _kreisel_y(self):
|
||||||
|
return _kreisel("0001", 0.0, 0.0, 90.0, abstand=3619.0)
|
||||||
|
|
||||||
|
def test_marker_daneben_einlauf_auf_der_kette(self):
|
||||||
|
items = [self._kreisel_y(),
|
||||||
|
_separator("0043", 400.0, 1500.0),
|
||||||
|
_ases("ILS Ausschleuselement", "0071", 957.0, 2283.0, "0009"),
|
||||||
|
_strecke("0009", (348.0, 2283.0), (348.0, 9000.0))]
|
||||||
|
umlauf = compute_kreisel_umlauf(
|
||||||
|
items, tolerance_mm=200.0, durchmesser_mm=DURCHMESSER_MM)
|
||||||
|
punkte = {p[0]: p for p in umlauf["0001"]}
|
||||||
|
assert "0071" in punkte, "AS ueber den Einlaufpunkt nicht im Umlauf"
|
||||||
|
# nach dem Einlauf einsortiert, nicht nach dem Marker
|
||||||
|
assert len(umlauf["0001"]) == 2
|
||||||
|
|
||||||
|
def test_ohne_einlaufpunkt_bleibt_es_bei_der_marker_box(self):
|
||||||
|
items = [self._kreisel_y(),
|
||||||
|
_ases("ILS Ausschleuselement", "0071", 957.0, 2283.0, "0009")]
|
||||||
|
umlauf = compute_kreisel_umlauf(
|
||||||
|
items, tolerance_mm=200.0, durchmesser_mm=DURCHMESSER_MM)
|
||||||
|
assert "0071" not in [p[0] for p in umlauf["0001"]]
|
||||||
|
|
||||||
|
def test_einlauf_weit_weg_wird_nicht_zugeordnet(self):
|
||||||
|
items = [self._kreisel_y(),
|
||||||
|
_ases("ILS Ausschleuselement", "0071", 957.0, 2283.0, "0009"),
|
||||||
|
_strecke("0009", (5000.0, 2283.0), (9000.0, 2283.0))]
|
||||||
|
umlauf = compute_kreisel_umlauf(
|
||||||
|
items, tolerance_mm=200.0, durchmesser_mm=DURCHMESSER_MM)
|
||||||
|
assert "0071" not in [p[0] for p in umlauf["0001"]]
|
||||||
|
|||||||
Vendored
+89
-58
@@ -8,7 +8,8 @@
|
|||||||
"abstand": 3619.14,
|
"abstand": 3619.14,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"typ": "STANDARD",
|
"typ": "STANDARD",
|
||||||
"comment": "aus Zeichnung: KREISEL_1_STANDARD_3619 (ID 0001), abstand aus Blockdefinition (AN8 -> SP8)"
|
"drehrichtung": "GUZ",
|
||||||
|
"comment": "aus Zeichnung: KREISEL_1_STANDARD_3619 (ID 0056), abstand aus Blockdefinition (AN8 -> SP8)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "Kreisel_Arvato_02",
|
"id": "Kreisel_Arvato_02",
|
||||||
@@ -19,6 +20,7 @@
|
|||||||
"abstand": 33044.28,
|
"abstand": 33044.28,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"typ": "STANDARD",
|
"typ": "STANDARD",
|
||||||
|
"drehrichtung": "UZS",
|
||||||
"comment": "aus Zeichnung: KREISEL_2_STANDARD_33044 (ID 0002), abstand aus Blockdefinition (AN8 -> SP8)"
|
"comment": "aus Zeichnung: KREISEL_2_STANDARD_33044 (ID 0002), abstand aus Blockdefinition (AN8 -> SP8)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -30,6 +32,7 @@
|
|||||||
"abstand": 33470.18,
|
"abstand": 33470.18,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"typ": "STANDARD",
|
"typ": "STANDARD",
|
||||||
|
"drehrichtung": "UZS",
|
||||||
"comment": "aus Zeichnung: KREISEL_3_STANDARD_33470 (ID 0003), abstand aus Blockdefinition (AN8 -> SP8)"
|
"comment": "aus Zeichnung: KREISEL_3_STANDARD_33470 (ID 0003), abstand aus Blockdefinition (AN8 -> SP8)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -41,10 +44,11 @@
|
|||||||
"abstand": 3619.14,
|
"abstand": 3619.14,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"typ": "STANDARD",
|
"typ": "STANDARD",
|
||||||
"comment": "aus Zeichnung: KREISEL_4_STANDARD_3619 (ID 0004), abstand aus Blockdefinition (AN8 -> SP8)"
|
"drehrichtung": "GUZ",
|
||||||
|
"comment": "aus Zeichnung: KREISEL_4_STANDARD_3619 (ID 0055), abstand aus Blockdefinition (AN8 -> SP8)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_02",
|
"test_id": "VF_Arvato_01",
|
||||||
"typ": "standard",
|
"typ": "standard",
|
||||||
"richtung": "Auf",
|
"richtung": "Auf",
|
||||||
"deltaL": 11559.0,
|
"deltaL": 11559.0,
|
||||||
@@ -57,10 +61,10 @@
|
|||||||
"x": 3314.07,
|
"x": 3314.07,
|
||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"comment": "aus Zeichnung: VF_2 (ID 0082), Hoehe 1826 -> 2437; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
"comment": "aus Zeichnung: VF_1 (ID 0005), Hoehe 0 -> 611; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_03",
|
"test_id": "VF_Arvato_02",
|
||||||
"typ": "standard",
|
"typ": "standard",
|
||||||
"richtung": "Auf",
|
"richtung": "Auf",
|
||||||
"deltaL": 11559.0,
|
"deltaL": 11559.0,
|
||||||
@@ -73,10 +77,10 @@
|
|||||||
"x": 15285.06,
|
"x": 15285.06,
|
||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"comment": "aus Zeichnung: VF_3 (ID 0083), Hoehe 1826 -> 2437; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
"comment": "aus Zeichnung: VF_2 (ID 0006), Hoehe 0 -> 611; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_05",
|
"test_id": "VF_Arvato_03",
|
||||||
"typ": "standard",
|
"typ": "standard",
|
||||||
"richtung": "Auf",
|
"richtung": "Auf",
|
||||||
"deltaL": 11559.0,
|
"deltaL": 11559.0,
|
||||||
@@ -89,10 +93,10 @@
|
|||||||
"x": 23843.05,
|
"x": 23843.05,
|
||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"comment": "aus Zeichnung: VF_5 (ID 0084), Hoehe 1826 -> 2437; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
"comment": "aus Zeichnung: VF_3 (ID 0007), Hoehe 0 -> 611; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_06",
|
"test_id": "VF_Arvato_04",
|
||||||
"typ": "standard",
|
"typ": "standard",
|
||||||
"richtung": "Auf",
|
"richtung": "Auf",
|
||||||
"deltaL": 22559.0,
|
"deltaL": 22559.0,
|
||||||
@@ -105,10 +109,10 @@
|
|||||||
"x": 42163.78,
|
"x": 42163.78,
|
||||||
"y": 4017.06,
|
"y": 4017.06,
|
||||||
"z": 2177.0,
|
"z": 2177.0,
|
||||||
"comment": "aus Zeichnung: VF_6 (ID 0085), Hoehe 2177 -> 2177; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
"comment": "aus Zeichnung: VF_4 (ID 0008), Hoehe 0 -> 0; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_08",
|
"test_id": "VF_Arvato_05",
|
||||||
"typ": "standard",
|
"typ": "standard",
|
||||||
"richtung": "Auf",
|
"richtung": "Auf",
|
||||||
"deltaL": 6852.0,
|
"deltaL": 6852.0,
|
||||||
@@ -121,7 +125,7 @@
|
|||||||
"x": 19551.49,
|
"x": 19551.49,
|
||||||
"y": 5265.19,
|
"y": 5265.19,
|
||||||
"z": 2177.0,
|
"z": 2177.0,
|
||||||
"comment": "aus Zeichnung: VF_8 (ID 0183), Hoehe 2177 -> 2437; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
"comment": "aus Zeichnung: VF_5 (ID 0009), Hoehe 0 -> 260; deltaL/deltaH aus den (ganzzahligen) Attributen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "VF_Arvato_LZ_01",
|
"test_id": "VF_Arvato_LZ_01",
|
||||||
@@ -180,7 +184,7 @@
|
|||||||
"INT:2",
|
"INT:2",
|
||||||
"STR:2"
|
"STR:2"
|
||||||
],
|
],
|
||||||
"comment": "aus Zeichnung: VF_26 (ID 0184), 52 Eingaben, Hoehe 2177 -> 2174; wird 1:1 abgespielt (vsp-bau-journal)"
|
"comment": "aus Zeichnung: VF_6 (ID 0010), 52 Eingaben, Hoehe 2177 -> 2174; wird 1:1 abgespielt (vsp-bau-journal)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_01",
|
"test_id": "GF_Arvato_01",
|
||||||
@@ -195,7 +199,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_1 (ID 0005); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_1 (ID 0011); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_02",
|
"test_id": "GF_Arvato_02",
|
||||||
@@ -210,7 +214,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_2 (ID 0006); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_2 (ID 0012); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_03",
|
"test_id": "GF_Arvato_03",
|
||||||
@@ -225,7 +229,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_3 (ID 0007); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_3 (ID 0013); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_04",
|
"test_id": "GF_Arvato_04",
|
||||||
@@ -240,7 +244,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_4 (ID 0008); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_4 (ID 0014); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_05",
|
"test_id": "GF_Arvato_05",
|
||||||
@@ -255,7 +259,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_5 (ID 0009); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_5 (ID 0015); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_06",
|
"test_id": "GF_Arvato_06",
|
||||||
@@ -270,7 +274,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_6 (ID 0010); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_6 (ID 0016); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_07",
|
"test_id": "GF_Arvato_07",
|
||||||
@@ -285,7 +289,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_7 (ID 0011); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_7 (ID 0017); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_08",
|
"test_id": "GF_Arvato_08",
|
||||||
@@ -300,7 +304,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_8 (ID 0012); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_8 (ID 0018); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_09",
|
"test_id": "GF_Arvato_09",
|
||||||
@@ -315,7 +319,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_9 (ID 0013); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_9 (ID 0019); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_10",
|
"test_id": "GF_Arvato_10",
|
||||||
@@ -330,7 +334,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_10 (ID 0014); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_10 (ID 0020); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_11",
|
"test_id": "GF_Arvato_11",
|
||||||
@@ -345,7 +349,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_11 (ID 0015); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_11 (ID 0021); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_12",
|
"test_id": "GF_Arvato_12",
|
||||||
@@ -360,7 +364,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_12 (ID 0016); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_12 (ID 0022); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_13",
|
"test_id": "GF_Arvato_13",
|
||||||
@@ -375,7 +379,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_13 (ID 0017); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_13 (ID 0023); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_14",
|
"test_id": "GF_Arvato_14",
|
||||||
@@ -390,7 +394,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_14 (ID 0018); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_14 (ID 0024); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_15",
|
"test_id": "GF_Arvato_15",
|
||||||
@@ -405,7 +409,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_15 (ID 0019); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_15 (ID 0025); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_16",
|
"test_id": "GF_Arvato_16",
|
||||||
@@ -420,7 +424,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_16 (ID 0020); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_16 (ID 0026); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_17",
|
"test_id": "GF_Arvato_17",
|
||||||
@@ -435,7 +439,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_17 (ID 0021); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_17 (ID 0027); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_18",
|
"test_id": "GF_Arvato_18",
|
||||||
@@ -450,7 +454,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_18 (ID 0022); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_18 (ID 0028); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_19",
|
"test_id": "GF_Arvato_19",
|
||||||
@@ -465,7 +469,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_19 (ID 0023); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_19 (ID 0029); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_20",
|
"test_id": "GF_Arvato_20",
|
||||||
@@ -480,7 +484,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_20 (ID 0024); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_20 (ID 0030); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_21",
|
"test_id": "GF_Arvato_21",
|
||||||
@@ -495,7 +499,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_21 (ID 0025); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_21 (ID 0031); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_22",
|
"test_id": "GF_Arvato_22",
|
||||||
@@ -510,7 +514,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_22 (ID 0026); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_22 (ID 0032); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_23",
|
"test_id": "GF_Arvato_23",
|
||||||
@@ -525,7 +529,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_23 (ID 0027); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_23 (ID 0033); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_24",
|
"test_id": "GF_Arvato_24",
|
||||||
@@ -540,7 +544,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_24 (ID 0028); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_24 (ID 0034); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_25",
|
"test_id": "GF_Arvato_25",
|
||||||
@@ -555,7 +559,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_25 (ID 0029); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_25 (ID 0035); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_26",
|
"test_id": "GF_Arvato_26",
|
||||||
@@ -570,7 +574,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_26 (ID 0030); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_26 (ID 0036); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Arvato_27",
|
"test_id": "GF_Arvato_27",
|
||||||
@@ -585,7 +589,7 @@
|
|||||||
"kreisel_start": "Kreisel_Arvato_02",
|
"kreisel_start": "Kreisel_Arvato_02",
|
||||||
"kreisel_ende": "Kreisel_Arvato_03",
|
"kreisel_ende": "Kreisel_Arvato_03",
|
||||||
"hoehe_ende_mm": 1826.0,
|
"hoehe_ende_mm": 1826.0,
|
||||||
"comment": "aus Zeichnung: GF_27 (ID 0031); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 3.7929 Grad -> HOEHE_BIS 1568"
|
"comment": "aus Zeichnung: GF_27 (ID 0037); Endhoehe = Hoehe von Kreisel_Arvato_03 (1826.0), Winkel rechnet der Treiber neu; gebaut war 2.4700 Grad -> HOEHE_BIS 1825"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -594,7 +598,7 @@
|
|||||||
"y": 12119.73,
|
"y": 12119.73,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 0.0,
|
"rotation": 0.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0043, ZUORDNUNG 0002, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0038, ZUORDNUNG 0002, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -603,7 +607,7 @@
|
|||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 0.0,
|
"rotation": 0.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0044, ZUORDNUNG 0003, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0039, ZUORDNUNG 0003, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -612,7 +616,7 @@
|
|||||||
"y": 12919.72,
|
"y": 12919.72,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0045, ZUORDNUNG 0002, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0040, ZUORDNUNG 0002, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -621,7 +625,7 @@
|
|||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 0.0,
|
"rotation": 0.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0046, ZUORDNUNG 0003, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0041, ZUORDNUNG 0003, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -630,7 +634,7 @@
|
|||||||
"y": 12919.78,
|
"y": 12919.78,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0047, ZUORDNUNG 0002, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0042, ZUORDNUNG 0002, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -639,7 +643,7 @@
|
|||||||
"y": 5042.22,
|
"y": 5042.22,
|
||||||
"z": 2177.0,
|
"z": 2177.0,
|
||||||
"rotation": 270.0,
|
"rotation": 270.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0048, ZUORDNUNG 0001, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0043, ZUORDNUNG 0056, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -648,7 +652,7 @@
|
|||||||
"y": 24478.8,
|
"y": 24478.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 0.0,
|
"rotation": 0.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0049, ZUORDNUNG 0003, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0044, ZUORDNUNG 0003, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -657,7 +661,7 @@
|
|||||||
"y": 12919.82,
|
"y": 12919.82,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0050, ZUORDNUNG 0002, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0045, ZUORDNUNG 0002, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -666,16 +670,16 @@
|
|||||||
"y": 12919.72,
|
"y": 12919.72,
|
||||||
"z": 2437.0,
|
"z": 2437.0,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0051, ZUORDNUNG 0002, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0046, ZUORDNUNG 0002, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
"block": "Separator_SP",
|
"block": "Separator_SP",
|
||||||
"x": 35857.18,
|
"x": 35182.77,
|
||||||
"y": 25278.8,
|
"y": 25278.8,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 180.0,
|
"rotation": 180.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0052, ZUORDNUNG 0003, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0047, ZUORDNUNG 0003, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -684,7 +688,7 @@
|
|||||||
"y": 4269.52,
|
"y": 4269.52,
|
||||||
"z": 2177.0,
|
"z": 2177.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Separator_SP_3D (ID 0053, ZUORDNUNG 0004, ARTINR 200000077)"
|
"comment": "aus Zeichnung: Separator_SP_3D (ID 0048, ZUORDNUNG 0055, ARTINR 200000077)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -693,7 +697,7 @@
|
|||||||
"y": 24865.38,
|
"y": 24865.38,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0073, ZUORDNUNG 0003, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0049, ZUORDNUNG 0003, ARTINR 829534306)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -702,7 +706,7 @@
|
|||||||
"y": 13306.31,
|
"y": 13306.31,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0074, ZUORDNUNG 0005, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0050, ZUORDNUNG 0011, ARTINR 829534306)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -711,7 +715,7 @@
|
|||||||
"y": 24865.38,
|
"y": 24865.38,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0075, ZUORDNUNG 0003, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0051, ZUORDNUNG 0003, ARTINR 829534306)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -720,7 +724,7 @@
|
|||||||
"y": 13306.36,
|
"y": 13306.36,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0076, ZUORDNUNG 0002, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0052, ZUORDNUNG 0002, ARTINR 829534306)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -729,7 +733,7 @@
|
|||||||
"y": 24865.38,
|
"y": 24865.38,
|
||||||
"z": 1826.0,
|
"z": 1826.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0077, ZUORDNUNG 0003, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0059, ZUORDNUNG 0003, ARTINR 829534306)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "insert",
|
"function": "insert",
|
||||||
@@ -738,6 +742,33 @@
|
|||||||
"y": 13306.4,
|
"y": 13306.4,
|
||||||
"z": 2473.0,
|
"z": 2473.0,
|
||||||
"rotation": 90.0,
|
"rotation": 90.0,
|
||||||
"comment": "aus Zeichnung: Scanner_3D (ID 0078, ZUORDNUNG 0022, ARTINR 829534306)"
|
"comment": "aus Zeichnung: Scanner_3D (ID 0054, ZUORDNUNG 0028, ARTINR 829534306)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "insert",
|
||||||
|
"block": "BTMT-Beladung",
|
||||||
|
"x": 42163.78,
|
||||||
|
"y": 4978.68,
|
||||||
|
"z": 2177.0,
|
||||||
|
"rotation": 270.0,
|
||||||
|
"comment": "aus Zeichnung: BTMT-Beladung_3D (ID 0057, ARTINR 829662012)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "insert",
|
||||||
|
"block": "SC_Entladung",
|
||||||
|
"x": 35609.45,
|
||||||
|
"y": 25278.8,
|
||||||
|
"z": 1826.0,
|
||||||
|
"rotation": 0.0,
|
||||||
|
"comment": "aus Zeichnung: SC_Entladung_3D (ID 0058, ARTINR 400100156)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "insert",
|
||||||
|
"block": "Scanner",
|
||||||
|
"x": 42163.78,
|
||||||
|
"y": 4224.88,
|
||||||
|
"z": 2177.0,
|
||||||
|
"rotation": 180.0,
|
||||||
|
"comment": "aus Zeichnung: Scanner_3D (ID 0053, ZUORDNUNG 0055, ARTINR 829534306)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user