[Question] Python Funktionen Beschriftungsbilder, Funktion nicht gefunden [Solved]


Hallo zusammen,

wir verwenden teilweise Pythonfunktionen für die Texte in Planlegenden.
Das hat bis vor Kurzem gut funktioniert, nun erhalten wir jedoch eine Fehlermeldung.

Die programmierten Funktionen sind in Ordnung. Laut Python Protokolldatei werden die Strings korrekt ausgegeben, aber nicht ins Beschriftungsbild übergeben.

Dieser Fehler findet sich in der Protokolldatei:
AttributeError: module '__main__' has no attribute 'execute_function'

Allplan wirft beim Versuch die Planlegenden zu verwenden die Fehlermeldung gemäß Anhang aus.

Kann hier jemand weiterhelfen?

VG
Marcus

Attachments (1)

Type: image/png
Downloaded 37 times
Size: 7,89 KiB

Show solution Hide solution

Die execute_function liegt normalerweise im Verzeichnis \Etc\Scripts\functions.py.

Wenn das nicht der Fall ist, oder diese kaputt ist, hilft sicher eine Reparaturinstallation.

Attachments (1)

Type: image/jpeg
Downloaded 54 times
Size: 60,92 KiB

Welche Allplan-Version wird benutzt?

Zum nachstellen des Problems, wird sicher jemand (z.B. die Hotline) das konkrete Beipsiel brauchen:
-TB mit Element und Beschriftungsbild
-Python-Function

Würdest Du uns das hier zur Verfügung stellen?

Ansonsten kann (nicht nur hier) keiner ernsthaft etwas dazu sagen, geschweige denn helfen...

Allplan 2023
Um Fehler in den eigenen Funktionen auszuschließen, habe ich die Functions.py bis auf die Testfunktionen von Allplan reduziert.
Das Problem besteht weiterhin, sowohl in Bauteilbeschriftungen wie auch in Planlegenden.
Screenshot mit Beispiel Bauteilbeschriftung, Teilbilder und Functions.py anbei.

VG
Marcus

Attachments (3)

Type: application/ndw
Downloaded 293 times
Size: 960,27 KiB
Type: application/zip
Downloaded 288 times
Size: 63,54 KiB
Type: image/png
Downloaded 58 times
Size: 33,81 KiB

das Pluszeichen zwischen zwei Strings/Texten addiert diese. Damit hat die Funktion nur ein Argument, welches übergeben wird und nicht funktionieren. Vermutlich muss hier ein Semikolon stehen, um die beiden Argumente auch als einzelne Argumente zu übertragen.

unbekannter Verfasser ist ein unbekannter Verfasser und Namen sind und sollen nur dem Verfasser selbst bekannt sein.

Als Separator für die Argumente muss ein Semikolon(;) verwendet werden:
Richtig wäre also:

p:testArgs("eins";"zwei")

p:testArgs("eins"+"zwei") will eine Funktion aufrufen, die nur ein Argument hat!
Und diese Funktion gibt es nicht, was auch die Fehlermeldung ordnungsgemäß mitteilt!

Korrekt, danke für die Hinweise!
Das ist beim Basteln des Tests versehentlich passiert.
An der Fehlermeldung ändert das leider nichts, die erscheint weiter wie zuvor...

VG
Marcus

Die execute_function liegt normalerweise im Verzeichnis \Etc\Scripts\functions.py.

Wenn das nicht der Fall ist, oder diese kaputt ist, hilft sicher eine Reparaturinstallation.

Attachments (1)

Type: image/jpeg
Downloaded 54 times
Size: 60,92 KiB

Quote by cbrandlmay
Die execute_function liegt normalerweise im Verzeichnis \Etc\Scripts\functions.py.
Wenn das nicht der Fall ist, oder diese kaputt ist, hilft sicher eine Reparaturinstallation.

Dankeschön, läuft wieder!
Ich konnte die Datei mit einer funktionierenden Version aus dem Backup überschrieben.

VG
Marcus


https://campus.allplan.com/ uses cookies  -  More information

Accept