Für unser anstehendes Projekt habe ich auf die Schnelle diese Lösung erstellt.
Das wird bei uns funktionieren weil wir nur wenige der Beschriftungsbilder benötigen.
Diese Funktion am Ende der functions.py ergänzen
...\Projektablage\Std\Scripts\functions.py
def getOffset(prj_pfad, koordinate):
import os.path
filter = ["X","x","Y","y","Z","z"]
if koordinate in filter:
pass
else:
return f"Übergabewert nicht gültig: {koordinate}"
offs_datei = "project.ofs"
datei = os.path.join(prj_pfad, offs_datei)
i = 0
koordinaten = {"x": 0, "y": 0, "z": 0}
start = False
try:
with open(datei, encoding="utf-8") as fcontent:
for line in fcontent:
if line.startswith("[OFFSET]"):
start = True
if start:
if i == 1:
koordinaten["x"] = float(line)/1000
if i == 2:
koordinaten["y"] = float(line)/1000
if i == 3:
koordinaten["z"] = float(line)/1000
i += 1
except OSError as err:
print(err.args)
return( f"{koordinaten[koordinate.lower()]}")
Beispiel Beschriftungsbild(Formel) für den Abruf des Rechts-Wertes aus dem Offset:
p:getOffset(@Pfadname@;"X")
Pfadname = Attribut-Nr. 412
Mögliche Werte X,x,Y,y,Z,z