Anpasung des Offset berechnung für antrieb Kurven
This commit is contained in:
@@ -60,9 +60,14 @@ class VarioFoerderer(BaseModel):
|
|||||||
anzahl_separatoren = int(merkmale.get("Anzahl der Separatoren"))
|
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_vorne = None
|
||||||
winkel_VP_offset_hinten = 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"):
|
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
|
# Überprüfung wo es verbunden ist und mit welchen fördere vorne ist ende der Fahrrichtung
|
||||||
if gefaellestrecke_vario.get("h0") != None :
|
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"]))
|
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"]))
|
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"]))
|
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:
|
if voerder_richtung == "Ab":
|
||||||
winkel_VP_offset_hinten = (SP_1_nachbar[0] -VP_1_nachbar[0] ),0,( SP_1_nachbar[2]- VP_1_nachbar[2])
|
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:
|
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<x_angetrieben)):
|
||||||
|
winkel_VP_offset_hinten = 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])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Das gleiche falls der 3 grad Förderer mit zwei Förderer Verbunden ist
|
# Das gleiche falls der 3 grad Förderer mit zwei Förderer Verbunden ist
|
||||||
if (gefaellestrecke_vario.get("Winkel_2") != None or gefaellestrecke_vario.get("Kurvenrichtung_1") != None) and ((winkel == 3 and voerder_richtung == "Ab")or voerder_richtung == "Horizontal"):
|
if (gefaellestrecke_vario.get("Winkel_2") != None or gefaellestrecke_vario.get("Kurvenrichtung_1") != None) and ((winkel == 3 and voerder_richtung == "Ab")or voerder_richtung == "Horizontal"):
|
||||||
@@ -185,10 +207,25 @@ class VarioFoerderer(BaseModel):
|
|||||||
VP_0_nachbar = list(float(att)for att in re.split(r"[;,]", att_kurve["DELTA_VP_0"]))
|
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"]))
|
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"]))
|
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_1")) == lower_hoehe_vario:
|
if voerder_richtung == "Ab":
|
||||||
winkel_VP_offset_hinten = (SP_1_nachbar[0] -VP_1_nachbar[0] ),0,( SP_1_nachbar[2]- VP_1_nachbar[2])
|
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:
|
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<x_angetrieben)):
|
||||||
|
winkel_VP_offset_hinten = 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])
|
||||||
|
|
||||||
return winkel_VP_offset_vorne,winkel_VP_offset_hinten
|
return winkel_VP_offset_vorne,winkel_VP_offset_hinten
|
||||||
def vario_erstellung(foerderer, doc, lib_doc, config, block, block_name_links, start, ende, voerder_richtung, winkel_VP_offset_vorne, winkel_VP_offset_hinten ):
|
def vario_erstellung(foerderer, doc, lib_doc, config, block, block_name_links, start, ende, voerder_richtung, winkel_VP_offset_vorne, winkel_VP_offset_hinten ):
|
||||||
|
|||||||
+9
-12
@@ -227,7 +227,6 @@ def handle_ils_2_0_kreisel(msp, teileid, merkmale, x, y, doc, lib_doc, verbose,
|
|||||||
Kreisel.Kreisel.draw_kreisel_lines(msp, pos1, pos2, kreisel)
|
Kreisel.Kreisel.draw_kreisel_lines(msp, pos1, pos2, kreisel)
|
||||||
Kreisel.Kreisel.draw_kreisel_drehrichtung_markierung(msp, pos1, pos2, kreisel, lib_doc, doc, verbose)
|
Kreisel.Kreisel.draw_kreisel_drehrichtung_markierung(msp, pos1, pos2, kreisel, lib_doc, doc, verbose)
|
||||||
|
|
||||||
|
|
||||||
def handle_ils_2_0_eckrad(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
def handle_ils_2_0_eckrad(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||||
"""Erstellt ein Eckrad in der neuen Dxf"""
|
"""Erstellt ein Eckrad in der neuen Dxf"""
|
||||||
import_block("AN8",lib_doc,doc)
|
import_block("AN8",lib_doc,doc)
|
||||||
@@ -680,11 +679,8 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
|||||||
# für spätere Namens benenung der Vario forderer
|
# für spätere Namens benenung der Vario forderer
|
||||||
motor_vorhanden = foerderer.hat_motor
|
motor_vorhanden = foerderer.hat_motor
|
||||||
umlenk_vorhanden = foerderer.hat_umlenk
|
umlenk_vorhanden = foerderer.hat_umlenk
|
||||||
|
|
||||||
gefahellewinkel = foerderer.gefaelle_winkel
|
gefahellewinkel = foerderer.gefaelle_winkel
|
||||||
|
|
||||||
gefaelle = foerderer.gefaelle_laenge
|
gefaelle = foerderer.gefaelle_laenge
|
||||||
|
|
||||||
# Offsets für die Vario Linie für ab 3 bogen, da es in diesem Fall keine bögen hat die sich mit den nachbarn Bögen für andere Vario Förderer verbinden kann
|
# Offsets für die Vario Linie für ab 3 bogen, da es in diesem Fall keine bögen hat die sich mit den nachbarn Bögen für andere Vario Förderer verbinden kann
|
||||||
winkel_VP_offset_vorne = None
|
winkel_VP_offset_vorne = None
|
||||||
winkel_VP_offset_hinten = None
|
winkel_VP_offset_hinten = None
|
||||||
@@ -700,7 +696,6 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
|||||||
erster_kreisel_höher = False
|
erster_kreisel_höher = False
|
||||||
ein_kreisel_höher = False
|
ein_kreisel_höher = False
|
||||||
richtung2 ="DEFAULT"
|
richtung2 ="DEFAULT"
|
||||||
|
|
||||||
rotation = foerderer.drehung
|
rotation = foerderer.drehung
|
||||||
upper_hoehe_vario= foerderer.h1
|
upper_hoehe_vario= foerderer.h1
|
||||||
lower_hoehe_vario = foerderer.h0
|
lower_hoehe_vario = foerderer.h0
|
||||||
@@ -710,9 +705,12 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
|||||||
if upper_hoehe_vario< lower_hoehe_vario:
|
if upper_hoehe_vario< lower_hoehe_vario:
|
||||||
hight = upper_hoehe_vario
|
hight = upper_hoehe_vario
|
||||||
upper_hoehe_vario = lower_hoehe_vario
|
upper_hoehe_vario = lower_hoehe_vario
|
||||||
|
foerderer.h1 = upper_hoehe_vario
|
||||||
lower_hoehe_vario = hight
|
lower_hoehe_vario = hight
|
||||||
|
foerderer.h0 = lower_hoehe_vario
|
||||||
# Korrektur der rotation mit der Umstellung der Höhe
|
# Korrektur der rotation mit der Umstellung der Höhe
|
||||||
rotation = rotation -180
|
rotation = rotation -180
|
||||||
|
foerderer.drehung = rotation
|
||||||
|
|
||||||
|
|
||||||
# Hollen der Information der Nachbarn strukturen ob diese Kreisel sind
|
# Hollen der Information der Nachbarn strukturen ob diese Kreisel sind
|
||||||
@@ -722,7 +720,7 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
|||||||
break
|
break
|
||||||
laenge = foerderer.laenge
|
laenge = foerderer.laenge
|
||||||
# Ausrechnung der nötigen Offset falls der Vario Förderer ab mit drei grad mit einem anderen Verbunden ist
|
# Ausrechnung der nötigen Offset falls der Vario Förderer ab mit drei grad mit einem anderen Verbunden ist
|
||||||
winkel_VP_offset_vorne, winkel_VP_offset_hinten = VarioFoerderer.VarioFoerderer.get_offset_of_Vario_line(doc, lib_doc, voerder_richtung, winkel, upper_hoehe_vario, lower_hoehe_vario, gefaellestrecke_vario)
|
winkel_VP_offset_vorne, winkel_VP_offset_hinten = VarioFoerderer.VarioFoerderer.get_offset_of_Vario_line(doc, lib_doc,foerderer, gefaellestrecke_vario)
|
||||||
|
|
||||||
# Für spätere berechnung schauen ob der erste Kreis in der Liste höher ist
|
# Für spätere berechnung schauen ob der erste Kreis in der Liste höher ist
|
||||||
if upper_hoehe_vario == gefaellestrecke_vario.get("Hoehe0"):
|
if upper_hoehe_vario == gefaellestrecke_vario.get("Hoehe0"):
|
||||||
@@ -1286,7 +1284,7 @@ def get_nachbar_information(csv_path:Path) -> dict:
|
|||||||
kurvenrichtung = kurve_angetrieben.kurvenrichtung
|
kurvenrichtung = kurve_angetrieben.kurvenrichtung
|
||||||
tefkurve = kurve_angetrieben.antrieb
|
tefkurve = kurve_angetrieben.antrieb
|
||||||
kurve_winkel = kurve_angetrieben.winkel
|
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:
|
for gerade in geraden:
|
||||||
anweisungen = 0
|
anweisungen = 0
|
||||||
voerder_anweisung = 0
|
voerder_anweisung = 0
|
||||||
@@ -1295,6 +1293,8 @@ def get_nachbar_information(csv_path:Path) -> dict:
|
|||||||
for foerderer in angetriebene_kurve:
|
for foerderer in angetriebene_kurve:
|
||||||
if foerderer["Id"] in gerade["NachbarIds"]:
|
if foerderer["Id"] in gerade["NachbarIds"]:
|
||||||
if voerder_anweisung == 0:
|
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_0"] = foerderer.get("H0")
|
||||||
eintrag["vario_hoehe_1"] = foerderer.get("H1")
|
eintrag["vario_hoehe_1"] = foerderer.get("H1")
|
||||||
eintrag["Kurvenrichtung"] = foerderer.get("kurvenrichtung")
|
eintrag["Kurvenrichtung"] = foerderer.get("kurvenrichtung")
|
||||||
@@ -1302,6 +1302,8 @@ def get_nachbar_information(csv_path:Path) -> dict:
|
|||||||
eintrag["Kurvenwinkel"] = foerderer.get("Kurvenwinkel")
|
eintrag["Kurvenwinkel"] = foerderer.get("Kurvenwinkel")
|
||||||
voerder_anweisung = 1
|
voerder_anweisung = 1
|
||||||
elif 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_0_1"] = foerderer.get("H0")
|
||||||
eintrag["vario_hoehe_1_1"] = foerderer.get("H1")
|
eintrag["vario_hoehe_1_1"] = foerderer.get("H1")
|
||||||
eintrag["Kurvenrichtung_1"] = foerderer.get("kurvenrichtung")
|
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:
|
else:
|
||||||
print(msg)
|
print(msg)
|
||||||
|
|
||||||
for insert in msp.query("INSERT"):
|
|
||||||
basepoint = insert.dxf.insert
|
|
||||||
|
|
||||||
|
|
||||||
doc.saveas(output_path)
|
doc.saveas(output_path)
|
||||||
if logger:
|
if logger:
|
||||||
logger.info(f"[DONE] DXF gespeichert unter: {output_path}")
|
logger.info(f"[DONE] DXF gespeichert unter: {output_path}")
|
||||||
else:
|
else:
|
||||||
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
||||||
|
|
||||||
|
|
||||||
def check_dxflibrary_path(lib_path, verbose, logger):
|
def check_dxflibrary_path(lib_path, verbose, logger):
|
||||||
lib_doc = None
|
lib_doc = None
|
||||||
if lib_path.exists():
|
if lib_path.exists():
|
||||||
|
|||||||
Reference in New Issue
Block a user