From a3163e12fe90179054f656590993a050419f4f28 Mon Sep 17 00:00:00 2001 From: Paul Wolok Date: Mon, 15 Dec 2025 09:13:10 +0100 Subject: [PATCH] =?UTF-8?q?Anpasung=20des=20Offset=20berechnung=20f=C3=BCr?= =?UTF-8?q?=20antrieb=20Kurven?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Elemente/VarioFoerderer.py | 51 +++++++++++++++++++++++++++++----- lib/plant2dxf.py | 21 ++++++-------- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/lib/Elemente/VarioFoerderer.py b/lib/Elemente/VarioFoerderer.py index 6e03c90..5377567 100644 --- a/lib/Elemente/VarioFoerderer.py +++ b/lib/Elemente/VarioFoerderer.py @@ -60,9 +60,14 @@ class VarioFoerderer(BaseModel): anzahl_separatoren = int(merkmale.get("Anzahl der Separatoren")) ) - def get_offset_of_Vario_line(doc, lib_doc, voerder_richtung, winkel, upper_hoehe_vario, lower_hoehe_vario, gefaellestrecke_vario): + def get_offset_of_Vario_line(doc, lib_doc, foerderer, gefaellestrecke_vario): winkel_VP_offset_vorne = None winkel_VP_offset_hinten = None + voerder_richtung = foerderer.foerderer_richtung + winkel = int(foerderer.winkel) + rotation = foerderer.drehung + upper_hoehe_vario= foerderer.h1 + lower_hoehe_vario = foerderer.h0 if (gefaellestrecke_vario.get("Winkel") != None or gefaellestrecke_vario.get("Kurvenrichtung") != None) and ((winkel == 3 and voerder_richtung == "Ab")or voerder_richtung == "Horizontal"): # Überprüfung wo es verbunden ist und mit welchen fördere vorne ist ende der Fahrrichtung if gefaellestrecke_vario.get("h0") != None : @@ -121,10 +126,27 @@ class VarioFoerderer(BaseModel): VP_0_nachbar = list(float(att)for att in re.split(r"[;,]", att_kurve["DELTA_VP_0"])) SP_1_nachbar = list(float(att)for att in re.split(r"[;,]", att_kurve["DELTA_SP_1"])) VP_1_nachbar= list(float(att)for att in re.split(r"[;,]", att_kurve["DELTA_VP_1"])) - if float(gefaellestrecke_vario.get("vario_hoehe_1")) == lower_hoehe_vario: - winkel_VP_offset_hinten = (SP_1_nachbar[0] -VP_1_nachbar[0] ),0,( SP_1_nachbar[2]- VP_1_nachbar[2]) + if voerder_richtung == "Ab": + if float(gefaellestrecke_vario.get("vario_hoehe_1")) == lower_hoehe_vario: + winkel_VP_offset_hinten = (SP_1_nachbar[0] -VP_1_nachbar[0] ),0,( SP_1_nachbar[2]- VP_1_nachbar[2]) + else: + winkel_VP_offset_vorne = (SP_1_nachbar[0] -VP_1_nachbar[0] ),0,( SP_1_nachbar[2]- VP_1_nachbar[2]) else: - winkel_VP_offset_vorne = (SP_0_nachbar[0] -VP_0_nachbar[0] ),0,(SP_0_nachbar[2] - VP_0_nachbar[2] ) + x_angetrieben = gefaellestrecke_vario.get("X_angetrieben") + y_angetrieben = gefaellestrecke_vario.get("Y_angetrieben") + x = foerderer.x + y = foerderer.y + rotation_zwischen = rotation + if rotation_zwischen == 0.0: + rotation_zwischen = -360.0 + if (((-360.0<= rotation_zwischen< -270.0)and y > y_angetrieben) or ((-90.0< rotation< 0.0)and y > y_angetrieben) or + ((-270.0< rotation_zwischen< -90.0)and y < y_angetrieben) or + (rotation == -90.0 and x < x_angetrieben) or ((rotation == -270.0)and x y_angetrieben) or ((-90.0< rotation< 0.0)and y > y_angetrieben) or + ((-270.0< rotation_zwischen< -90.0)and y < y_angetrieben) or + (rotation == -90.0 and x < x_angetrieben) or ((rotation == -270.0)and x dict: kurvenrichtung = kurve_angetrieben.kurvenrichtung tefkurve = kurve_angetrieben.antrieb kurve_winkel = kurve_angetrieben.winkel - angetriebene_kurve.append({"Id": Id,"H0": h0,"H1":h1,"kurvenrichtung":kurvenrichtung,"Tefkurve": tefkurve,"Kurvenwinkel": kurve_winkel}) + angetriebene_kurve.append({"Id": Id,"H0": h0,"H1":h1,"kurvenrichtung":kurvenrichtung,"Tefkurve": tefkurve,"Kurvenwinkel": kurve_winkel,"X_angetrieben":x,"Y_angetrieben":y}) for gerade in geraden: anweisungen = 0 voerder_anweisung = 0 @@ -1295,6 +1293,8 @@ def get_nachbar_information(csv_path:Path) -> dict: for foerderer in angetriebene_kurve: if foerderer["Id"] in gerade["NachbarIds"]: if voerder_anweisung == 0: + eintrag["X_angetrieben"] = foerderer.get("X_angetrieben") + eintrag["Y_angetrieben"] = foerderer.get("Y_angetrieben") eintrag["vario_hoehe_0"] = foerderer.get("H0") eintrag["vario_hoehe_1"] = foerderer.get("H1") eintrag["Kurvenrichtung"] = foerderer.get("kurvenrichtung") @@ -1302,6 +1302,8 @@ def get_nachbar_information(csv_path:Path) -> dict: eintrag["Kurvenwinkel"] = foerderer.get("Kurvenwinkel") voerder_anweisung = 1 elif voerder_anweisung ==1: + eintrag["X_angetrieben_1"] = foerderer.get("X_angetrieben") + eintrag["Y_angetrieben_1"] = foerderer.get("Y_angetrieben") eintrag["vario_hoehe_0_1"] = foerderer.get("H0") eintrag["vario_hoehe_1_1"] = foerderer.get("H1") eintrag["Kurvenrichtung_1"] = foerderer.get("kurvenrichtung") @@ -1443,17 +1445,12 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Pat else: print(msg) - for insert in msp.query("INSERT"): - basepoint = insert.dxf.insert - - doc.saveas(output_path) if logger: logger.info(f"[DONE] DXF gespeichert unter: {output_path}") else: print(f"[DONE] DXF gespeichert unter: {output_path}") - def check_dxflibrary_path(lib_path, verbose, logger): lib_doc = None if lib_path.exists():