From a2fc823341885d1e65f6888f8c2b8884acb26fef Mon Sep 17 00:00:00 2001 From: Paul Wolok Date: Wed, 21 Jan 2026 16:04:04 +0100 Subject: [PATCH] Refactoren und Kommentieren --- lib/Elemente/Omniflo.py | 2 ++ lib/as_es_methoden.py | 18 ++++++++++++++++-- lib/plant2dxf.py | 38 +++++++++----------------------------- 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/lib/Elemente/Omniflo.py b/lib/Elemente/Omniflo.py index 8dc81f6..4a04fa7 100644 --- a/lib/Elemente/Omniflo.py +++ b/lib/Elemente/Omniflo.py @@ -52,6 +52,7 @@ class Omniflo(BaseModel): h1 = h1 ) def Omniflo_geraden_erstellung(msp, x, y, doc, tefsivas, omniflo_objekt): + """Erstellung der Tef gerade und Omniflo gerade""" winkel_rad = math.radians(omniflo_objekt.drehung) halbe_laenge = omniflo_objekt.laenge / 2 # Man muss bei sin -1 machen wegen des links koordinaten system @@ -69,6 +70,7 @@ class Omniflo(BaseModel): else: linie.dxf.layer = "A-2" def omniflo_foerdererstellung(msp, x, y, doc, lib_doc, omniflo_objekt, rotation): + """"Erstellung des Kettenförderers aktuell nur grundriss""" block_methoden.import_block("bogen1",lib_doc,doc) block_methoden.import_block("bogen2",lib_doc,doc) diff --git a/lib/as_es_methoden.py b/lib/as_es_methoden.py index 8930613..d555999 100644 --- a/lib/as_es_methoden.py +++ b/lib/as_es_methoden.py @@ -4,7 +4,21 @@ import plant2dxf import block_methoden RADIUS = 400 +def vertausch_der_höhe(objekt, upper_hoehe_objekt, lower_hoehe_objekt, rotation): + """Vertausch der Höhen, für ausrechnung blöcke mit as elemente oder andere Berücksichtigungen""" + if upper_hoehe_objekt < lower_hoehe_objekt: + hoehe2 = upper_hoehe_objekt + upper_hoehe_objekt = lower_hoehe_objekt + objekt.h1 = upper_hoehe_objekt + lower_hoehe_objekt = hoehe2 + objekt.h0 = lower_hoehe_objekt + rotation = rotation -180 + objekt.drehung = rotation + objekt.h1 = upper_hoehe_objekt + objekt.h0 = lower_hoehe_objekt + return upper_hoehe_objekt,lower_hoehe_objekt,rotation def erstellung_gefaelle_block_verbunenden_am_einen(msp,x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle, drehung0, laenge,blockname,config, hight = None, block_vario = None, vario_richtung = None, verbunden_höher = None,gefaelle_block=None,start = None,ende = None,mit_horizontal_verbunden = None,as_es_rotation= None): + """Tut ein as/es element in den Block für gefällestrecken wird auch überprüft ob nur ein as es element vorhanden ist""" halbe_laenge = laenge / 2 dy = halbe_laenge * math.cos(0) asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset")) @@ -95,8 +109,7 @@ def erstellung_gefaelle_block_verbunenden_am_einen(msp,x, y, doc, lib_doc, upper return True def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle,richtung2, drehung0, drehung1, laenge, hight_position, blockname,config, block_vario = None,voerder_richtung = None, am_kreisel = None, erster_kreisel_höher = None,y1=None,z1 =None): - #erstellung des blockes falls die gefaelle strecke mit einem kreisel verbunden ist, mehrere variation von selben weil diese nötig sind sobald man die richtigen inserts bekommen - + """erstellung des blockes falls die gefaelle strecke mit einem kreisel verbunden ist, mehrere variation von selben weil diese nötig sind sobald man die richtigen inserts bekommen""" asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset")) esoffset = float(config.get("ILS 2.0 Gefällestrecke", "esoffset")) winkel_as = float(config.get("Ils 2.0 core winkel", "winkel_as")) @@ -276,6 +289,7 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_h def am_kreisel_direct_verbunden(x, y, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, x0_kreisel, y0_kreisel, richtung_rad0, abstand0, dx, dy, x1_kreisel, y1_kreisel, richtung_rad1, abstand1,kreisel_verbunden= None, richtung0 = None, richtung1 = None, richtung2 = None): + """Schaut ob das Element direkt am Kreisle Kopf hängt""" if kreisel_verbunden == None: kreisel_verbunden = 0 unterschiedlich = False diff --git a/lib/plant2dxf.py b/lib/plant2dxf.py index b29ae67..dddaf93 100644 --- a/lib/plant2dxf.py +++ b/lib/plant2dxf.py @@ -132,15 +132,7 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v abstand0 = float(gefaellestrecke_nachbarn.get("abstand0")) * 1000 #Austauch der höhen und dementsprechende Koorekur falls nötig, dieser Schritt ist notwendig für die Konsistzenz der Blockerstellung - if upper_hoehe_gefaehlle < lower_hoehe_gefaehlle: - hoehe2 = upper_hoehe_gefaehlle - upper_hoehe_gefaehlle = lower_hoehe_gefaehlle - gefaelle_objekt.h1 = upper_hoehe_gefaehlle - lower_hoehe_gefaehlle = hoehe2 - gefaelle_objekt.h0 = lower_hoehe_gefaehlle - rotation = rotation -180 - gefaelle_objekt.drehung = rotation - + upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, rotation = as_es_methoden.vertausch_der_höhe(gefaelle_objekt, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, rotation) # Übrerprüfung ob die Gefällestrecke einen Motor oder Umlenkstation braucht, wenn es mit einer angetriebenen Kurve verbunden ist block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, blockname_motor_links, blockname_umlenk_links = block_methoden.rotatate_and_left_motor_umlenk(doc, lib_doc,config) hat_zusatz = Gefaehllestrecke.Gefaellestrecke.hat_motor_umlenk_station (gefaelle_objekt, gefaellestrecke_nachbarn) @@ -301,15 +293,8 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v a.is_invisible = True #falls eine gefällestrecke nicht mit einem kreisel verbunden ist else: - rotation= float(merkmale.get("Drehung")) - if upper_hoehe_gefaehlle < lower_hoehe_gefaehlle: - hoehe2 = upper_hoehe_gefaehlle - upper_hoehe_gefaehlle = lower_hoehe_gefaehlle - gefaelle_objekt.h1 = upper_hoehe_gefaehlle - lower_hoehe_gefaehlle = hoehe2 - gefaelle_objekt.h0 = lower_hoehe_gefaehlle - rotation = rotation -180 - gefaelle_objekt.drehung = rotation + + # Schauen ob die Gefällestruktur mit einer Kurve verbunden ist und deswegen ein Motor und oder eine Umlenkstation braucht block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, blockname_motor_links, blockname_umlenk_links = block_methoden.rotatate_and_left_motor_umlenk(doc, lib_doc,config) hat_zusatz = Gefaehllestrecke.Gefaellestrecke.hat_motor_umlenk_station(gefaelle_objekt, gefaellestrecke_nachbarn) @@ -325,6 +310,7 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v blockname = f"Ils_2.0_Gefaellestrecke_{laenge}_{hoehe_gefaehlle}_{hat_motor_0}_{hat_umlenk_0}_{tefkurve_0}_{hat_motor_1}_{hat_umlenk_1}_{tefkurve_1}_{umlenk_gerade}_{motor_gerade}" # behandlung der Gefällestrecke falls es keine Vario Kurve hat if hat_motor_0 == False or hat_umlenk_0 == False or hat_motor_1 == False or hat_umlenk_1 == False: + dx = halbe_laenge *math.sin(winkel * -1) dy = halbe_laenge * math.cos(winkel) start = [x , y + dy ,upper_hoehe_gefaehlle] @@ -334,6 +320,8 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v return # Behandlung falls es mit einer odr zwei Vario kurve verbunden ist if blockname not in doc.blocks: + rotation= float(merkmale.get("Drehung")) + upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, rotation = as_es_methoden.vertausch_der_höhe(gefaelle_objekt, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, rotation) block = doc.blocks.new(name=blockname,base_point = (0,0,0)) dy = halbe_laenge * math.cos(0) start = [x , y + dy ,upper_hoehe_gefaehlle] @@ -347,7 +335,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 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) @@ -376,16 +364,8 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve lower_hoehe_vario = foerderer.h0 hoehe_vario= foerderer.hight_zwischen anzahl_seperatoren_oder_scan(msp, x, y, doc, lib_doc, foerderer, hoehe_vario, rotation) - # Umstellung der Höhen falls nötig für die Konsistenz der spätere Erstellung, ist nur notwendig für ab Vario Förderer - if upper_hoehe_vario< lower_hoehe_vario: - hight = upper_hoehe_vario - upper_hoehe_vario = lower_hoehe_vario - foerderer.h1 = upper_hoehe_vario - lower_hoehe_vario = hight - foerderer.h0 = lower_hoehe_vario - # Korrektur der rotation mit der Umstellung der Höhe - rotation = rotation -180 - foerderer.drehung = rotation + upper_hoehe_vario, lower_hoehe_vario, rotation = as_es_methoden.vertausch_der_höhe(foerderer, upper_hoehe_vario, lower_hoehe_vario, rotation) + # Hollen der Information der Nachbarn strukturen ob diese Kreisel sind for nachbarn in strecken_nachbarn: if teileid == nachbarn.get("Id"):