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():