diff --git a/lib/dxf_scan_components.py b/lib/dxf_scan_components.py index 7863a95..fc03960 100644 --- a/lib/dxf_scan_components.py +++ b/lib/dxf_scan_components.py @@ -1973,6 +1973,53 @@ def hoehen_entfernen(eintraege): return n +# Querabstand (mm) zur Kreisel-Kette, bis zu dem ein Einzelteil (Separator, +# Scanner) als "auf dem Kreisel" gilt und dessen Anwender-Hoehe bekommt. +SENSOR_KETTE_MAX_QUER = 350.0 + + +def sensor_hoehen_von_kreiseln(eintraege, durchmesser=800.0): + """Einzelteile auf einer Kreisel-Kette bekommen dessen Anwender-Hoehe. + + Im flachen 2D-Plan (--ohne-hoehen) stehen Separatoren/Scanner sonst auf + Z=0, waehrend der Kreisel per --kreisel-hoehe auf seiner Hoehe sitzt. + Kette = Achse (Einfuegepunkt + Radius entlang rotation, Laenge abstand) + im Abstand r beidseits, plus die Halbkreise an den Enden. Nur Kreisel mit + hoehe_quelle "Anwender"; bei mehreren gewinnt der naechste. + + Rueckgabe: Anzahl gesetzter Hoehen. + """ + r = durchmesser / 2.0 + kreisel = [] + for e in eintraege: + if "abstand" in e and e.get("hoehe_quelle") == "Anwender": + w = math.radians(e.get("rotation", 0.0)) + u = (math.cos(w), math.sin(w)) + a = (e["x"] + r * u[0], e["y"] + r * u[1]) + kreisel.append((e, a, u, float(e["abstand"]))) + gesetzt = 0 + for e in eintraege: + if e.get("function") != "insert" or "block" not in e: + continue + beste = None + for k, a, u, laenge in kreisel: + vx, vy = e["x"] - a[0], e["y"] - a[1] + t = max(0.0, min(laenge, vx * u[0] + vy * u[1])) + # Abstand zur Achse (Strecke), davon r abgezogen = Abstand zur Kette + d = abs(math.hypot(vx - t * u[0], vy - t * u[1]) - r) + if d <= SENSOR_KETTE_MAX_QUER and (beste is None or d < beste[0]): + beste = (d, k) + if beste: + k = beste[1] + e["z"] = float(k["z"]) + e["hoehe_quelle"] = "Anwender" + e.pop("hoehe_unbekannt", None) + e["comment"] += " Hoehe %.1f von %s (liegt auf dessen Kette)." % ( + k["z"], k["id"]) + gesetzt += 1 + return gesetzt + + def arrays_einzeilig(text): """Zahlen-Arrays im JSON-Text auf eine Zeile ziehen. @@ -2133,6 +2180,12 @@ def main(): if args.ohne_hoehen: print("%s --ohne-hoehen: Hoehe in %d Eintraegen auf 0 gesetzt" % (PREFIX, hoehen_entfernen(eintraege))) + if args.kreisel_hoehe: + print("%s Einzelteile auf Kreisel-Ketten: Hoehe in %d Eintraegen vom " + "Kreisel uebernommen" + % (PREFIX, sensor_hoehen_von_kreiseln( + eintraege, + defaults.get("kreisel", {}).get("durchmesser", 800.0)))) if fenster: vorher = len(eintraege) diff --git a/tests/test_dematic_arvato.lsp b/tests/test_dematic_arvato.lsp index 3583bec..de1db72 100644 --- a/tests/test_dematic_arvato.lsp +++ b/tests/test_dematic_arvato.lsp @@ -109,16 +109,38 @@ ;; Mit der VF-Konvention wurde der feste AS/ES-Abfall addiert statt ;; abgezogen - real gebaut: 3.79 statt ~2.49 Grad, GF endete 258 mm unter ;; dem Kreisel (HOEHE_BIS 1568 statt 1826). Darum hier der Betrag. +;; +;; NICHT gf-winkel-berechnen: dessen asin(dH / L) behandelt die Laenge als +;; SCHRAEGE Laenge (richtig fuer Modus 3). Modus 1 haelt aber die +;; HORIZONTALE Laenge deltaL fest und streckt die Staustrecke um 1/cos(w) +;; (mubea:gf-bauen) - der Abfall der Schraege (Staustrecke + Separator) ist +;; dann genau (deltaL - aus-dx - ein-dx) * tan(w). Bei 2-3 Grad (Dematic) +;; ist das gleich, bei steilen GF nicht: Showroom_ILS_3_0 faellt 1860 mm auf +;; 2405 mm (~37 Grad), asin ergab ~50 Grad und die GF endete weit unter dem +;; unteren Kreisel. Der Abfall des ES haengt von der Einlaufneigung ab - er +;; wird wie in Modus 3 (gf-messe-dz-block) beim aktuellen Winkel gemessen +;; und iteriert; das AS liegt flach, sein Abfall ist fest (aus-dz). (defun dematic_arvato:gf-winkel (deltaL hz as-seite es-seite as-winkel es-winkel - z-start z-ende / winkel) + z-start z-ende / L dz-as dz-es winkel vorher + iter rad-h rad-v) (mubea:ensure-gf-init) (vf-set-as-masse as-winkel as-seite) (vf-set-es-masse es-winkel es-seite) - (setq aus-dz (abs (float aus-dz)) ein-dz (abs (float ein-dz))) - (setq winkel - (gf-winkel-berechnen - (list (list "Linie" hz (- deltaL (float aus-dx) (float ein-dx) 300.0) 0 "links")) - (- z-start z-ende) 1)) + (setq L (- deltaL (float aus-dx) (float ein-dx)) + dz-as (abs (float aus-dz)) + dz-es (abs (float ein-dz)) + rad-h (* hz (/ pi 180.0)) + vorher -999.0 + iter 0) + (setq winkel (* (atan (- z-start z-ende dz-as dz-es) L) (/ 180.0 pi))) + (while (and (< iter 6) (> (abs (- winkel vorher)) 0.001)) + (setq vorher winkel + rad-v (* winkel (/ pi 180.0))) + (setq dz-es (gf-messe-dz-block (strcat "ES_Element_" es-winkel "_" es-seite) + (list (* (cos rad-h) (cos rad-v)) (* (sin rad-h) (cos rad-v)) + (- (sin rad-v))))) + (setq winkel (* (atan (- z-start z-ende dz-as dz-es) L) (/ 180.0 pi)) + iter (1+ iter))) (vf-set-as-masse "90" as-seite) (vf-set-es-masse "90" es-seite) winkel) @@ -171,10 +193,34 @@ (strcat " aus Hoehe " (rtos (caddr start) 2 1) " -> " (rtos z-ende 2 1)) ""))))) - (dematic_arvato:rec-block rec - (mubea:gf-bauen tid (mapcar 'float start) (float deltaL) (float hz) - as-seite es-seite as-winkel es-winkel winkel) - "gefaellestrecke-einfuegen lieferte keinen GF-Block")))) + (setq rec + (dematic_arvato:rec-block rec + (mubea:gf-bauen tid (mapcar 'float start) (float deltaL) (float hz) + as-seite es-seite as-winkel es-winkel winkel) + "gefaellestrecke-einfuegen lieferte keinen GF-Block")) + ;; Ist-Endhoehe gegen den Kreisel am Ende pruefen + (dematic_arvato:gf-endhoehe-pruefen rec z-ende)))) + +;; HOEHE_BIS_mm des gebauten GF-Blocks mit der Soll-Endhoehe vergleichen; +;; mehr als 5 mm daneben -> status "warnung" + Meldung (die GF trifft den +;; unteren Kreisel nicht). +(defun dematic_arvato:gf-endhoehe-pruefen (rec z-ende / ist diff) + (setq ist (cdr (assoc "HOEHE_BIS_mm" (ssg-val rec "attribs")))) + (cond + ((not (and (numberp z-ende) ist (= (ssg-val rec "status") "executed"))) rec) + (T + (setq diff (- (atof ist) z-ende)) + (setq rec (vsp-set rec "meldungen" + (append (ssg-val rec "meldungen") + (list (strcat "HOEHE_BIS " ist " (Soll " + (rtos z-ende 2 0) ", Abweichung " + (rtos diff 2 0) " mm)"))))) + (if (> (abs diff) 5.0) + (progn + (princ (strcat "\n WARNUNG: GF endet bei " ist " statt " + (rtos z-ende 2 0))) + (vsp-set rec "status" "warnung")) + rec)))) ;; VarioFoerderer "standard"/"etage" - mubea-Schema, Bau ueber ;; mubea:vario-bauen. "motorseite" wirkt wie im Edit-Dialog ueber den diff --git a/tests/test_dxf_scan_gf.py b/tests/test_dxf_scan_gf.py index 25a9c0f..3768974 100644 --- a/tests/test_dxf_scan_gf.py +++ b/tests/test_dxf_scan_gf.py @@ -260,3 +260,29 @@ def test_kurznamen_ae_ee(): assert dsc.familie_von("EE-R") == "schleuselement" assert dsc.mappe_block("AE-D")[0].startswith("AS_Element_90_") assert dsc.mappe_block("EE-R")[0].startswith("ES_Element_90_") + + +def test_sensor_bekommt_hoehe_des_kreisels(): + # Kreisel_Showroom_03: Einfuegepunkt (37105.93, 9888.9), rotation 180, + # Ketten y=9488.9/10288.9. Separator auf der Kette, Scanner 280 mm + # innerhalb, ein Teil 1000 mm daneben bleibt unberuehrt. + kreisel = {"id": "K3", "x": 37105.93, "y": 9888.9, "z": 1700.0, + "abstand": 7200.0, "rotation": 180.0, "hoehe_quelle": "Anwender"} + sep = {"function": "insert", "block": "S-LP", "x": 30343.39, "y": 9488.9, + "z": 0.0, "hoehe_unbekannt": True, "comment": ""} + scan = {"function": "insert", "block": "Scanner", "x": 35905.93, + "y": 10008.9, "z": 0.0, "comment": ""} + weit = {"function": "insert", "block": "S-LP", "x": 33000.0, "y": 11300.0, + "z": 0.0, "comment": ""} + assert dsc.sensor_hoehen_von_kreiseln([kreisel, sep, scan, weit]) == 2 + assert sep["z"] == 1700.0 and "hoehe_unbekannt" not in sep + assert scan["z"] == 1700.0 + assert weit["z"] == 0.0 + + +def test_sensor_ohne_anwender_hoehe_bleibt(): + kreisel = {"id": "K", "x": 0.0, "y": 0.0, "z": 0.0, "abstand": 5000.0, + "rotation": 0.0} + sep = {"function": "insert", "block": "S-LP", "x": 1000.0, "y": 400.0, + "z": 0.0, "comment": ""} + assert dsc.sensor_hoehen_von_kreiseln([kreisel, sep]) == 0 diff --git a/tests/test_showroom_ils.lsp b/tests/test_showroom_ils.lsp index 8e20f8a..0ff80b7 100644 --- a/tests/test_showroom_ils.lsp +++ b/tests/test_showroom_ils.lsp @@ -1,24 +1,35 @@ ;; ============================================================ ;; test_showroom_ils.lsp - Nachbau des ILS-3.0-Showrooms. ;; -;; Datenquelle: tests/testdata/showroom_ils.json, erzeugt aus der -;; Fremdzeichnung (flacher 2D-Plan, keine Hoehen): -;; python lib/dxf_scan_components.py \ -;; C:/develop/sps_skel/data/Showroom_ILS_3_0.dxf data \ -;; tests/testdata/showroom_ils.json --projekt Showroom \ -;; --flach --ohne-hoehen \ -;; --kreisel-achse 27797.93 16298.90 36705.93 16298.90 \ -;; --kreisel-achse 28772.93 13093.90 35305.93 13093.90 +;; Datenquelle: tests/testdata/showroom_ils.json. Entstehung in zwei Stufen: +;; 1. Scanner auf der Fremdzeichnung (flacher 2D-Plan, Hoehen vom Anwender): +;; python lib/dxf_scan_components.py \ +;; C:/develop/sps_skel/data/Showroom_ILS_3_0.dxf data \ +;; tests/testdata/showroom_ils.json --projekt Showroom \ +;; --flach --ohne-hoehen \ +;; --kreisel-achse 27797.93 16298.90 36705.93 16298.90 \ +;; --kreisel-achse 28772.93 13093.90 35305.93 13093.90 \ +;; --kreisel-hoehe 26997.93 3066.4 5055 \ +;; --kreisel-hoehe 26997.93 12898.9 5055 \ +;; --kreisel-hoehe 37105.93 9888.9 1700 \ +;; --kreisel-hoehe 27397.93 16298.9 5055 \ +;; --kreisel-hoehe 28372.93 13093.9 3195 +;; 2. VON HAND (geht bei Stufe 1 verloren - danach neu eintragen): +;; Kreisel_Showroom_04 (vertikal, rechts) samt Separator/Scanner bei +;; y=14979 entfernt, dafuer VF_Showroom_01 (VarioFoerderer standard, +;; Auf von Kreisel_Showroom_03 zu Kreisel_Showroom_05) eingetragen. ;; -;; Inhalt: 6 Kreisel, 11 Gefaellestrecken (Modus 1), Separatoren/Scanner. +;; Inhalt: 5 Kreisel, 1 VarioFoerderer, 11 Gefaellestrecken (Modus 1), +;; Separatoren/Scanner. +;; - Ebenen: oben 5055 (Kreisel 01/02/05), Mitte 3195 (06), unten 1700 (03). ;; - Kreisel_Showroom_05/06 sind Schleifen ohne AN8/SP8 im Plan (an beiden ;; Enden Weichenboegen) - per --kreisel-achse als STANDARD-Kreisel ;; angenaehert (Radmitten = Mittelpunkte der PIN-Kreise). ;; - Weichen (WB-*/WM-*/WL-*/WR-*) werden bewusst NICHT nachgebaut. -;; - HOEHEN FEHLEN NOCH: alle z = 0, die GF laufen mit dem Platzhalter -;; winkel_grad 3.0. Sobald die Kreisel-Hoehen bekannt sind, den Scanner -;; mit --kreisel-hoehe X Y Z je Kreisel neu laufen lassen - dann bekommen -;; die GF start_mm.z/hoehe_ende_mm und der Treiber rechnet den Winkel. +;; - Die GF sind steil (1860 bzw. 1495 mm Abfall auf 2405 mm) - den Winkel +;; rechnet dematic_arvato:gf-winkel aus hoehe_ende_mm, und +;; dematic_arvato:gf-endhoehe-pruefen meldet "warnung", wenn eine GF +;; den unteren Kreisel um mehr als 5 mm verfehlt. ;; ;; Keine eigene Bau-Logik: Eintragsschema und Lauf wie TEST_DEMATIC_ARVATO ;; (dematic_arvato:bau-datei aus tests/test_dematic_arvato.lsp). diff --git a/tests/testdata/showroom_ils.json b/tests/testdata/showroom_ils.json index 81e9af7..b46510c 100644 --- a/tests/testdata/showroom_ils.json +++ b/tests/testdata/showroom_ils.json @@ -4,407 +4,385 @@ "function": "insert", "x": 26997.93, "y": 3066.4, - "z": 0.0, + "z": 5055.0, "abstand": 9032.5, "rotation": 90.0, "typ": "STANDARD", "darstellung": "2D", - "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (26997.93, 3466.40) -> SP8 (Layer 1SP-800) (26997.93, 12498.90), Mittenabstand 9032.50, rotation 90.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. [Hoehe entfernt: --ohne-hoehen]", - "hoehe_unbekannt": true + "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (26997.93, 3466.40) -> SP8 (Layer 1SP-800) (26997.93, 12498.90), Mittenabstand 9032.50, rotation 90.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. Hoehe 5055.0 vom Anwender.", + "hoehe_quelle": "Anwender" }, { "id": "Kreisel_Showroom_02", "function": "insert", "x": 26997.93, "y": 12898.9, - "z": 0.0, + "z": 5055.0, "abstand": 3000.0, "rotation": 90.0, "typ": "STANDARD", "darstellung": "2D", - "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (26997.93, 13298.90) -> SP8 (Layer 1SP-800) (26997.93, 16298.90), Mittenabstand 3000.00, rotation 90.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. [Hoehe entfernt: --ohne-hoehen]", - "hoehe_unbekannt": true + "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (26997.93, 13298.90) -> SP8 (Layer 1SP-800) (26997.93, 16298.90), Mittenabstand 3000.00, rotation 90.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. Hoehe 5055.0 vom Anwender.", + "hoehe_quelle": "Anwender" }, { "id": "Kreisel_Showroom_03", "function": "insert", "x": 37105.93, "y": 9888.9, - "z": 0.0, + "z": 1700.0, "abstand": 7200.0, "rotation": 180.0, "typ": "STANDARD", "darstellung": "2D", - "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (36705.93, 9888.90) -> SP8 (Layer 1SP-800) (29505.93, 9888.90), Mittenabstand 7200.00, rotation 180.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. [Hoehe entfernt: --ohne-hoehen]", - "hoehe_unbekannt": true - }, - { - "id": "Kreisel_Showroom_04", - "function": "insert", - "x": 36705.93, - "y": 10288.9, - "z": 0.0, - "abstand": 4810.0, - "rotation": 90.0, - "typ": "STANDARD", - "darstellung": "2D", - "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (36705.93, 10688.90) -> SP8 (Layer 1SP-800) (36705.93, 15498.90), Mittenabstand 4810.00, rotation 90.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. [Hoehe entfernt: --ohne-hoehen]", - "hoehe_unbekannt": true + "comment": "aus DXF: Radmitte AN8 (Layer 1ANTR-800) (36705.93, 9888.90) -> SP8 (Layer 1SP-800) (29505.93, 9888.90), Mittenabstand 7200.00, rotation 180.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=11039.9 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. Hoehe 1700.0 vom Anwender.", + "hoehe_quelle": "Anwender" }, { "id": "Kreisel_Showroom_05", "function": "insert", "x": 27397.93, "y": 16298.9, - "z": 0.0, + "z": 5055.0, "abstand": 8908.0, "rotation": 0.0, "typ": "STANDARD", "darstellung": "2D", - "comment": "aus DXF: Radmitte (manuell AN8) (Layer --kreisel-achse) (27797.93, 16298.90) -> (manuell SP8) (Layer --kreisel-achse) (36705.93, 16298.90), Mittenabstand 8908.00, rotation 0.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=0.0 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe.", - "hoehe_unbekannt": true + "comment": "aus DXF: Radmitte (manuell AN8) (Layer --kreisel-achse) (27797.93, 16298.90) -> (manuell SP8) (Layer --kreisel-achse) (36705.93, 16298.90), Mittenabstand 8908.00, rotation 0.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=0.0 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. Hoehe 5055.0 vom Anwender.", + "hoehe_quelle": "Anwender" }, { "id": "Kreisel_Showroom_06", "function": "insert", "x": 28372.93, "y": 13093.9, - "z": 0.0, + "z": 3195.0, "abstand": 6533.0, "rotation": 0.0, "typ": "STANDARD", "darstellung": "2D", - "comment": "aus DXF: Radmitte (manuell AN8) (Layer --kreisel-achse) (28772.93, 13093.90) -> (manuell SP8) (Layer --kreisel-achse) (35305.93, 13093.90), Mittenabstand 6533.00, rotation 0.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=0.0 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe.", - "hoehe_unbekannt": true + "comment": "aus DXF: Radmitte (manuell AN8) (Layer --kreisel-achse) (28772.93, 13093.90) -> (manuell SP8) (Layer --kreisel-achse) (35305.93, 13093.90), Mittenabstand 6533.00, rotation 0.00 Grad; x/y = AN8-Mitte minus Radius. ACHTUNG hoehe=0.0 ist NICHT belegt: AN8/SP8 sind flache 2D-Symbole auf Z=0 und nur 0 3D-Nachbarn in 3000 mm - zu wenige fuer eine belegbare Hoehe. Hoehe 3195.0 vom Anwender.", + "hoehe_quelle": "Anwender" + }, + { + "test_id": "VF_Showroom_01", + "typ": "standard", + "richtung": "Auf", + "deltaL": 5610.0, + "deltaH": 3355.0, + "seite": "links", + "hz": 90.0, + "x": 36305.93, + "y": 10288.9, + "z": 1700.0, + "comment": "von Hand: ersetzt Kreisel_Showroom_04 (vertikaler Kreisel AN8 (36706, 10689) -> SP8 (36706, 15499)) samt dessen Separator/Scanner bei y=14979. AS auf der oberen Kette von Kreisel_Showroom_03 (y=10288.9, Hoehe 1700) auf dem linken Strang des alten Kreisels (x=36306), Steigung +Y bis zur unteren Kette von Kreisel_Showroom_05 (y=15898.9, Hoehe 5055): deltaL 15898.9 - 10288.9 = 5610, deltaH 5055 - 1700 = 3355. seite noch offen (links als Vorgabe), winkel waehlt der Solver." }, { "test_id": "GF_Showroom_01", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [30455.93, 15898.9, 0.0], + "start_mm": [30455.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (30455.93, 15593.90) -> (30455.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (30636.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (30456, 13994), S-SP bei (30456, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (30243.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (30455.93, 15593.90) -> (30455.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (30636.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (30456, 13994), S-SP bei (30456, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (30243.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_02", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [31255.93, 12693.9, 0.0], + "start_mm": [31255.93, 12693.9, 3195.0], "as_seite": "rechts", "es_seite": "links", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_06", "kreisel_ende": "Kreisel_Showroom_03", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (31255.93, 12388.90) -> (31255.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31075.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (31256, 10789), S-SP bei (31256, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31468.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 1700.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (31255.93, 12388.90) -> (31255.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_06 / Kreisel_Showroom_03), den Winkel rechnet der Treiber; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31075.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (31256, 10789), S-SP bei (31256, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31468.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_03", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [31255.93, 15898.9, 0.0], + "start_mm": [31255.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (31255.93, 15593.90) -> (31255.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31436.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (31256, 13994), S-SP bei (31256, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31043.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (31255.93, 15593.90) -> (31255.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31436.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (31256, 13994), S-SP bei (31256, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31043.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_04", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [32055.93, 12693.9, 0.0], + "start_mm": [32055.93, 12693.9, 3195.0], "as_seite": "rechts", "es_seite": "links", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_06", "kreisel_ende": "Kreisel_Showroom_03", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (32055.93, 12388.90) -> (32055.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31875.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (32056, 10789), S-SP bei (32056, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (32268.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 1700.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (32055.93, 12388.90) -> (32055.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_06 / Kreisel_Showroom_03), den Winkel rechnet der Treiber; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (31875.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (32056, 10789), S-SP bei (32056, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (32268.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_05", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [32055.93, 15898.9, 0.0], + "start_mm": [32055.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (32055.93, 15593.90) -> (32055.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (32236.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (32056, 13994), S-SP bei (32056, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31843.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (32055.93, 15593.90) -> (32055.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (32236.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (32056, 13994), S-SP bei (32056, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (31843.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_06", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [33205.93, 12693.9, 0.0], + "start_mm": [33205.93, 12693.9, 3195.0], "as_seite": "rechts", "es_seite": "links", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_06", "kreisel_ende": "Kreisel_Showroom_03", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (33205.93, 12388.90) -> (33205.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33025.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (33206, 10789), S-SP bei (33206, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (33418.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 1700.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (33205.93, 12388.90) -> (33205.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_06 / Kreisel_Showroom_03), den Winkel rechnet der Treiber; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33025.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (33206, 10789), S-SP bei (33206, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (33418.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_07", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [33205.93, 15898.9, 0.0], + "start_mm": [33205.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (33205.93, 15593.90) -> (33205.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33386.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (33206, 13994), S-SP bei (33206, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (32993.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (33205.93, 15593.90) -> (33205.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33386.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (33206, 13994), S-SP bei (33206, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (32993.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_08", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [34005.93, 12693.9, 0.0], + "start_mm": [34005.93, 12693.9, 3195.0], "as_seite": "rechts", "es_seite": "links", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_06", "kreisel_ende": "Kreisel_Showroom_03", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (34005.93, 12388.90) -> (34005.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33825.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34006, 10789), S-SP bei (34006, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (34218.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 1700.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (34005.93, 12388.90) -> (34005.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_06 / Kreisel_Showroom_03), den Winkel rechnet der Treiber; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (33825.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34006, 10789), S-SP bei (34006, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (34218.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_09", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [34005.93, 15898.9, 0.0], + "start_mm": [34005.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (34005.93, 15593.90) -> (34005.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34186.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34006, 13994), S-SP bei (34006, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (33793.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (34005.93, 15593.90) -> (34005.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34186.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34006, 13994), S-SP bei (34006, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (33793.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_10", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [34805.93, 12693.9, 0.0], + "start_mm": [34805.93, 12693.9, 3195.0], "as_seite": "rechts", "es_seite": "links", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_06", "kreisel_ende": "Kreisel_Showroom_03", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (34805.93, 12388.90) -> (34805.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34625.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34806, 10789), S-SP bei (34806, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (35018.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 1700.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (34805.93, 12388.90) -> (34805.93, 10688.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_03 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_06 / Kreisel_Showroom_03), den Winkel rechnet der Treiber; as_seite rechts aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34625.60, 12693.90) -> AS_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34806, 10789), S-SP bei (34806, 11602); es_seite links aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (35018.11, 10288.90) -> ES_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "test_id": "GF_Showroom_11", "modus": 1, "deltaL_mm": 2405.0, "hz_grad": 270.0, - "start_mm": [34805.93, 15898.9, 0.0], + "start_mm": [34805.93, 15898.9, 5055.0], "as_seite": "links", "es_seite": "rechts", "as_winkel": "90", "es_winkel": "90", "kreisel_start": "Kreisel_Showroom_05", "kreisel_ende": "Kreisel_Showroom_06", - "winkel_grad": 3.0, - "hoehe_unbekannt": true, - "comment": "aus DXF: LINE auf Layer '6-SP' (34805.93, 15593.90) -> (34805.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen unbekannt - winkel_grad 3.0 ist Platzhalter; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34986.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34806, 13994), S-SP bei (34806, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (34593.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." + "hoehe_ende_mm": 3195.0, + "hoehe_quelle": "Anwender", + "comment": "aus DXF: LINE auf Layer '6-SP' (34805.93, 15593.90) -> (34805.93, 13893.90), Laenge XY 1700.00; am oberen Ende um 305.0 mm bis zur Kette von Kreisel_Showroom_05 verlaengert; am unteren Ende um 400.0 mm bis zur Kette von Kreisel_Showroom_06 verlaengert; Hoehen vom Anwender (Kreisel Kreisel_Showroom_05 / Kreisel_Showroom_06), den Winkel rechnet der Treiber; as_seite links aus der Lage zur Fahrtrichtung; AS aus Block 'AE-D' bei (34986.27, 15898.90) -> AS_Element_90_links, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90; Separator auf der Achse entfernt (die GF baut ihren eigenen): S-SP bei (34806, 13994), S-SP bei (34806, 14807); es_seite rechts aus der Lage zur Fahrtrichtung; ES aus Block 'EE-R' bei (34593.76, 13493.90) -> ES_Element_90_rechts, als Einzel-Insert entfernt (baut die GF selbst) - geraten: Winkel=90." }, { "function": "insert", "block": "S-LP", "x": 26597.93, "y": 11973.9, - "z": 0.0, + "z": 5055.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 5055.0 von Kreisel_Showroom_01 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 26597.93, "y": 13982.92, - "z": 0.0, + "z": 5055.0, "rotation": 90.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer 'TGW_HB_2OG-AM_5'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer 'TGW_HB_2OG-AM_5'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 5055.0 von Kreisel_Showroom_02 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 27397.93, "y": 5450.07, - "z": 0.0, + "z": 5055.0, "rotation": 90.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer 'TGW_HB_2OG-AM_5'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer 'TGW_HB_2OG-AM_5'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 5055.0 von Kreisel_Showroom_01 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 27397.93, "y": 15773.9, - "z": 0.0, + "z": 5055.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 5055.0 von Kreisel_Showroom_02 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 29397.93, "y": 13493.9, - "z": 0.0, + "z": 3195.0, "rotation": 0.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 3195.0 von Kreisel_Showroom_06 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 30343.39, "y": 9488.9, - "z": 0.0, + "z": 1700.0, "rotation": 0.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 32083.74, "y": 9488.9, - "z": 0.0, + "z": 1700.0, "rotation": 0.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "S-LP", "x": 35905.93, "y": 10288.9, - "z": 0.0, + "z": 1700.0, "rotation": 180.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" - }, - { - "function": "insert", - "block": "S-LP", - "x": 37105.93, - "y": 14978.9, - "z": 0.0, - "rotation": 270.0, - "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'S-LP', Layer '5SEP-LP'; Block 'S-LP' ist in data/ils/ NICHT vorhanden - erzeugt im Testlauf einen Platzhalter; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "Scanner", "x": 29398.73, "y": 13176.71, - "z": 0.0, + "z": 3195.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 3195.0 von Kreisel_Showroom_06 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "Scanner", "x": 30343.39, "y": 9208.9, - "z": 0.0, + "z": 1700.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "Scanner", "x": 32083.74, "y": 9208.9, - "z": 0.0, + "z": 1700.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" }, { "function": "insert", "block": "Scanner", "x": 35905.93, "y": 10008.9, - "z": 0.0, + "z": 1700.0, "rotation": 270.0, "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" - }, - { - "function": "insert", - "block": "Scanner", - "x": 36825.93, - "y": 14978.9, - "z": 0.0, - "rotation": 180.0, - "darstellung": "2D", - "hoehe_unbekannt": true, - "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen]" + "comment": "aus DXF: Block 'SCAN', Layer 'ZZSCANNER', auf Makro-Block 'Scanner' abgebildet; 2D-Schema ohne 3D-Zwilling - z ist keine Einbauhoehe (hoehe_unbekannt) [Hoehe entfernt: --ohne-hoehen] Hoehe 1700.0 von Kreisel_Showroom_03 (liegt auf dessen Kette).", + "hoehe_quelle": "Anwender" } ]