Refactoring und korrektur der Vario Förder Vario linie wenn der ab 3 grad vario keine Motor/Umlenk station hat
This commit is contained in:
@@ -60,7 +60,115 @@ 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):
|
||||
winkel_VP_offset_vorne = None
|
||||
winkel_VP_offset_hinten = None
|
||||
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:
|
||||
if float(gefaellestrecke_vario.get("h0")) == lower_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_plusbogen = int(gefaellestrecke_vario.get("Winkel")) +3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel"))
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_vorne_plusbogen}°")
|
||||
att_vorne =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_1"]))
|
||||
VP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_1"]))
|
||||
# Ausrechnen des Offsets
|
||||
winkel_VP_offset_hinten = (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.sin(math.radians(3)), VP_1_nachbar_vorne[1],- (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif gefaellestrecke_vario.get("Foerderrichtung") == "Ab":
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_minusbogen = int(gefaellestrecke_vario.get("Winkel")) -3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_minusbogen}°")
|
||||
att_vorne =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_0"]))
|
||||
VP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.sin(math.radians(3)), VP_0_nachbar_vorne[1],- (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif float(gefaellestrecke_vario.get("h1")) == upper_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_plusbogen = int(gefaellestrecke_vario.get("Winkel")) +3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_hinten_plusbogen}°")
|
||||
att_hinten =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.cos(math.radians(-winkel_hinten)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.sin(math.radians(-winkel_hinten)), VP_0_nachbar_hinten[1],- (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.sin(math.radians(-winkel_hinten)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.cos(math.radians(-winkel_hinten))
|
||||
|
||||
else:
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_minusbogen = int(gefaellestrecke_vario.get("Winkel")) -3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_minusbogen}°")
|
||||
att_hinten =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.cos(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.sin(math.radians(winkel_hinten)), VP_1_nachbar_hinten[1],- (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.sin(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.cos(math.radians(winkel_hinten))
|
||||
|
||||
# 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_2") != 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_2") != None:
|
||||
if float(gefaellestrecke_vario.get("h0_2")) == lower_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung_2") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung_2") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_plusbogen = int(gefaellestrecke_vario.get("Winkel_2")) +3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_vorne_plusbogen}°")
|
||||
att_vorne =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_1"]))
|
||||
VP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_1"]))
|
||||
# Ausrechnen des Offsets
|
||||
winkel_VP_offset_hinten = (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.sin(math.radians(3)), VP_1_nachbar_vorne[1],- (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif gefaellestrecke_vario.get("Foerderrichtung_2") == "Ab":
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_minusbogen = int(gefaellestrecke_vario.get("Winkel_2")) -3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_minusbogen}°")
|
||||
att_vorne =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_0"]))
|
||||
VP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.sin(math.radians(3)), VP_0_nachbar_vorne[1],- (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif float(gefaellestrecke_vario.get("h1_2")) == upper_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung_2") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung_2") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_plusbogen = int(gefaellestrecke_vario.get("Winkel_2")) +3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_hinten_plusbogen}°")
|
||||
att_hinten =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.cos(math.radians(-winkel_hinten)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.sin(math.radians(-winkel_hinten)), VP_0_nachbar_hinten[1],- (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.sin(math.radians(-winkel_hinten)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.cos(math.radians(-winkel_hinten))
|
||||
|
||||
else:
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_minusbogen = int(gefaellestrecke_vario.get("Winkel_2")) -3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_minusbogen}°")
|
||||
att_hinten =plant2dxf.import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.cos(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.sin(math.radians(winkel_hinten)), VP_1_nachbar_hinten[1],- (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.sin(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.cos(math.radians(winkel_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 ):
|
||||
# Entnehmen der Motor und Umlenk station um die Gefähle auzurechnen und ob man diese tatsächlich einfügen muss
|
||||
winkel_motor = float(config.get("Ils 2.0 core winkel","winkel_motor"))
|
||||
@@ -301,20 +409,19 @@ class VarioFoerderer(BaseModel):
|
||||
layer_umlenk, color_umlenk = plant2dxf.get_insert_color_layer(lib_doc,block_Vario_Umlenkstation_500mm)
|
||||
block_Vario_Motorstation_500mm = plant2dxf.dreh_block( block_Vario_Motorstation_500mm, doc,lib_doc,math.radians(winkel_motor))
|
||||
block_Vario_Umlenkstation_500mm = plant2dxf.dreh_block( block_Vario_Umlenkstation_500mm , doc,lib_doc,math.radians(winkel_umlenk))
|
||||
if umlenk_vorhanden == True:
|
||||
if motor_vorhanden == True:
|
||||
block.add_blockref(block_Vario_Umlenkstation_500mm,(start[0] -x,start[1] -y - umlenk_offset_x/2, start[2] - hoehe_vario -umlenk_offset_z/2 ),dxfattribs={"rotation": 270,"layer": layer_umlenk,"color": color_umlenk})
|
||||
start_Umlenkstation_VP = start[0] - vario_abstand, start[1] -500 *math.cos(math.radians(-winkel_umlenk))+ math.sin(math.radians(-winkel_umlenk))* -45,start[2] + math.sin(math.radians(-winkel_umlenk))*500+ math.cos(math.radians(-winkel_umlenk))*-45
|
||||
start = (start[0] ,start[1] - umlenk_offset_x,start[2] -umlenk_offset_z)
|
||||
elif winkel == 3:
|
||||
start_Umlenkstation_VP = start[0] - vario_abstand, start[1]+ winkel_VP_offset_vorne[0],start[2] -winkel_VP_offset_hinten[2]
|
||||
if motor_vorhanden == True:
|
||||
start_Umlenkstation_VP = start[0] - vario_abstand, start[1]+ winkel_VP_offset_vorne[0],start[2] -winkel_VP_offset_vorne[2]
|
||||
if umlenk_vorhanden == True:
|
||||
block.add_blockref(block_Vario_Motorstation_500mm, (ende[0]-x , ende[1] + motor_offset_x/2 -y ,ende[2] - hoehe_vario + motor_offset_z/2),dxfattribs={"rotation": 270,"layer": layer_motor,"color": color_motor})
|
||||
ende_Motor_VP = ende[0] - vario_abstand, ende[1] +500 *math.cos(math.radians(-winkel_motor))+ math.sin(math.radians(-winkel_motor))* -45,ende[2] - math.sin(math.radians(-winkel_motor))*500+ math.cos(math.radians(-winkel_motor))*-45
|
||||
|
||||
ende = ende[0] , ende[1] + motor_offset_x,ende[2] +motor_offset_z
|
||||
elif winkel == 3:
|
||||
ende_Motor_VP = ende[0] - vario_abstand, ende[1]+ winkel_VP_offset_hinten[0] ,ende[2] - winkel_VP_offset_vorne[2]
|
||||
|
||||
ende_Motor_VP = ende[0] - vario_abstand, ende[1]- winkel_VP_offset_vorne[0] ,ende[2] - winkel_VP_offset_hinten[2]
|
||||
if winkel != 3:
|
||||
winkel_core = int(config.get("Ils 2.0 core winkel","winkel_boegen"))
|
||||
winkel_minus = winkel - winkel_core
|
||||
|
||||
+25
-117
@@ -162,8 +162,7 @@ def import_block(block_name: str, from_doc, to_doc, winkel = None) -> None:
|
||||
return att_def
|
||||
|
||||
def dreh_block(block_name: str, to_doc,lib_doc, winkel) :
|
||||
"""Nimmt ein schon importierten Block und erstellt einen neuen der an der y_axis gedreht wird
|
||||
hauptsächlich für vario Bogen aktuell verwendet
|
||||
"""Nimmt ein schon importierten Block und erstellt einen neuen der an der y_axis oder x_axis gedreht wird
|
||||
"""
|
||||
dreh_block_name = block_name +f"_{math.degrees(winkel)}"
|
||||
layer, color = get_insert_color_layer(lib_doc,block_name)
|
||||
@@ -184,7 +183,7 @@ def dreh_block(block_name: str, to_doc,lib_doc, winkel) :
|
||||
return dreh_block_name
|
||||
|
||||
def handle_ils_2_0_kreisel(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,strecken_nachbarn,config,config_allgemein):
|
||||
# Erstelle Kreisel-Objekt aus merkmale
|
||||
"""Erstellt ein Kreisel in der neuen Dxf"""
|
||||
kreisel = Kreisel.Kreisel.from_merkmale(teileid, x, y, merkmale)
|
||||
block_scanner = "SCAN"
|
||||
block_separatoren = "S-LP"
|
||||
@@ -230,6 +229,7 @@ def handle_ils_2_0_kreisel(msp, teileid, merkmale, x, y, doc, lib_doc, verbose,
|
||||
|
||||
|
||||
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"""
|
||||
import_block("AN8",lib_doc,doc)
|
||||
import_block("Richtungspfeil",lib_doc,doc)
|
||||
eckrad_rechts = "eckrad_UZS"
|
||||
@@ -253,8 +253,8 @@ def handle_ils_2_0_eckrad(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, s
|
||||
msp.add("AN8",x,y,hight)
|
||||
|
||||
def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt eine Gefällestrecke in der neuen Dxf"""
|
||||
#Vorbereitung der attributen
|
||||
|
||||
gefaelle_objekt = Gefaehllestrecke.Gefaellestrecke.from_merkmale(teileid,x,y,merkmale)
|
||||
asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset"))
|
||||
esoffset = float(config.get("ILS 2.0 Gefällestrecke", "esoffset"))
|
||||
@@ -610,6 +610,7 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
|
||||
msp.add_blockref(blockname,(x,y,hoehe_gefaehlle),dxfattribs={"rotation": rotation,"layer": gefaelle_layer})
|
||||
|
||||
def anzahl_seperatoren_oder_scan(msp, x, y, doc, lib_doc, klassen_objekt, hoehe, rotation):
|
||||
"""Importiert alle seperatoren und/oder scanner für das nötige objekt"""
|
||||
separatoren = klassen_objekt.anzahl_separatoren
|
||||
scanner = klassen_objekt.anzahl_scanner
|
||||
if rotation == 0 or rotation == -180:
|
||||
@@ -655,6 +656,7 @@ def anzahl_seperatoren_oder_scan(msp, x, y, doc, lib_doc, klassen_objekt, hoehe,
|
||||
|
||||
|
||||
def add_attributes_to_block(block, attributes):
|
||||
|
||||
"""
|
||||
Fügt einem bestehenden ezdxf-Block Attribut-Definitionen hinzu.
|
||||
|
||||
@@ -673,6 +675,7 @@ def add_attributes_to_block(block, attributes):
|
||||
a.is_invisible = True
|
||||
|
||||
def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt ein Vario Förderer in der neuen Dxf"""
|
||||
foerderer = VarioFoerderer.VarioFoerderer.from_merkmale(teileid,x,y,merkmale)
|
||||
# für spätere Namens benenung der Vario forderer
|
||||
motor_vorhanden = foerderer.hat_motor
|
||||
@@ -719,111 +722,7 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
||||
break
|
||||
laenge = foerderer.laenge
|
||||
# Ausrechnung der nötigen Offset falls der Vario Förderer ab mit drei grad mit einem anderen Verbunden ist
|
||||
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:
|
||||
if float(gefaellestrecke_vario.get("h0")) == lower_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_plusbogen = int(gefaellestrecke_vario.get("Winkel")) +3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel"))
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_plusbogen}°")
|
||||
att_vorne =import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_1"]))
|
||||
VP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_1"]))
|
||||
# Ausrechnen des Offsets
|
||||
winkel_VP_offset_vorne = (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.cos(math.radians(-winkel_vorne)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.sin(math.radians(-winkel_vorne)), VP_1_nachbar_vorne[1],- (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.sin(math.radians(-winkel_vorne)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.cos(math.radians(-winkel_vorne))
|
||||
|
||||
elif gefaellestrecke_vario.get("Foerderrichtung") == "Ab":
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_vorne_minusbogen = int(gefaellestrecke_vario.get("Winkel")) -3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_minusbogen}°")
|
||||
att_vorne =import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_0"]))
|
||||
VP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.sin(math.radians(3)), VP_0_nachbar_vorne[1],- (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif float(gefaellestrecke_vario.get("h1")) == upper_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
|
||||
winkel_hinten_plusbogen = int(gefaellestrecke_vario.get("Winkel")) +3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_plusbogen}°")
|
||||
att_hinten =import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_0"]))
|
||||
VP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.sin(math.radians(3)), VP_0_nachbar_hinten[1],- (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.cos(math.radians(3))
|
||||
|
||||
else:
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_minusbogen = int(gefaellestrecke_vario.get("Winkel")) -3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel"))
|
||||
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_minusbogen}°")
|
||||
att_hinten =import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.cos(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.sin(math.radians(winkel_hinten)), VP_1_nachbar_hinten[1],- (SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.sin(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.cos(math.radians(winkel_hinten))
|
||||
|
||||
# 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")!= None):
|
||||
# Überprüfung wo es verbunden ist und mit welchen fördere vorne ist ende der Fahrrichtung
|
||||
if gefaellestrecke_vario.get("h0_2") != None:
|
||||
if float(gefaellestrecke_vario.get("h0_2")) == lower_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung_2") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung_2") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
|
||||
winkel_vorne_plusbogen = int(gefaellestrecke_vario.get("Winkel_2")) +3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_plusbogen}°")
|
||||
att_vorne =import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_1"]))
|
||||
VP_1_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.cos(math.radians(-winkel_vorne)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.sin(math.radians(-winkel_vorne)), VP_1_nachbar_vorne[1],- (SP_1_nachbar_vorne[0] - VP_1_nachbar_vorne[0]) * math.sin(math.radians(-winkel_vorne)) + (SP_1_nachbar_vorne[2] - VP_1_nachbar_vorne[2])*math.cos(math.radians(-winkel_vorne))
|
||||
|
||||
else:
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
|
||||
winkel_vorne_minusbogen = int(gefaellestrecke_vario.get("Winkel_2")) -3
|
||||
winkel_vorne = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
|
||||
blockname = (f"Vario_Bogen_ab_{winkel_vorne_minusbogen}°")
|
||||
att_vorne =import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_SP_0"]))
|
||||
VP_0_nachbar_vorne = list(float(att)for att in re.split(r"[;,]", att_vorne["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_vorne = (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.sin(math.radians(3)), VP_0_nachbar_vorne[1],- (SP_0_nachbar_vorne[0] - VP_0_nachbar_vorne[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_vorne[2] - VP_0_nachbar_vorne[2])*math.cos(math.radians(3))
|
||||
|
||||
elif float(gefaellestrecke_vario.get("h1_2")) == upper_hoehe_vario:
|
||||
if (gefaellestrecke_vario.get("Foerderrichtung_2") == "Auf" or gefaellestrecke_vario.get("Foerderrichtung_2") == "Horizontal"):
|
||||
# Nehmen des winkels und diesen plus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
|
||||
winkel_hinten_plusbogen = int(gefaellestrecke_vario.get("Winkel_2")) +3
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_plusbogen}°")
|
||||
att_hinten =import_block(blockname,lib_doc,doc)
|
||||
SP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_0"]))
|
||||
VP_0_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_0"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.cos(math.radians(3)) + (SP_0_nachbar_hinten[2] - VP_0_nachbar_hinten[2])*math.sin(math.radians(3)), VP_0_nachbar_hinten[1],- (SP_0_nachbar_hinten[0] - VP_0_nachbar_hinten[0]) * math.sin(math.radians(3)) + (SP_0_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.cos(math.radians(3))
|
||||
else:
|
||||
# Nehmen des winkels und diesen minus 3 nehmen, um den Bogen zu imporieren für heraufinden der Delta werte
|
||||
winkel_hinten_minusbogen = int(gefaellestrecke_vario.get("Winkel")) -3
|
||||
winkel_hinten = int(gefaellestrecke_vario.get("Winkel_2"))
|
||||
blockname = (f"Vario_Bogen_auf_{winkel_hinten_minusbogen}°")
|
||||
att_hinten =import_block(blockname,lib_doc,doc)
|
||||
SP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_SP_1"]))
|
||||
VP_1_nachbar_hinten = list(float(att)for att in re.split(r"[;,]", att_hinten["DELTA_VP_1"]))
|
||||
# Ausrechnung des Offsets
|
||||
winkel_VP_offset_hinten = ((SP_1_nachbar_hinten[0] - VP_1_nachbar_hinten[0]) * math.cos(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.sin(math.radians(winkel_hinten))), VP_1_nachbar_hinten[1],- (SP_1_nachbar_hinten[0] - VP_1_nachbar_vorne[0]) * math.sin(math.radians(winkel_hinten)) + (SP_1_nachbar_hinten[2] - VP_1_nachbar_hinten[2])*math.cos(math.radians(winkel_hinten))
|
||||
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)
|
||||
|
||||
# Für spätere berechnung schauen ob der erste Kreis in der Liste höher ist
|
||||
if upper_hoehe_vario == gefaellestrecke_vario.get("Hoehe0"):
|
||||
@@ -1216,6 +1115,7 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
||||
msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
|
||||
|
||||
def handle_ils_2_0_kurve_angetrieben(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt eine Angetriebene Kurve (Förderer Kurve) in der neuen Dxf"""
|
||||
voerder_kurve = Angetriebene_Kurve.Angetriebene_Kurve.from_merkmale(teileid,x,y,merkmale)
|
||||
kurvenwinkel = voerder_kurve.winkel
|
||||
h_zwischen = voerder_kurve.hight_zwischen
|
||||
@@ -1229,6 +1129,7 @@ def handle_ils_2_0_kurve_angetrieben(msp, teileid, merkmale, x, y, doc, lib_doc,
|
||||
|
||||
|
||||
def handle_ils_2_0_kurve(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt eine Kurve (Gefälle Kurve) in der neuen Dxf"""
|
||||
rotation= float(merkmale.get("Drehung"))
|
||||
h0 = float(merkmale.get("Höhe Anfang")) * 1000
|
||||
h1 = float(merkmale.get("Höhe Ende")) * 1000
|
||||
@@ -1240,6 +1141,7 @@ def handle_ils_2_0_kurve(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, sy
|
||||
msp.add_blockref("AN8",(x,y,hz),dxfattribs={"rotation": rotation})
|
||||
|
||||
def handle_bt___beladung(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt ein BT Element in der neuen Dxf"""
|
||||
bt_element = Bt_element.Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
rotation = bt_element.drehung
|
||||
hight = bt_element.hoehe
|
||||
@@ -1248,6 +1150,7 @@ def handle_bt___beladung(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, sy
|
||||
msp.add_blockref(blockname,(x,y,hight),dxfattribs={"rotation": rotation})
|
||||
|
||||
def handle_bt___entladung(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""Erstellt ein BT Element in der neuen Dxf"""
|
||||
bt_element = Bt_element.Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
rotation = bt_element.drehung
|
||||
hight = bt_element.hoehe
|
||||
@@ -1291,6 +1194,7 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
|
||||
|
||||
|
||||
def get_insert_color_layer(lib_doc, blockname):
|
||||
"""Gibt den Layer und die Color für den Jeweiligen block in der Libary datei zurück"""
|
||||
msp_lib = lib_doc.modelspace()
|
||||
color = 0
|
||||
layer = 0
|
||||
@@ -1326,6 +1230,7 @@ def get_libfile_cfg(teileart, cfg_path):
|
||||
return None
|
||||
|
||||
def get_nachbar_information(csv_path:Path) -> dict:
|
||||
"""Gibt die Art und nötige Elemente den Nachbardateien zurück"""
|
||||
geraden = []
|
||||
kreisel =[]
|
||||
strecken_nachbarn = []
|
||||
@@ -1368,15 +1273,20 @@ def get_nachbar_information(csv_path:Path) -> dict:
|
||||
h0 = foerderer_objekt.h0
|
||||
h1 = foerderer_objekt.h1
|
||||
foerderrichtung = foerderer_objekt.foerderer_richtung
|
||||
geraden.append({"Id": Id,"NachbarIds":NachbarIds, "Winkel":winkel, "h0": h0,"h1": h1,"Foerderrichtung":foerderrichtung })
|
||||
geraden.append({"Id": Id,"NachbarIds":NachbarIds, "Winkel":winkel, "h0": h0,"h1": h1,"Foerderrichtung":foerderrichtung
|
||||
})
|
||||
if bezeichner =="ILS 2.0 Kurve angetrieben":
|
||||
Id = row["TeileId"].strip()
|
||||
planquadrat = row["Planquadrat"]
|
||||
x, y = extract_coords(planquadrat)
|
||||
merkmale = parse_merkmale(row.get("Merkmale", ""))
|
||||
h0 = merkmale.get("Höhe Anfang")
|
||||
h1 = merkmale.get("Höhe Ende")
|
||||
kurvenrichtung = merkmale.get("Kurvenrichtung")
|
||||
tefkurve = merkmale.get("AntriebNebenStrecke")
|
||||
angetriebene_kurve.append({"Id": Id,"H0": h0,"H1":h1,"kurvenrichtung":kurvenrichtung,"Tefkurve": tefkurve})
|
||||
kurve_angetrieben = Angetriebene_Kurve.Angetriebene_Kurve.from_merkmale(Id,x,y,merkmale)
|
||||
h0 = kurve_angetrieben.hoehe0
|
||||
h1 = kurve_angetrieben.hoehe1
|
||||
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,"Kurve_winkel": kurve_winkel})
|
||||
for gerade in geraden:
|
||||
anweisungen = 0
|
||||
voerder_anweisung = 0
|
||||
@@ -1435,8 +1345,6 @@ def get_nachbar_information(csv_path:Path) -> dict:
|
||||
|
||||
return strecken_nachbarn
|
||||
|
||||
|
||||
|
||||
# --------------------------------------------------------- Hauptfunktion
|
||||
def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Path,
|
||||
output_path: Path, output_path_jason: Path, verbose=False, logger=None ):
|
||||
|
||||
Reference in New Issue
Block a user