Foro de Soporte Allplan

[Pregunta] Python Funktionen Beschriftungsbilder, Funktion nicht gefunden [Guardado]


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

Adjuntos (1)

Type: image/png
Descargado 41 veces
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.

Adjuntos (1)

Type: image/jpeg
Descargado 66 veces
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

Adjuntos (3)

Type: application/ndw
Descargado 347 veces
Size: 960,27 KiB
Type: application/zip
Descargado 348 veces
Size: 63,54 KiB
Type: image/png
Descargado 64 veces
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.

Adjuntos (1)

Type: image/jpeg
Descargado 66 veces
Size: 60,92 KiB

Cita de: 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://connect.allplan.com/ utiliza cookies  -  Aqui

Acéptalo