Code Anpassung. Rack Namen werden nicht mehr überschrieben. Zeichenen des Graphen mit easy korrekt.

This commit is contained in:
2025-06-02 15:16:07 +02:00
parent 99bf7303bc
commit 7658d058d0
3 changed files with 22 additions and 23 deletions
+11 -15
View File
@@ -118,14 +118,8 @@ class RackIDs():
self._rack_tree = None
def add_rack(self, beg:Point, end:Point, name:str):
if beg in self._point2rack:
self._point2rack[beg].append(name)
else:
self._point2rack[beg] = [name]
if end in self._point2rack:
self._point2rack[end].append(name)
else:
self._point2rack[end] = [name]
self.add_point_to_rack(beg, name)
self.add_point_to_rack(end, name)
self._rack2begend[name] = (beg, end) # Anfangs und Endpunkte zu Rack Namen merken
@@ -155,12 +149,12 @@ class RackIDs():
return list(self._rack2begend.keys())
def add_point_to_rack(self, point:Point, name:str):
if point in self._point2rack:
self._point2rack[point].append(name)
else:
self._point2rack[point] = [name]
''' Fügt einen Punkt zu genanntem Rack hinzu. (z.B Zwischenpunkt in der Mitte)'''
if point not in self._point2rack:
self._point2rack[point] = set()
self._point2rack[point].add(name)
def get_racks_from_point(self, point:Point) -> list[str]:
def get_racks_from_point(self, point:Point) -> set[str]:
return self._point2rack[point]
def get_points_from_rack(self, name:str) -> list[Point]:
@@ -196,7 +190,6 @@ class RackIDs():
rnames = self._rack_map
allracks = self._rack_lines
# Erzeugung von BoundingBox
for i, l1 in enumerate(allracks):
bbox = box(*l1.bounds).buffer(self._tol_snap)
@@ -212,13 +205,14 @@ class RackIDs():
if inter.geom_type == "Point":
self.add_point_to_rack(inter, rnames[l1])
self.add_point_to_rack(inter, rnames[l2])
continue
# Beinahe Schnittpunkte -> Snapping
for pt in [Point(l2.coords[0]), Point(l2.coords[-1])]:
if l1.distance(pt) <= self._tol_snap:
snap_point = l1.interpolate(l1.project(pt))
self.add_point_to_rack(snap_point, rnames[l1])
connrackname = f"c-{rnames[l2]}"
connrackname = f"c-{rnames[l2]}-{rnames[l1]}"
self.add_rack(pt, snap_point, connrackname)
def rack_is_horizontal(self, name):
@@ -558,6 +552,8 @@ class Anlage():
color = "orange"
tname = rname.split("-")[2]
weight = self.get_tunnel_length(tname)
elif re.match("c-.*", rname):
color = "green"
else:
color = "black"