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
"BG", # Stausensor
"BP" # Schalter Druckluft
"QM" # Ventile
]
KabelKey = ["WD"]
@@ -71,7 +72,6 @@ def get_type_of_name(name):
return typ
def get_attributes_of_insert(insert):
id = ""
ld = dict()
typ = 'unknown'
@@ -94,6 +94,8 @@ def get_attributes_of_insert(insert):
# Suche nach Sensoren
typ = get_type_of_name(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":
#typ = get_type_of_name(attr_text)
@@ -179,10 +181,14 @@ def create_mappings(positions:dict) -> dict:
sensor2unterverteiler = dict()
warnings = list()
for sensorname,v in positions.items():
if "KENNZEICHNUNG" not in v:
warnings.append(f"{sensorname}: keine KENNZEICHNUNG vorhanden")
continue
unterverteiler_pfad = v["KENNZEICHNUNG"]
#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]+)$"
match = re.match(pattern, unterverteiler_pfad)
if match:
@@ -198,8 +204,9 @@ def create_mappings(positions:dict) -> dict:
warnings.append(unterverteiler_pfad)
continue
if not verteiler in dnamen:
if verteiler not in dnamen:
dnamen[verteiler] = True
sensor2unterverteiler[sensorname] = verteiler
# 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():
if verteiler not in uv2sensor:
uv2sensor[verteiler] = list()
uv2sensor[verteiler].append(sensorname)
uv2sensor[verteiler].append(sensorname)
return (uv2sensor, warnings)
def get_subdistributor_positions(msp, dist2sensors):