From 36f13a736e0e95e5c4e1ec04c517ea35f77ed51a Mon Sep 17 00:00:00 2001 From: lertlmaier Date: Wed, 4 Jun 2025 14:26:44 +0200 Subject: [PATCH] Abfrage ob es Fehler gibt bevor Fehler Worksheet erstellt werden --- lib/drawdxf.py | 61 ++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/lib/drawdxf.py b/lib/drawdxf.py index 97838c1..08931a4 100644 --- a/lib/drawdxf.py +++ b/lib/drawdxf.py @@ -148,42 +148,45 @@ def write_excel_from_json(plines:Polylines, outpath:str): for rlength in sorted(length_summary): ws2.append([int(rlength), length_summary[rlength]]) - # Worksheet 3 - Nicht an Racks gekoppeltes Equipment - ws3 = wb.create_sheet("Not connected Equipment") - ws3.append(["Type", "ID", "x", "y"]) - for error in plines.errors_sensors: - ws3.append(["Sensor / Actuator", error.name, error.coords.x, error.coords.y]) + if len(plines.errors_existing_sensors) > 0 or len(plines.errors_dists) > 0: + # Worksheet 3 - Nicht an Racks gekoppeltes Equipment + ws3 = wb.create_sheet("Not connected Equipment") + ws3.append(["Type", "ID", "x", "y"]) + for error in plines.errors_sensors: + ws3.append(["Sensor / Actuator", error.name, error.coords.x, error.coords.y]) - for error in plines.errors_dists: - ws3.append(["Subistributor", error.name, error.coords.x, error.coords.y]) + for error in plines.errors_dists: + ws3.append(["Subistributor", error.name, error.coords.x, error.coords.y]) - # Worksheet 4 - Fehlgeschlagenes Routing - ws4 = wb.create_sheet("Routing Errors") - ws4.append(["Subdistributor", "Sensor / Actuator", "Details"]) - nicht_angebunden = set(e.name for e in plines.errors_sensors + plines.errors_dists) + if len(plines.errors_routing) > 0: + # Worksheet 4 - Fehlgeschlagenes Routing + ws4 = wb.create_sheet("Routing Errors") + ws4.append(["Subdistributor", "Sensor / Actuator", "Details"]) - for routing_error in plines.errors_routing: - uv = routing_error.unterverteiler - uv_nicht_angebunden = uv in nicht_angebunden - - if uv in plines.errors_existing_dists: - ws4.append([uv,"-", "Distributor not found in given layout"]) - continue + nicht_angebunden = set(e.name for e in plines.errors_sensors + plines.errors_dists) - for sensor in routing_error.sensoren: - sensor_nicht_angebunden = sensor in nicht_angebunden + for routing_error in plines.errors_routing: + uv = routing_error.unterverteiler + uv_nicht_angebunden = uv in nicht_angebunden + + if uv in plines.errors_existing_dists: + ws4.append([uv,"-", "Distributor not found in given layout"]) + continue - if sensor_nicht_angebunden and uv_nicht_angebunden: - grund = "Subdistributor and sensor / actuator not connected to racks" - elif sensor_nicht_angebunden: - grund = "Sensor / actuator not connected to racks" - elif uv_nicht_angebunden: - grund = "Subdistributor not connected to racks" - else: - grund = "Failed routing (not caused by missing connection)" + for sensor in routing_error.sensoren: + sensor_nicht_angebunden = sensor in nicht_angebunden - ws4.append([uv, sensor, grund]) + if sensor_nicht_angebunden and uv_nicht_angebunden: + grund = "Subdistributor and sensor / actuator not connected to racks" + elif sensor_nicht_angebunden: + grund = "Sensor / actuator not connected to racks" + elif uv_nicht_angebunden: + grund = "Subdistributor not connected to racks" + else: + grund = "Failed routing (not caused by missing connection)" + + ws4.append([uv, sensor, grund]) wb.save(outpath)