Jump to content

Empfohlene Beiträge

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.

Datenstempel1.jpg

Diesen Beitrag teilen


Link zum Beitrag

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ß

Diesen Beitrag teilen


Link zum Beitrag
Geschrieben (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

1624061908_Bildschirmfoto2020-07-11um10_25_14.png.ed819ec432c09a5cafe3e8cebddf6035.png893479712_Bildschirmfoto2020-07-11um10_26_11.png.1fce449b5bb118e134e3f08bb591e136.png

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 von inderfab

VW20 SP4A | Architektur | MacOS 13.6 | iMac17 | 3.4 GHz i5 | Radeon Pro 570 4096 MB

Diesen Beitrag teilen


Link zum Beitrag

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

Diesen Beitrag teilen


Link zum Beitrag

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"

Werkzeuglogo.png.3620119f25f1d4e5f75325a90d74ebdd.png


VW20 SP4A | Architektur | MacOS 13.6 | iMac17 | 3.4 GHz i5 | Radeon Pro 570 4096 MB

Diesen Beitrag teilen


Link zum Beitrag

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.

Diesen Beitrag teilen


Link zum Beitrag
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
 

 

Diesen Beitrag teilen


Link zum Beitrag

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.


Vectorworks 2020 - Architektur - Win 10

Diesen Beitrag teilen


Link zum Beitrag
Geschrieben (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 von inderfab

VW20 SP4A | Architektur | MacOS 13.6 | iMac17 | 3.4 GHz i5 | Radeon Pro 570 4096 MB

Diesen Beitrag teilen


Link zum Beitrag

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

___________________________________________________
VW20 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
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.

Datenstempel1.jpg

 

 

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


Nikolaus Fedl

VW 2020 SP5 R1, OS Mojave, iMac, 4 GHz Intel Core i7, 32 GB, AMD Radeon R9 M295X 4096 MB, 8TB Fusion Drive. www.fedl.eu; www.gartenplanung-fedl.at; www.freiraumarchitektur.at; www.schattenbild.at; www.gartenarchitekten.at

Diesen Beitrag teilen


Link zum Beitrag

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.


 

Diesen Beitrag teilen


Link zum Beitrag

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 2020 - Architektur - Win 10

Diesen Beitrag teilen


Link zum Beitrag

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!

 

 

Diesen Beitrag teilen


Link zum Beitrag

Das sollte doch über den Datenmanger möglich sein...?


Win 10 / Vectorworks 2019 SP6 R1 - Architektur / Vectorworks 2020 SP4 R1 - Architektur

Diesen Beitrag teilen


Link zum Beitrag

Danke, ich habe das versucht. Leider bekomme ich das nicht hin.

Versuche es jetzt noch über support SS.

Diesen Beitrag teilen


Link zum Beitrag

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.

image.thumb.png.8ffec87f471fbe468e651cdc745ee309.png

Diesen Beitrag teilen


Link zum Beitrag

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

Diesen Beitrag teilen


Link zum Beitrag

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Forenstatistik

    • Themen insgesamt
      14.997
    • Beiträge insgesamt
      72.721
×
×
  • Neu erstellen...