Falls B in Attribute ist, wird auch hier pos aufgezeichnet. damit haben alle INSERTS einen pos eintrag und Skipt läuft durch

This commit is contained in:
2025-06-10 15:25:13 +02:00
parent 47ab065387
commit dbf3a6450d
+12 -4
View File
@@ -42,6 +42,7 @@ def get_type_of_name(name):
"MA", # Motor "MA", # Motor
"BG", # Stausensor "BG", # Stausensor
"BP" # Schalter Druckluft "BP" # Schalter Druckluft
"QM" # Ventile
] ]
KabelKey = ["WD"] KabelKey = ["WD"]
@@ -71,7 +72,6 @@ def get_type_of_name(name):
return typ return typ
def get_attributes_of_insert(insert): def get_attributes_of_insert(insert):
id = "" id = ""
ld = dict() ld = dict()
typ = 'unknown' typ = 'unknown'
@@ -94,6 +94,8 @@ def get_attributes_of_insert(insert):
# Suche nach Sensoren # Suche nach Sensoren
typ = get_type_of_name(attr_text) typ = get_type_of_name(attr_text)
id = attr_text id = attr_text
pos = attrib.dxf.insert #Position aufzeichnen und bei Bedarf später mit REAL_POS überschreiben
ld["pos"] = (round(pos.x, 1), round(pos.y, 1))
if attr_tag == "REALE_POSITION" and attr_text == "x": if attr_tag == "REALE_POSITION" and attr_text == "x":
#typ = get_type_of_name(attr_text) #typ = get_type_of_name(attr_text)
@@ -179,10 +181,14 @@ def create_mappings(positions:dict) -> dict:
sensor2unterverteiler = dict() sensor2unterverteiler = dict()
warnings = list() warnings = list()
for sensorname,v in positions.items(): for sensorname,v in positions.items():
if "KENNZEICHNUNG" not in v:
warnings.append(f"{sensorname}: keine KENNZEICHNUNG vorhanden")
continue
unterverteiler_pfad = v["KENNZEICHNUNG"] unterverteiler_pfad = v["KENNZEICHNUNG"]
#print(unterverteiler_pfad) #print(unterverteiler_pfad)
# PFad zur Karte splitten. Dieser hat z.B. den Inhalt "=AH01+UH02-KF1FDI7" # Pfad zur Karte splitten. Dieser hat z.B. den Inhalt "=AH01+UH02-KF1FDI7"
pattern = r"^=([A-Z]+\d+)([+\-])([A-Z]+\d+)([+\-])([A-Z0-9]+)$" pattern = r"^=([A-Z]+\d+)([+\-])([A-Z]+\d+)([+\-])([A-Z0-9]+)$"
match = re.match(pattern, unterverteiler_pfad) match = re.match(pattern, unterverteiler_pfad)
if match: if match:
@@ -198,8 +204,9 @@ def create_mappings(positions:dict) -> dict:
warnings.append(unterverteiler_pfad) warnings.append(unterverteiler_pfad)
continue continue
if not verteiler in dnamen: if verteiler not in dnamen:
dnamen[verteiler] = True dnamen[verteiler] = True
sensor2unterverteiler[sensorname] = verteiler sensor2unterverteiler[sensorname] = verteiler
# jetzt zu jedem Unterverteiler die zugehörigen Sensoren merken # jetzt zu jedem Unterverteiler die zugehörigen Sensoren merken
@@ -207,7 +214,8 @@ def create_mappings(positions:dict) -> dict:
for sensorname,verteiler in sensor2unterverteiler.items(): for sensorname,verteiler in sensor2unterverteiler.items():
if verteiler not in uv2sensor: if verteiler not in uv2sensor:
uv2sensor[verteiler] = list() uv2sensor[verteiler] = list()
uv2sensor[verteiler].append(sensorname) uv2sensor[verteiler].append(sensorname)
return (uv2sensor, warnings) return (uv2sensor, warnings)
def get_subdistributor_positions(msp, dist2sensors): def get_subdistributor_positions(msp, dist2sensors):