mail@pb-schilling.de Geschrieben 10. Juli 2020 Teilen Geschrieben 10. Juli 2020 Hallo, ich möchte für Vollkörper das Volumen über einen Datenstempel ausgeben. Leider ist die Funktion "Volumen" in den Stempel-Layout-Daten (Drop-Down-Menü) nicht verfügbar. Wie kann ich das Volumen dennoch erhalten? Ich hatte gedacht, ich könnte evtl. #VOLUME# als Funktion im Datenfeld verwenden, was allerdings nicht funktioniert. Link zu diesem Kommentar
tohartma Geschrieben 10. Juli 2020 Teilen Geschrieben 10. Juli 2020 Hallo, bei einfachen Extrusionskörpern könntest du dir mit "#HLENGTH#*#HWIDTH#*#HHEIGHT#" helfen, also die Variablen lassen sich mit mathematischen Operationen verknüpfen (* = x). Theoretisch müsste das ja auch mit Fläche mal Höhe funktionieren, aber ich hab es noch nicht geschafft, dass er mir die Grundfläche des Extrusionskörpers rausgibt. Gruß Vectorworks Landschaft 2023 immer aktuell Vectorworks Landschaft 2024 immer aktuell PC: AMD Ryzen 9 3900X 12-Core Processor 3.79 GHz; AMD Radeon RX 5500 XT; 64GB Ram, Windows 10 Link zu diesem Kommentar
mail@pb-schilling.de Geschrieben 11. Juli 2020 Autor Teilen Geschrieben 11. Juli 2020 danke für die Antwort - tatsächlich ist der Körper etwas komplexer, so dass es so einfach nicht funktioniert... Link zu diesem Kommentar
inderfab Geschrieben 11. Juli 2020 Teilen Geschrieben 11. Juli 2020 (bearbeitet) Das Volumen kann tatsächlich nicht direkt abgegriffen werden, wieso auch immer. Ich habe dir ein Skript geschrieben, welches das Volumen des selektierten Objekts in eine Datenbank schreibt. Mit einem Datenstempel kannst du dann auf die DB verweisen und hast das Volumen. Im Anhang das Dokument mit einem Skript, einem Stempel und der Datenbank. Volumen in DB.vwx if vs.FSActLayer() != None: h = vs.FSActLayer() volumen = vs.ObjVolume(h) vs.SetRecord(h, 'VolumenDS') vs.SetRField(h, 'VolumenDS', 'Volumen', volumen) else: vs.AlrtDialog('Kein gültiges Objekt aktiviert') Gruss Fabio Volumen in DB.vwx Bearbeitet 11. Juli 2020 von inderfab 5 VWX23 SP7 | Architektur | MacOS 13.5 | M2 Max Link zu diesem Kommentar
mail@pb-schilling.de Geschrieben 11. Juli 2020 Autor Teilen Geschrieben 11. Juli 2020 ooh, das ist ja unglaublich nett. So etwas hatte ich gar nicht erwartet. Vermutlich werden die Funktionen des Datenstempels allmählich erweitert. Ich werde also versuchen, das Skript einzubauen! Viele Grüße aus München Link zu diesem Kommentar
inderfab Geschrieben 14. Juli 2020 Teilen Geschrieben 14. Juli 2020 Weil du ebenfalls sehr freundlich warst, habe ich dir das Skript noch in ein Werkzeug verpackt. Nun kannst du das gewünschte Objekt anklicken, es setzt die Datenbank usw. und wechselt automatisch zum Datenstempel und du kannst den einsetzten. Einzige Voraussetzung ist, das die Datenbank Volumen, welche im vorherigen Post vorhanden ist, ebenfalls im Dokument ist. Also am besten in die Vorlage kopieren. Volumen Datenstempel.vst Diese Datei unter Programm-Vectorworks-Plugin speichern. VW neustarten und die Arbeitsumgebung anpassen. Tool ist unter Werkzeuge zu finden. Gruss Fabio Das Werkzeuglogo musst du in der Arbeitsumgebung suchen. Name des Werkzeugs ist "Volumen Datenstempel" 9 VWX23 SP7 | Architektur | MacOS 13.5 | M2 Max Link zu diesem Kommentar
mail@pb-schilling.de Geschrieben 15. Juli 2020 Autor Teilen Geschrieben 15. Juli 2020 ich bin ja völlig sprachlos - vielen herzlichen Dank! Ich wusste gar nicht, dass man, entsprechendes Wissen vorausgesetzt (das mir fehlt), so "einfach" eigene Werkzeuge erstellen kann. Das ist wirklich sehr nett. Link zu diesem Kommentar
Rumdidum Geschrieben 21. Juli 2020 Teilen Geschrieben 21. Juli 2020 Am 14.7.2020 um 20:13 schrieb inderfab: Weil du ebenfalls sehr freundlich warst, habe ich dir das Skript noch in ein Werkzeug verpackt. Nun kannst du das gewünschte Objekt anklicken, es setzt die Datenbank usw. und wechselt automatisch zum Datenstempel und du kannst den einsetzten. Einzige Voraussetzung ist, das die Datenbank Volumen, welche im vorherigen Post vorhanden ist, ebenfalls im Dokument ist. Also am besten in die Vorlage kopieren. Volumen Datenstempel.vst 4 kB · 5 downloads Diese Datei unter Programm-Vectorworks-Plugin speichern. VW neustarten und die Arbeitsumgebung anpassen. Tool ist unter Werkzeuge zu finden. Gruss Fabio Das Werkzeuglogo musst du in der Arbeitsumgebung suchen. Name des Werkzeugs ist "Volumen Datenstempel" Hallo Fabio, erstmal danke für das Werkzeug das du entwickelt hast. Da ich zur Zeit Python und alles was dazu gehört lerne hat mich interessiert wie du das Problem von mail@pb gelöst hast. Deshalb habe ich deine Datei als Referenz genommen um die funktionsweise zu verstehen um später was eigenes zu entwickeln. Jedoch verstehe ich die Datei "vst" nicht. Wieso braucht man diese Datei und wie kann ich damit arbeiten? Die Vectorworks "Developer" Seite ist leider wenig hilfreich und maximal verwirrend. Vielleicht hast du oder jemand anderes hier im Forum einen Tipp wie ich am besten ins Programmieren in Vectorworks einsteigen kann? Danke im Voraus 1 Link zu diesem Kommentar
herbieherb Geschrieben 21. Juli 2020 Teilen Geschrieben 21. Juli 2020 Die .vst-Datei ist eine Verpackung für das Script, welche Metadaten dazu enthält, z.B. Infos dazu, wie das Script ausgeführt werden soll, welches Icon das Plug-in haben soll etc. Um das Script zu sehen fügst du die Datei wie beschrieben in deinen Plugin-Ordner, startest Vectorworks neu und gehst dann unter Extras - 'Plug-ins' - 'Plug-in-Manager' auf 'Eigene Plugins' und suchst nach dem Dateinamen. Mit einem Klick auf 'Code...' kannst du nun das Script einsehen. 2 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
inderfab Geschrieben 21. Juli 2020 Teilen Geschrieben 21. Juli 2020 (bearbeitet) if vs.FSActLayer() != None: #Wenn etwas selektiert ist h = vs.FSActLayer() #Handle zum erste aktiven Objekt auf der Ebene volumen = vs.ObjVolume(h) #Volumenmass wird variabel "volumen" vs.SetRecord(h, 'VolumenDS') #Datenbank zuweisen. An Objekt h die DB "VolumenDS" vs.SetRField(h, 'VolumenDS', 'Volumen', volumen) #Volumen in DB schreiben. An Objekt h, in die DB "VolumenDS", ins Feld "Volumen", die Variabel "volumen" vs.CallToolByName('Data Tag Tool') #Datenstempelwerkzeug aktivieren else: #wenn nichts ausgewählt ist vs.AlrtDialog('Kein gültiges Objekt aktiviert') #Felermeldung vor 3 Stunden schrieb Rumdidum: Jedoch verstehe ich die Datei "vst" nicht. Zu Beginn kannst du das Werkzeug Tool auch noch weglassen. Einfach beim Zubehörmanager unter Scripts eine neue Palette (Ordner) und darin ein neues Skript anlegen. Dann kannst du dort in VectorScript oder Phyton dein Programm schreiben. Als Test kannst du den Code oberhalb dieser Zeilen ins Feld kopieren. Wenn du nun aus dem Editor rausgehst, kannst du den Ablauf via Skriptpalette starten. Die Funktion ist genau die selbe wie jene im Werkzeug. Beim Code habe ich dir alle Zeile kommentiert zum nachvollziehen. Das es funktioniert muss die Datenbank VolumenDS im Dokument existieren, die ist im Post zu beginn in der VWX-Datei dabei. Du könntest aber auch versuchen diese direkt im Skript zu erzeugen, dafür gäbe es einen Befehl, den du auf der Function Reference Page finden kannst. An einer Übung lernt man am schnellsten. Melde dich doch bei Fragen. vor 3 Stunden schrieb Rumdidum: Vielleicht hast du oder jemand anderes hier im Forum einen Tipp wie ich am besten ins Programmieren in Vectorworks einsteigen kann? Ich habe vor 3 Monaten auch noch nie ein Programm geschrieben. Bin also auch nicht gerade ein Experte auf dem Gebiet und habe diesen Post gerade zum Üben genutzt. Habe mir das Buch "EINSTIEG IN PYTHON" von Thomas Theis gekauft, dieses durchgearbeitet und habe mich erst danach an VW versucht. Zumindest für die Basics gäbe es aber auch im Internet gute Anleitungen, mit denen man sicherlich auch zum Ziel kommt. Wenn man die mal verstanden hat, kommt man auch bei Vectorworks schnell rein. Da muss man sich einfach die richtigen Befehle zusammen suchen, was schnell mal mühsam wird. Bearbeitet 21. Juli 2020 von inderfab 3 VWX23 SP7 | Architektur | MacOS 13.5 | M2 Max Link zu diesem Kommentar
Manuel Roth Geschrieben 21. Juli 2020 Teilen Geschrieben 21. Juli 2020 Thomas Theis habe ich auch von VBA (für Excel) in sehr guter Erinnerung. Als Einstieg ins Python von VW bin aber nicht den klassischen Weg via Python lernen und erst dann VW-PlugIns schreiben gegangen sondern habe zuerst mit Marionette begonnen. Dort kannst du ohne Code zu schreiben die Prinzipien verstehen, wie programmieren funktioniert. Du gewinnst je nach Projekt, dass du gerne umsetzen möchtest auch tiefere Einblicke in die Funktionsweise von VW. Als ich irgenwann an einen Punkt gekommen bin, an dem die Default-Nodes nicht mehr weiterreichten, (Was ziemlich lange gedauert hat.) habe ich begonnen eigene Nodes zu erstellen und in meine Netzwerke einzubauen. Erst dann habe ich mit den PlugIns begonnen. Die Befehle, die ich dazu verwende kommen meist aus einem Node und wenns dort nichts gibt aus der Function Reference. So bin ich von Marionette langsam ins Python abgerutscht und habe mir die Basics dazu autodidaktisch per trial and error angeeignet. (Fragt mich nicht, wie manches mal ich einen Doppelpunkt oder so was vergessen habe. Ich zähle nicht. ) Wahrscheinlich hat dabei geholfen, dass ich vorher in VBA bereits Erfahrungen sammeln konnte. Ich bin aber der Meinung, dass dieser Weg auch ohne Vorkentnisse machbar sein sollte. Diese Vorgehensweise hat den Vorteil, dass du recht intuitiv ans programmieren herankommst und natürlich in VW schnell brauchbare Ergebnisse erziehlen kannst. Ich würde mir allerdings nicht ohne weiteres zutrauen, ein Programm ausserhalb von VW zu schreiben. Freundliche Grüsse Manuel Roth _________________________________________________ Vectorworks 2022 SP3 | Architektur | Windows 10 Link zu diesem Kommentar
nfedl Geschrieben 22. Juli 2020 Teilen Geschrieben 22. Juli 2020 Am 10.7.2020 um 20:39 schrieb mail@pb-schilling.de: Hallo, ich möchte für Vollkörper das Volumen über einen Datenstempel ausgeben. Leider ist die Funktion "Volumen" in den Stempel-Layout-Daten (Drop-Down-Menü) nicht verfügbar. Wie kann ich das Volumen dennoch erhalten? Ich hatte gedacht, ich könnte evtl. #VOLUME# als Funktion im Datenfeld verwenden, was allerdings nicht funktioniert. Ziehe immer wieder meinen Hut vor den Kollegen die da ein Script programmieren können.... Nur zur Info Volumen gibt es auch unter: Menü: Bearbeiten, 3D Informationen 1 Nikolaus Fedl VW 2024 Designer, Win 11, i9, 32GB, www.fedl.eu; www.gartenplanung-fedl.at; www.freiraumarchitektur.at; www.schattenbild.at; www.gartenarchitekten.at Link zu diesem Kommentar
Rumdidum Geschrieben 23. Juli 2020 Teilen Geschrieben 23. Juli 2020 Hallo zusammen. Am 21.7.2020 um 17:15 schrieb herbieherb: Die .vst-Datei ist eine Verpackung für das Script, welche Metadaten dazu enthält, z.B. Infos dazu, wie das Script ausgeführt werden soll, welches Icon das Plug-in haben soll etc. Um das Script zu sehen fügst du die Datei wie beschrieben in deinen Plugin-Ordner, startest Vectorworks neu und gehst dann unter Extras - 'Plug-ins' - 'Plug-in-Manager' auf 'Eigene Plugins' und suchst nach dem Dateinamen. Mit einem Klick auf 'Code...' kannst du nun das Script einsehen. Ich hab zuerst gedacht meine Frage wurde nicht richtig verstanden, da ich annahm, dass ein externes Programm zum einsehen dieser Dateien notwendig ist. Zum Glück hab ich weiterhin rumexperementiert und es schließlich verstanden :). Danke dafür. Am 21.7.2020 um 20:22 schrieb inderfab: Zu Beginn kannst du das Werkzeug Tool auch noch weglassen. Einfach beim Zubehörmanager unter Scripts eine neue Palette (Ordner) und darin ein neues Skript anlegen. Dann kannst du dort in VectorScript oder Phyton dein Programm schreiben. Als Test kannst du den Code oberhalb dieser Zeilen ins Feld kopieren. Wenn du nun aus dem Editor rausgehst, kannst du den Ablauf via Skriptpalette starten. Die Funktion ist genau die selbe wie jene im Werkzeug. Beim Code habe ich dir alle Zeile kommentiert zum nachvollziehen. Das es funktioniert muss die Datenbank VolumenDS im Dokument existieren, die ist im Post zu beginn in der VWX-Datei dabei. Du könntest aber auch versuchen diese direkt im Skript zu erzeugen, dafür gäbe es einen Befehl, den du auf der Function Reference Page finden kannst. An einer Übung lernt man am schnellsten. Melde dich doch bei Fragen. Ich habe vor 3 Monaten auch noch nie ein Programm geschrieben. Bin also auch nicht gerade ein Experte auf dem Gebiet und habe diesen Post gerade zum Üben genutzt. Habe mir das Buch "EINSTIEG IN PYTHON" von Thomas Theis gekauft, dieses durchgearbeitet und habe mich erst danach an VW versucht. Zumindest für die Basics gäbe es aber auch im Internet gute Anleitungen, mit denen man sicherlich auch zum Ziel kommt. Wenn man die mal verstanden hat, kommt man auch bei Vectorworks schnell rein. Da muss man sich einfach die richtigen Befehle zusammen suchen, was schnell mal mühsam wird. Danke für die ausführliche Beschreibung deiner Codezeilen. Mittlerweile hab ich schon erfolgreich einen Klon erstellt und konnte meiner Meinung nach so ziemlich alle zusammenhänge nachvollziehen . Und genau diese ganzen Tipps habe ich auch gebraucht weil ich einfach nicht wusste wie ich meine kürzlich erworbenen Python Kenntnisse in Vectorworks einsetzen soll. Und auch diese Funktionen (Klassen) wie zb. "vs.FSActLayer" habe ich nicht verstanden da die Beschreibungen auf der Vectorworks developer Webseite sehr knapp gehalten sind. Es führt wohl kein weg daran vorbei einfach die ganzen Funktionen auszuprobieren ganz nach dem Motto "Try and Error". Hab übrigens auch erst vor ca. 2 Monaten mit Python angefangen weil ich dadurch viel mehr Möglichkeiten sah. Mein Buch dazu war "Python Crash course second Edition" von "Starch Press". Davor hatte ich eine ganz schlechte erfahrung mit dem Buch von "Python 3 von Johannes Ernesti, Peter Kaiser" (seeehr trocken). Am 21.7.2020 um 22:19 schrieb Manuel Roth: Thomas Theis habe ich auch von VBA (für Excel) in sehr guter Erinnerung. Als Einstieg ins Python von VW bin aber nicht den klassischen Weg via Python lernen und erst dann VW-PlugIns schreiben gegangen sondern habe zuerst mit Marionette begonnen. Dort kannst du ohne Code zu schreiben die Prinzipien verstehen, wie programmieren funktioniert. Du gewinnst je nach Projekt, dass du gerne umsetzen möchtest auch tiefere Einblicke in die Funktionsweise von VW. Als ich irgenwann an einen Punkt gekommen bin, an dem die Default-Nodes nicht mehr weiterreichten, (Was ziemlich lange gedauert hat.) habe ich begonnen eigene Nodes zu erstellen und in meine Netzwerke einzubauen. Erst dann habe ich mit den PlugIns begonnen. Die Befehle, die ich dazu verwende kommen meist aus einem Node und wenns dort nichts gibt aus der Function Reference. So bin ich von Marionette langsam ins Python abgerutscht und habe mir die Basics dazu autodidaktisch per trial and error angeeignet. (Fragt mich nicht, wie manches mal ich einen Doppelpunkt oder so was vergessen habe. Ich zähle nicht. ) Wahrscheinlich hat dabei geholfen, dass ich vorher in VBA bereits Erfahrungen sammeln konnte. Ich bin aber der Meinung, dass dieser Weg auch ohne Vorkentnisse machbar sein sollte. Diese Vorgehensweise hat den Vorteil, dass du recht intuitiv ans programmieren herankommst und natürlich in VW schnell brauchbare Ergebnisse erziehlen kannst. Ich würde mir allerdings nicht ohne weiteres zutrauen, ein Programm ausserhalb von VW zu schreiben. Hallo Manuel, Ja ich habe auch zuerst versucht mit Marionette einzusteigen. Jedoch hab ich mir dann gedacht ich lerne lieber gleich eine richtige Programmiersprache die ich dann auch in anderen Bereichen und Programmen nutzen kann. Jetzt wo ich aber Grundkenntnisse für Programmieren besitze (auch Logik fürs Programmieren) würde ich tatsächlich wieder mit nodes rumexperimentieren wenn zeit vorhanden ist. Link zu diesem Kommentar
herbieherb Geschrieben 23. Juli 2020 Teilen Geschrieben 23. Juli 2020 FSActLayer: In Vectorworks sind alle Objekte in Form einer grossen Baumstruktur gespeichert. Wobei z.B. die Konstruktionsebenen Äste direkt am Stamm sind, Gruppen sind äussere Äste und einzelne Objekte noch weiter aussen, deren Datenbanken noch weiter... Neu gezeichnete Objekte werden dann einfach an den entsprechenden Ast unten dran gehängt. FSActLayer gibt dir den Handle (d.h. die Adresse des Astes) vom zuerst gezeicheten Objekt von denjenigen, die auf dem aktiven Layer und gerade selektiert sind. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
isildur Geschrieben 15. Oktober 2020 Teilen Geschrieben 15. Oktober 2020 Hallo allerseits weiss jemand evtl. ob und wie ich diesen Wert vom Volume DS rüber ins IfcSpace-BaseQuantities-Volume übertragen kann? Danke im Voraus! sehr toller Script übrigens! Link zu diesem Kommentar
mdreier Geschrieben 15. Oktober 2020 Teilen Geschrieben 15. Oktober 2020 Das sollte doch über den Datenmanger möglich sein...? Win 10 / Vectorworks 2019 SP6 R1 - Architektur / Vectorworks 2020 SP4 R1 - Architektur Link zu diesem Kommentar
isildur Geschrieben 15. Oktober 2020 Teilen Geschrieben 15. Oktober 2020 Danke, ich habe das versucht. Leider bekomme ich das nicht hin. Versuche es jetzt noch über support SS. Link zu diesem Kommentar
Stephan Mönninghoff Geschrieben 15. Oktober 2020 Teilen Geschrieben 15. Oktober 2020 Ich hab's mit Marionette hinbekommen. Allerdings wird der Stempel wieder gelöscht, sobald du irgendwas mit dem Solid anstellst (Push/Pull Abschrägen etc.). Ich vermute, es liegt dran, dass das Objekt dann nicht mehr weiß, wer es ist. Ich häng dir das hier gleich dran, muss noch was probieren. Link zu diesem Kommentar
Stephan Mönninghoff Geschrieben 15. Oktober 2020 Teilen Geschrieben 15. Oktober 2020 Hier der Stempel. Ich weiß auch nicht, warum die Funktion 'Volumen' nicht direkt unterstützt wird und man solche Verrenkungen machen muss aber ich frag das mal nach. Der Stempel hat ein eingebettetes Marionette-Objekt, was das Volumen des gestempelten Objekts erfolgreich abfragt und ausgibt. Bei Wänden und intelligenten Objekten ist der Stempel persistent, bei einfachen Solids ('Vollkörper') nicht. Nach dem Umformen ist der Stempel weg. Muss man dann neu stempeln. Volume v2020.vwx 3 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