Refactoring
This commit is contained in:
+18
-78
@@ -21,79 +21,11 @@ import math
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
from typing import Optional
|
||||
from utils import check_environment_var, setup_logger
|
||||
from Elemente import Kreisel, VarioFoerderer,Gefaehllestrecke
|
||||
from Elemente import Kreisel, VarioFoerderer,Gefaehllestrecke,Angetriebene_Kurve,Bt_element
|
||||
import as_es_methoden
|
||||
|
||||
class Bt_element(BaseModel):
|
||||
teileid: str
|
||||
drehung: Optional [float] = Field(default=0.0,description="Rotation des Elements")
|
||||
hoehe: Optional [float] = Field(default=0.0,description="Hoehe des Elements")
|
||||
|
||||
@classmethod
|
||||
def from_merkmale(cls, teileid: str, x: float, y: float, merkmale: dict) -> 'Bt_element':
|
||||
try:
|
||||
hoehe = float(merkmale.get("Höhe in Meter"))
|
||||
except Exception as e:
|
||||
hoehe = 0.0
|
||||
try:
|
||||
drehung = float(merkmale.get("Drehung"))
|
||||
except Exception as e:
|
||||
drehung = 0.0
|
||||
|
||||
return cls(
|
||||
teileid = teileid,
|
||||
x = x,
|
||||
y = y,
|
||||
hoehe = hoehe,
|
||||
drehung = drehung
|
||||
|
||||
)
|
||||
|
||||
class Angetriebene_Kurve(BaseModel):
|
||||
teileid: str
|
||||
x: float
|
||||
y:float
|
||||
drehung: float = Field(default=0.0,description="Rotation der Kurve")
|
||||
hoehe0: float = Field(default=0.0,description="Hoehe Anfang der Kurve")
|
||||
hoehe1: float = Field(default=0.0,description="Hoehe Ende der Kurve")
|
||||
kurvenrichtung: str = Field(description="Kurvenrichtung der Kurve")
|
||||
antriebNebenStrecke: str =Field(description="wo die Angetriebene Strecke ist abhängig von der kurvenrichtung")
|
||||
winkel: int = Field(description="Der Winkel der Kurve")
|
||||
|
||||
@property
|
||||
def antrieb(self):
|
||||
if self.antriebNebenStrecke == "Aussen":
|
||||
self.antriebNebenStrecke = "außen"
|
||||
elif self.antriebNebenStrecke == "Innen":
|
||||
self.antriebNebenStrecke = "innen"
|
||||
return self.antriebNebenStrecke
|
||||
@property
|
||||
def hight_zwischen(self):
|
||||
return ((self.hoehe0 + self.hoehe1) /2)
|
||||
@classmethod
|
||||
def from_merkmale(cls, teileid: str, x: float, y: float, merkmale: dict) -> 'Angetriebene_Kurve':
|
||||
hoehe0 = float(merkmale.get("Höhe Anfang")) * 1000
|
||||
hoehe1 = float(merkmale.get("Höhe Ende")) * 1000
|
||||
winkel = int(merkmale.get("Kurvenwinkel"))
|
||||
kurvenrichtung = merkmale.get("Kurvenrichtung")
|
||||
antriebNebenstrecke = merkmale.get("AntriebNebenStrecke")
|
||||
try:
|
||||
drehung = float(merkmale.get("Drehung"))
|
||||
except Exception as e:
|
||||
drehung = 0.0
|
||||
|
||||
return cls(
|
||||
teileid = teileid,
|
||||
x = x,
|
||||
y = y,
|
||||
drehung = drehung,
|
||||
hoehe0 = hoehe0,
|
||||
hoehe1 = hoehe1,
|
||||
kurvenrichtung = kurvenrichtung,
|
||||
antriebNebenStrecke = antriebNebenstrecke,
|
||||
winkel = winkel
|
||||
|
||||
)
|
||||
# --------------------------------------------------------- CFG-Leser für shapes.cfg
|
||||
def get_shape_cfg(teileart, cfg_path, logger=None):
|
||||
parser = configparser.ConfigParser()
|
||||
@@ -745,7 +677,7 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
||||
# für spätere Namens benenung der Vario forderer
|
||||
motor_vorhanden = foerderer.hat_motor
|
||||
umlenk_vorhanden = foerderer.hat_umlenk
|
||||
|
||||
|
||||
gefahellewinkel = foerderer.gefaelle_winkel
|
||||
|
||||
gefaelle = foerderer.gefaelle_laenge
|
||||
@@ -1279,11 +1211,12 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
||||
# Reintuen des endblockes in den Modelspace
|
||||
if merkmale.get("Motorseite")== "links":
|
||||
msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
|
||||
|
||||
if merkmale.get("Motorseite")== "rechts":
|
||||
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):
|
||||
voerder_kurve = Angetriebene_Kurve.from_merkmale(teileid,x,y,merkmale)
|
||||
voerder_kurve = Angetriebene_Kurve.Angetriebene_Kurve.from_merkmale(teileid,x,y,merkmale)
|
||||
kurvenwinkel = voerder_kurve.winkel
|
||||
h_zwischen = voerder_kurve.hight_zwischen
|
||||
antriebNebenStrecke = voerder_kurve.antrieb
|
||||
@@ -1291,7 +1224,8 @@ def handle_ils_2_0_kurve_angetrieben(msp, teileid, merkmale, x, y, doc, lib_doc,
|
||||
rotation = voerder_kurve.drehung
|
||||
blockname = (f"Vario_Kurve_{kurvenrichtung}_{kurvenwinkel}°_TEF_{antriebNebenStrecke}")
|
||||
import_block(blockname,lib_doc,doc)
|
||||
msp.add_blockref(blockname,(x,y,h_zwischen),dxfattribs={"rotation": rotation})
|
||||
layer, color = get_insert_color_layer(lib_doc, blockname)
|
||||
msp.add_blockref(blockname,(x,y,h_zwischen),dxfattribs={"rotation": rotation,"layer": layer, "color":color})
|
||||
|
||||
|
||||
def handle_ils_2_0_kurve(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
@@ -1306,7 +1240,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):
|
||||
bt_element = Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
bt_element = Bt_element.Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
rotation = bt_element.drehung
|
||||
hight = bt_element.hoehe
|
||||
blockname = "AN8"
|
||||
@@ -1314,14 +1248,21 @@ 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):
|
||||
bt_element = Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
bt_element = Bt_element.Bt_element.from_merkmale(teileid,x,y,merkmale)
|
||||
rotation = bt_element.drehung
|
||||
hight = bt_element.hoehe
|
||||
blockname = "AN8"
|
||||
import_block(blockname,lib_doc,doc)
|
||||
msp.add_blockref(blockname,(x,y,hight),dxfattribs={"rotation": rotation})
|
||||
|
||||
|
||||
class Omniflo(BaseModel):
|
||||
teileid:str
|
||||
sivasnummer:str
|
||||
laenge: Optional [float]
|
||||
drehung: float
|
||||
hoehe : Optional[float]
|
||||
h0: Optional[float] = Field(description="Höhe unten im CSV")
|
||||
h0: Optional[float] = Field(description="Höhe Oben im CSV")
|
||||
def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||
"""
|
||||
Für Omniflo Gerade: zeichnet eine Linie (Mitte = Koordinate, Länge und Winkel aus Merkmale).
|
||||
@@ -1406,10 +1347,9 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
|
||||
import_block(blockname, lib_doc, doc)
|
||||
|
||||
# blockref_layer = get_layer(doc, lib_doc, blockname)
|
||||
symblos_layers = config_allgemein.get("dxf2lib","automation_layer")
|
||||
drehung = merkmale.get("Drehung")
|
||||
bref = msp.add_blockref(blockname, (x, y,float(merkmale.get("Höhe"))), dxfattribs={"rotation": drehung})
|
||||
# Layer, auf dem der Insert liegt
|
||||
msp.add_blockref(blockname, (x, y,float(merkmale.get("Höhe"))), dxfattribs={"rotation": drehung})
|
||||
|
||||
|
||||
|
||||
def get_insert_color_layer(lib_doc, blockname):
|
||||
|
||||
Reference in New Issue
Block a user