Prangelz Geschrieben 17. April Teilen Geschrieben 17. April Moin Zusammen, Ich bekomme folgende Fehlermeldung beim Ausführen meines Skriptes: Das Skript macht was es soll. Bekomme nur die Fehlermeldung. So sieht das Skript aus: def DoIt(h): Zähler = 0 b = vs.GetRField(h, 'Rinne', 'Sinkkasten') if b == 'Falsch': vs.SetRField(h, 'Rinne', 'Anzahl Sinkkästen', 0) Zähler = 1 if int(vs.GetRField(h, 'Rinne', 'Anzahl Sinkkästen')) == 0 and Zähler == 0: i =vs.IntDialog('Anzahl Sinkkästen:',) int(i) vs.SetRField(h, 'Rinne', 'Anzahl Sinkkästen', i) else: pass Kriterien = "((VSEL=TRUE))" vs.ForEachObject(DoIt, Kriterien) Vlt. könnt Ihr mir helfen. LG Vectorworks Landschaft Windows 10 Pro 64-bit Intel i7-7700 3.60 GHz NVIDIA Geforce 1050 Ti 16 GB RAM Link zu diesem Kommentar
herbieherb Geschrieben 17. April Teilen Geschrieben 17. April (bearbeitet) In Zeile 15 führst du die Funktion 'DoIt' aus. Da drin schaust du in Zeile 8. Der Befehl in der Zeile erzeugt den Fehler. Er braucht einen zweiten Parameter (der Erste wäre der mit Index 0, in der Fehlermeldung steht Index 1). Der zweite Parameter ist der default-Wert im erzeugten Dialogfenster. Wenn du das Eingabefeld leer haben willst, kannst du i =vs.IntDialog('Anzahl Sinkkästen:', '') oder i =vs.IntDialog('Anzahl Sinkkästen:', None) verwenden. Bearbeitet 17. April von herbieherb 1 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
Prangelz Geschrieben 19. April Autor Teilen Geschrieben 19. April (bearbeitet) def DoIt(h): b = vs.GetRField(h, 'Rinne', 'Sinkkasten') if b == 'Falsch': vs.SetRField(h, 'Rinne', 'Anzahl Sinkkästen [St]', 0) if b == 'Wahr': if vs.GetRField(h, 'Rinne', 'Anzahl Sinkkästen [St]') == '0': i =vs.IntDialog('Anzahl Sinkkästen:',None) int(i) vs.SetRField(h, 'Rinne', 'Anzahl Sinkkästen [St]', i) Kriterien = "((VSEL=TRUE))" vs.ForEachObject(DoIt, Kriterien) Dann füge ich direkt noch eine Frage an: Ich habe über den Datenmanager für die Klasse 'Rinne' die Zuordnung für den Datenbanksatz 'Anzahl Sinkkästen [St]' mit dem Skript über den Befehl 'Runscript' erstellt. Dabei fragt das Skript ab, ob der Datenbanksatz 'Sinkkasten' wahr oder falsch ist. Sollte er falsch sein, dann soll nichts passieren. Klickt der Anwender jedoch auf 'Wahr', soll ein Dialog Fenster geöffnet werden, wo der Benutzer aufgefordert wird eine Ganzzahl als Anzahl einzugeben. Dies funktioniert auch sehr gut, jedoch nur bei vorhandenen, bereits gezeichneten Rinnen. Wenn ich auf der Klasse 'Rinne' eine neue Rinne zeichne, dann stürzt das Programm ab. Dies steht im Zusammenhang mit dem Skript, da wenn ich die Zuordnung lösche (Skript wird nicht ausgefüllt), dann stürzt das Programm nicht ab. Hat jemand eine Ahnung, warum es zu den genannten Programmabstürzen kommt? (Vectorworks 2023) LG Edit: In Vectorworks 2024 kommt es zu keinem Programmabsturz... Bearbeitet 19. April von Prangelz Vectorworks Landschaft Windows 10 Pro 64-bit Intel i7-7700 3.60 GHz NVIDIA Geforce 1050 Ti 16 GB RAM Link zu diesem Kommentar
Prangelz Geschrieben 26. April Autor Teilen Geschrieben 26. April Vielleicht hätte ich ein neues Thema aufmachen sollen, da man die Frage sonst nicht mehr findet... Hat @herbieherb vlt noch eine Idee? Danke! Vectorworks Landschaft Windows 10 Pro 64-bit Intel i7-7700 3.60 GHz NVIDIA Geforce 1050 Ti 16 GB RAM Link zu diesem Kommentar
herbieherb Geschrieben 26. April Teilen Geschrieben 26. April (bearbeitet) Kannst du ein Testfile hochladen? Bekommst du beim Absturz eine Fehlermeldung? Was mir auffällt ist, dass du sowohl eine Klasse mit Bezeichnung 'Rinne' als auch eine Datenbank mit gleichem Namen hast. Das ist eigentlich nicht möglich im gleichen File. Eventuell hats damit zu tun? Bearbeitet 26. April von herbieherb Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
Prangelz Geschrieben 26. April Autor Teilen Geschrieben 26. April Danke für deine Hilfe. Im Anhang die Datei. Ich habe es im oberen Beitrag falsch kommuniziert. Die Klasse und der File haben einen unterschiedlichen Namen. Ich bekomme leider keine Fehlermeldung, sondern Vectorworks 2023 stürzt einfach ab. Rinne.vwx Vectorworks Landschaft Windows 10 Pro 64-bit Intel i7-7700 3.60 GHz NVIDIA Geforce 1050 Ti 16 GB RAM Link zu diesem Kommentar
Antonio Landsberger Geschrieben 26. April Teilen Geschrieben 26. April Hallo @Prangelz spontan würde ich sagen: anstatt if b == 'Wahr' und if b == 'Falsch' zu schreiben, empfehle ich if not b und if b zu schreiben, da es sich hier ja schon um einen bool'schen Wert handelt. Gruß Antonio Landsberger ComputerWorks GmbH http://www.computerworks.de Link zu diesem Kommentar
herbieherb Geschrieben 29. April Teilen Geschrieben 29. April (bearbeitet) In VW2023 scheint generell ein Problem mit Runscript im Datenmanager zu haben. Bei mir führt in der Version jeder Versuch ein Script auszuführen dazu dass die Ausführung ungewollt immer wieder wiederholt wird und schliesslich VW abstürzt. In VW2024 funktioniert dein Script. Bearbeitet 29. April von herbieherb Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden