Entwicklungsumgebung für Vectorworks Python Plug-ins.
Plug-ins für Vectorworks auf Basis der Programmiersprache Python können mit Hilfe des Script-Editors direkt in Vectorworks entwickelt werden. Abgesehen von Syntax-Highlighting, fehlen jedoch die meisten Funktionen die eine richtige Entwicklungsumgebung mit sich bringt. Zusätzlich ist die länge des Codes auf 32000 Zeichen begrenzt, ein Limit welches bei größeren Plug-ins schnell erreicht werden kann. Mit Vectorworks 2022 wurde der Script-Editor deutlich verbessert. Neben einer Auto-Vervollständigen können nun auch Leerzeichen, Tabulatoren und Zeilenumbrüche dargestellt werden. Klassische Textwerkzeuge wie rückgängig und Suchen und Ersetzen sind nun auch an Bord. Die Fenster zum einsetzen von Prozeduren und Kriterien sind auch überarbeitet worden. Wie bereits erwähnt, ist jedoch das Zeichenlimit noch vorhanden.
Als externe Entwicklungsumgebung kommt hier Visual Studio Code (VS Code) von Microsoft zum Einsatz. Andere Programme (IDE) könnten natürlich auch verwendet werden, allerdings funktioniert dort dann der Debugger anders.
Die in dieser Anleitung beschriebenen Schritte funktionieren unter Windows und MacOS nahezu identisch. Das Tool VSMEdit und das Beispielprojekt MyTool sind im Anhang von diesem Post zu finden.
Inhalt
Visual Studio Code
Einrichten
VS Code Projekt
Beispielprojekt: MyTool
Projektaufbau
Vectorworks
Module main.py
Debugger
Plug-in Name ändern: VSMEdit
Plug-in packen/Veröffentlichen
VWR-Datei
______________________________
Visual Studio Code
Einrichten
VS Code ist eine kostenlose, Open-Source Entwicklungsumgebung (IDE), welche für Windows und Mac sowie weitere Plattformen verfügbar ist. VS Code kann durch Erweiterungen für viele Programmiersprachen und Einsätze angepasst werden. Für die Python Entwicklung wird die Erweiterung Python von Microsoft benötigt.
Die Erweiterung Pythoninstallieren: Links auf Erweiterungen und im Suchfeldms-pythoneingeben, beim Eintrag "Python" dann auf Installieren klicken.
VS Code Projekt
Ein Projekt ist in VS Code nichts anderes als ein Ordner mit den Source-Code Dateien. Nur der versteckte Ordner .vscode kommt zusätzlich hinzu.
Beispielprojekt: MyTool
Für einige Funktionen wird entsprechender Code im Plug-in selbst benötigt. Im Beispielprojekt MyTool, sind alle Grundlegenden Funktionen bereits integriert und kann als Basis für bestehende oder auch zukünftige Plugins verwendet werden. Der Code selbst kann in jeglicher Form geändert und genutzt werden.
Projektaufbau
Das Projekt bzw. der Ordner ist wie folgt aufgebaut und beinhaltet Code der zum einrichten des Debuggers benötigt wird. Außerdem kann, die während der Laufzeit ausgegebenen Text in einer Protokolldatei und in Vectorworks ausgegeben werden.
MyTool\ VSCode Projektordner.
+- resources\ Zusätzliche Dateien. Beinhaltet die Vorlage-Datei für das final Plug-in.
+- src\ Source-Code.
+- common\ Python-Package cw.common.
| +- debug.py Richtet den den Debugger ein.
| +- logging.py Erlaub die Protokollierung in eine Datei.
| +- vw.py Grundlegende Funktionen für Vectorworks.
| +- vwr.py Ermöglich den Zugriff auf die VWR-Datei.
+- cw\mytool\ Python-Package mytool.
+- main.py Hauptmodule und Einstiegspunkt des Plug-ins.
Vectorworks
Um den Code testen bzw. ausführen zu können, muss zuvor Vectorworks entsprechen eingerichtet werden. Die Plugin-Datei (.vsm) muss in den Ordner Plug-ins von Vectorworks und der Pfad zum Source Code muss angegeben werden. Die VWR-Datei (.vwr)ist optional und dient nur als Beispiel wie Resourcen (Texte, Bilder, etc.) mitgeliefert werden können. Wenn keine weiteren Resource benötigt werden, können die Texte einfach direkt in die Plugin-Datei integriert werden. Dann benötigt es keine zusätzliche VWR-Datei.
Hinweis: In Vectorworks gibt es zwei Ordner mit dem Namen Plug-ins. Der eine ist im Installationspfad und der andere im Benutzerordner zu finden. Zum entwickeln und auch für andere Plug-ins die nicht zum Standard-Lieferumfang von Vectorworks gehören, immer nur den Ordner Plug-Ins im Benutzerordner nutzen. (Pfad zum Benutzerordner siehe Bereich Dateiprotokollierung weiter unten.)
Die drei Dateien aus dem Ordner resources im Projektordner(MyTool\resources\)in den Ordner Plug-ins von Vectorworks kopieren. (Auf die Bedeutung der XML-Datei kommen wir später.)
Damit Vectorworks das Plug-in lädt, muss Vectorworks neugestartet werden oder zuvor beendet worden sein.
Der Pfad zum Source-Code wird über die Script-Einstellungen festgelegt. Zu finden über Extras > Plug-ins > Script-Einstellungen...
Über Neu den Ordner angeben, welcher den Source-Code enthält. In diesem Fall ist es der Ordner src in unserem Projektordner.
Zuletzt muss der Menübefehl in die Arbeitsumgebung von Vectorworks eingebaut werden. Der Menüeintrag ist unter dem Namen Mein Menübefehl… in der Kategorie Zusatzfunktionen zu finden.
Das Plug-in bzw. der Menübefehl kann jetzt genutzt bzw. ausgeführt werden.
Module main.py
Das Pythonmodule main.py im Package cw.mytool ist der Haupteinstiegspunkt für das Plug-ins bzw. den Menübefehl. In dieser Datei müssen neben dem einfügen des eigenen Codes noch einige Änderungen vorgenommen bzw. beachtet werden. Der eigene Code kann in die Methode _main_() eingefügt werden.
def _main_():# < Main plugin code goes here >#END def
Python-Package
Der Name des Python-Packagecw.mytool bzw. Ordnerpfads (cw\mytool\) kann natürlich beliebig geändert werden und sollte dem Namen des zu entwickelnden Plug-ins bzw. des Autors angepasst werden. I.d.R. wird dabei folgendes Schema benutzt:
<KürzelAutor>.<NamePlug-in>
Es können natürlich weitere Python-Packages erstellt werden.
Wird der Name geändert z.B. zu vwi.sometool muss diese neben allen Stellen im Code auch an einer weiteren Stelle angepasst werden. In der Plugin-Datei (.VSM) befindet sich ein kurzer Code abschnitt, der den externen Code startet. Hier muss natürlich die Import Anweisung angepasst werden. In unserem Beispiel wird aus der Import-Anweisung, ...
from cw.mytool import main
... die folgenden Import-Anweisung:
from vwi.sometool import main
Die Plugin-Datei kann über den Plug-in-Manager, zu finden über Extras > Plug-ins > Plug-in-Manager... in Vectorworks angepasst werden. Hier einfach das entsprechende Plug-in auswählen (MyToolCW) und auf Code... klicken.
Protokollausgabe in Vectorworks
Wenn Informationen in Vectorworks über die Funktion logging.log() oder print() ausgegeben werden, können diese direkt in Vectorworks angezeigt werden. Hierzu muss lediglich in den Programm-Einstellungen, zu finden über Extras > Programm Einstellungen > Programm... in Vectorworks die Option Scripts im Debug-Modus ausführen in der Rubrik Diverses eingeschaltet werden. Bei jedem ausführen des Plug-Ins kommt nun das Fenster welches Script-Fehler meldet, auch wenn keine Fehler aufgetreten sind.
Metainformationen
Im oberen Bereich befinden sich die Metainformationen, wie Name und Versionsnummer. Diese müssen entsprechend angepasst werden.
Die Variable sys_app_name definiert ein Anzeigename der in der Protokolldatei Verwendungfindet.
Mit der Variable sys_app_name_universalwird der sogenannte Universal-Name definiert. Dieser wird vor allem für den Zugriff auf die VWR-Datei benötigt.
Achtung: Der Universal-Name MUSS mit dem Namen der Plug-in-Datei und VWR-Datei (ohne Dateiendung) identisch sein. (Auf Groß- und Kleinschreibung achten!)
sys_app_name ='Mein Menübefehl'# Display name (Use in dialog title, etc.)
sys_app_name_universal ='MyToolCW'# Universal name (For vwr usage)
Alle weiteren Variablen definieren die Version des Plug-ins und ein Copyright Hinweis. Diese Informationen finden nur in der Protokolldatei Verwendung.
Die Variablen können natürlich frei geändert werden und auch an weiteren Stellen genutzt werden.
Mindestanforderungen
In diesem Beispielcode ist eine Möglichkeit integriert, Mindestanforderungen für Vectorworks zu definieren. Vor allem hilfreich, wenn Funktionen genutzt werden die es vorher nicht gab. Es kann die Hauptversionsnummer von Vectorworks und die min. Buildnummer von Vectorworks angegeben werden. Wird eine ältere Version von Vectorworks genutzt, weißt eine Meldung darauf hin. Mit sys_requirements_routines kann eine Liste von Funktionen definiert werden, die im Module vs (Vectorworks Python Module) vorhanden sein müssen. Wird eine oder mehrere Funktionen nicht gefunden erscheint ebenfalls eine Meldung.
# Min required major version number of VW to run
sys_requirements_version = 20 # VW2015
# Min required build number of VW to run
sys_requirements_buildNum = 271502 # VW2015 SP4
# A list of functions from the vs module wich are essential for this plugin.
sys_requirements_routines = [] # e.g. [ 'IFC_DefPsetBegin', ... ]
Dateiprotokollierung
Alle Texte und Informationen die mit Hife der Funktion logging.log() ausgegeben werden, können in eine Datei umgeleitet werden.
Um die Dateiprotokollierung zu aktivieren, einfach beim Klick auf den Menüeintrag die Shift- (Umschalt-)Taste gedrückt halten.
Eine Meldung bestätigt, wenn ein Protokoll erstellt wird. Die Datei selbst ist dann im Benutzerorder von Vectorworks zu finden.
Benutzerordner Windows (bspw. für Vectorworks 2023)
Ist Vectorworks und VS Code entsprechend eingerichtet (siehe oben), kann der Debugger genutzt werden. Mit dem Code im Module debug im Python-Package cw.common, werden alle nötigen Schritte auf Seiten von Vectorworks vorgenommen. Der Debugger wird wie folgt eingerichtet:
Den Projektordner MyTool in VS Code öffnen (Datei > Ordner öffnen...)
In Visual Studio Code ein oder mehrere sogenannte Breakpoints definieren.
In Vectorworks den Menübefehl des Plug-ins ausführen.
Beim ersten mal muss das externe Python-Modul ptvsd in Vectorworks installiert werden. Es übernimmt die Kommunikation zwischen Vectorworks und VS Code. Ein entsprechende Meldung erscheint.
Wenn die Nachfolgenden Meldung erscheint, ist der Debugger eingerichtet und kann verwendet werden. Wichtig: Diese Meldung noch nicht bestätigen! (Falls doch schon mit OK bestätigt wurde, bleiben für Schritt 6. 10 Sekunden um den Debugger doch noch zu verbinden. Andernfalls kommt ein Fehler, dann einfach nochmal bei Schritt 3. beginnen.)
Zurück zu VS Code wechseln: Rechts zum Bereich Debuggen wechseln und oben die Konfiguration Python: Remote Attach auswählen und mit dem grünen Pfeil starten.
Nun in Vectorworks die Meldung mit OK bestätigen.
In VS Code sollte jetzt an der Stelle des zuvor gesetzten Breakpoints die Ausführung gestoppt worden sein. Hier kann jetzt mit den Schaltflächen oben, der Code Schrittweise durchlaufen werden.
Plug-in Name ändern: VSMEdit
An dieser Stelle ist sicherlich schon aufgefallen, das der Name des Menübefehls in Vectorworks nicht dem Namen der Datei entspricht. Dies liegt daran, das in Vectorworks alle Plug-ins immer zwei Namen haben. Den Universal-Name und ein Anzeige-Name. Aktuell ist es in Vectorworks von Haus aus nicht möglich den Anzeige-Namen getrennt vom Universal-Name zu setzen. Hier kommt das Tool VSMEdit zum Einsatz. (Im Anhang von diesem Post zu finden.)
Es handelt sich hierbei um ein Consolen/Terminal Programm (Windows & MacOS) welches die Plugin-Datei (.vsm) direkt bearbeiten kann und wie folgt eingesetzt wird. Folgende Befehle in der Console unter Windows (cmd) oder im Terminal unter MacOS eingeben:
Die Namen der Attribute können auch abgekürzt werden. Bspw. Loc anstatt LocalizedName. Eine Liste der Attribute die gebrufen oder geändert werden können kann wie folgt abgerufen werden:
VSMEdit -a
Plugin packen/veröffentlichen
Im Moment besteht unser Plug-in aus mehreren Dateien. Im Idealfall, möchten wir natürlich so wenige Dateien wie möglich. Vectorworks bringt für diesen Fall, alles mit was man braucht und so kommt nun hier die XML-Datei zum Einsatz, welche zuvor in den Ordner Plug-ins kopiert worden ist. Die XML Ist wie folgt aufgebaut und gibt an welche Ordner in die Plug-In Datei integriert werden sollen.
Hinweis: Es können nur Ordner die Source-Code enthalten, integriert werden. Andere Datei wie Bilder o.ä. müssen außerhalb bleiben.
Den Ordner cw aus dem Ordner src in unserem Projektordner in den Ordner Plug-ins kopieren, wo sich auch die Plugin-Datei (.vsm) und die oben genannte XML-Datei befindet. Wichtig: Die XML-Datei muss den gleichen Namen haben wie die Plugin-Datei!
In Vectorworks den Plug-in-Manager aufrufen. (Extras > Plug-ins > Plug-in-Manager...)
Die Tasten STRG + ALT + SHIFT(Umschalt) gedrückt halten (MacOS: CMD + ALT + SHIFT + CAPSLOCK) und auf Code... klicken. Eine Meldung fragt, ob das Plug-in wirklich geschütz werden soll. Achtung: Dies kann nicht Rückgang gemacht werden! Stellen Sie sicher, das Sie vom Code als auch der Plugin-Datei (die noch leer ist) eine Kopie haben.
Nun ist das Plug-In geschützt und der Code aus dem Ordner cw wurde integriert. Das Plugin wurde jetzt automatisch in die Rubrik Plug-ins von Drittherstellern verschoben.
Im Ordner Plug-ins kann nun den Ordner cw wieder gelöscht werden. Vectorworks muss nun neu gestartet werden.
Wenn das Plug-in danach richtig funktioniert und auch die Plugin-Datei größer geworden ist, war der Vorgang erfolgreich.
Veröffentlichen
Um das Plug-in an andere weitergeben zu können, einfach die Plugin-Datei und die VWR-Datei in ein ZIP-Archiv, ohne Unterordner packen.
In Vectorworks kann dann das ZIP-Archiv einfach über den Plug-in-Manager in der Rubrik Plug-ins von Drittherstellern über Installieren... ausgewählt werden und so das Plug-in installiert werden.
VWR-Datei
Eine Beschreibung zur VWR-Datei und wie sie verwendet wird, ist hier zu finden:
Haftungsausschluss: Alle Informationen und Dateien in diesem Beitrag sind frei verfügbar und ohne jegliche Garantie.
Es ist gestattet, die Inhalte zu übersetzen und auf anderen Plattformen zu verbreiten.
______________________________
Version 1.2
- Update sample code "MyTool" to better work with current Vectorworks version
- Added explicit "unlicense" notice
Version 1.1
- Update VSMEdit to also work with Vectorworks 2022 newer versions of Vectorworks.
Frage
Oliver Daus
Entwicklungsumgebung für Vectorworks Python Plug-ins.
Plug-ins für Vectorworks auf Basis der Programmiersprache Python können mit Hilfe des Script-Editors direkt in Vectorworks entwickelt werden.
Abgesehen von Syntax-Highlighting, fehlen jedoch die meisten Funktionen die eine richtige Entwicklungsumgebung mit sich bringt.Zusätzlich ist die länge des Codes auf 32000 Zeichen begrenzt, ein Limit welches bei größeren Plug-ins schnell erreicht werden kann. Mit Vectorworks 2022 wurde der Script-Editor deutlich verbessert. Neben einer Auto-Vervollständigen können nun auch Leerzeichen, Tabulatoren und Zeilenumbrüche dargestellt werden. Klassische Textwerkzeuge wie rückgängig und Suchen und Ersetzen sind nun auch an Bord. Die Fenster zum einsetzen von Prozeduren und Kriterien sind auch überarbeitet worden. Wie bereits erwähnt, ist jedoch das Zeichenlimit noch vorhanden.Als externe Entwicklungsumgebung kommt hier Visual Studio Code (VS Code) von Microsoft zum Einsatz. Andere Programme (IDE) könnten natürlich auch verwendet werden, allerdings funktioniert dort dann der Debugger anders.
Die in dieser Anleitung beschriebenen Schritte funktionieren unter Windows und MacOS nahezu identisch. Das Tool VSMEdit und das Beispielprojekt MyTool sind im Anhang von diesem Post zu finden.
Inhalt
______________________________
Visual Studio Code
Einrichten
VS Code ist eine kostenlose, Open-Source Entwicklungsumgebung (IDE), welche für Windows und Mac sowie weitere Plattformen verfügbar ist. VS Code kann durch Erweiterungen für viele Programmiersprachen und Einsätze angepasst werden. Für die Python Entwicklung wird die Erweiterung Python von Microsoft benötigt.
Visual Studio Code herunterladen
VS Code Projekt
Ein Projekt ist in VS Code nichts anderes als ein Ordner mit den Source-Code Dateien. Nur der versteckte Ordner .vscode kommt zusätzlich hinzu.
Beispielprojekt: MyTool
Für einige Funktionen wird entsprechender Code im Plug-in selbst benötigt. Im Beispielprojekt MyTool, sind alle Grundlegenden Funktionen bereits integriert und kann als Basis für bestehende oder auch zukünftige Plugins verwendet werden. Der Code selbst kann in jeglicher Form geändert und genutzt werden.
Projektaufbau
Das Projekt bzw. der Ordner ist wie folgt aufgebaut und beinhaltet Code der zum einrichten des Debuggers benötigt wird. Außerdem kann, die während der Laufzeit ausgegebenen Text in einer Protokolldatei und in Vectorworks ausgegeben werden.
Vectorworks
Um den Code testen bzw. ausführen zu können, muss zuvor Vectorworks entsprechen eingerichtet werden. Die Plugin-Datei (.vsm) muss in den Ordner Plug-ins von Vectorworks und der Pfad zum Source Code muss angegeben werden. Die VWR-Datei (.vwr) ist optional und dient nur als Beispiel wie Resourcen (Texte, Bilder, etc.) mitgeliefert werden können. Wenn keine weiteren Resource benötigt werden, können die Texte einfach direkt in die Plugin-Datei integriert werden. Dann benötigt es keine zusätzliche VWR-Datei.
Hinweis: In Vectorworks gibt es zwei Ordner mit dem Namen Plug-ins. Der eine ist im Installationspfad und der andere im Benutzerordner zu finden. Zum entwickeln und auch für andere Plug-ins die nicht zum Standard-Lieferumfang von Vectorworks gehören, immer nur den Ordner Plug-Ins im Benutzerordner nutzen. (Pfad zum Benutzerordner siehe Bereich Dateiprotokollierung weiter unten.)
Das Plug-in bzw. der Menübefehl kann jetzt genutzt bzw. ausgeführt werden.
Module main.py
Das Pythonmodule main.py im Package cw.mytool ist der Haupteinstiegspunkt für das Plug-ins bzw. den Menübefehl. In dieser Datei müssen neben dem einfügen des eigenen Codes noch einige Änderungen vorgenommen bzw. beachtet werden. Der eigene Code kann in die Methode _main_() eingefügt werden.
Python-Package
Der Name des Python-Package cw.mytool bzw. Ordnerpfads (cw\mytool\) kann natürlich beliebig geändert werden und sollte dem Namen des zu entwickelnden Plug-ins bzw. des Autors angepasst werden. I.d.R. wird dabei folgendes Schema benutzt:
Es können natürlich weitere Python-Packages erstellt werden.
Wird der Name geändert z.B. zu vwi.sometool muss diese neben allen Stellen im Code auch an einer weiteren Stelle angepasst werden. In der Plugin-Datei (.VSM) befindet sich ein kurzer Code abschnitt, der den externen Code startet. Hier muss natürlich die Import Anweisung angepasst werden. In unserem Beispiel wird aus der Import-Anweisung, ...
... die folgenden Import-Anweisung:
Die Plugin-Datei kann über den Plug-in-Manager, zu finden über Extras > Plug-ins > Plug-in-Manager... in Vectorworks angepasst werden. Hier einfach das entsprechende Plug-in auswählen (MyToolCW) und auf Code... klicken.
Protokollausgabe in Vectorworks
Wenn Informationen in Vectorworks über die Funktion logging.log() oder print() ausgegeben werden, können diese direkt in Vectorworks angezeigt werden. Hierzu muss lediglich in den Programm-Einstellungen, zu finden über Extras > Programm Einstellungen > Programm... in Vectorworks die Option Scripts im Debug-Modus ausführen in der Rubrik Diverses eingeschaltet werden. Bei jedem ausführen des Plug-Ins kommt nun das Fenster welches Script-Fehler meldet, auch wenn keine Fehler aufgetreten sind.
Metainformationen
Im oberen Bereich befinden sich die Metainformationen, wie Name und Versionsnummer. Diese müssen entsprechend angepasst werden.
Achtung: Der Universal-Name MUSS mit dem Namen der Plug-in-Datei und VWR-Datei (ohne Dateiendung) identisch sein. (Auf Groß- und Kleinschreibung achten!)
Alle weiteren Variablen definieren die Version des Plug-ins und ein Copyright Hinweis. Diese Informationen finden nur in der Protokolldatei Verwendung.
Die Variablen können natürlich frei geändert werden und auch an weiteren Stellen genutzt werden.
Mindestanforderungen
In diesem Beispielcode ist eine Möglichkeit integriert, Mindestanforderungen für Vectorworks zu definieren. Vor allem hilfreich, wenn Funktionen genutzt werden die es vorher nicht gab. Es kann die Hauptversionsnummer von Vectorworks und die min. Buildnummer von Vectorworks angegeben werden. Wird eine ältere Version von Vectorworks genutzt, weißt eine Meldung darauf hin. Mit sys_requirements_routines kann eine Liste von Funktionen definiert werden, die im Module vs (Vectorworks Python Module) vorhanden sein müssen. Wird eine oder mehrere Funktionen nicht gefunden erscheint ebenfalls eine Meldung.
Dateiprotokollierung
Alle Texte und Informationen die mit Hife der Funktion logging.log() ausgegeben werden, können in eine Datei umgeleitet werden.
Um die Dateiprotokollierung zu aktivieren, einfach beim Klick auf den Menüeintrag die Shift- (Umschalt-) Taste gedrückt halten.
Eine Meldung bestätigt, wenn ein Protokoll erstellt wird. Die Datei selbst ist dann im Benutzerorder von Vectorworks zu finden.
Benutzerordner Windows (bspw. für Vectorworks 2023)
%appdata%\Nemetschek\Vectorworks\2023
Benutzerordner MacOS
Debugger
Ist Vectorworks und VS Code entsprechend eingerichtet (siehe oben), kann der Debugger genutzt werden. Mit dem Code im Module debug im Python-Package cw.common, werden alle nötigen Schritte auf Seiten von Vectorworks vorgenommen. Der Debugger wird wie folgt eingerichtet:
Wichtig: Diese Meldung noch nicht bestätigen! (Falls doch schon mit OK bestätigt wurde, bleiben für Schritt 6. 10 Sekunden um den Debugger doch noch zu verbinden. Andernfalls kommt ein Fehler, dann einfach nochmal bei Schritt 3. beginnen.)
In VS Code sollte jetzt an der Stelle des zuvor gesetzten Breakpoints die Ausführung gestoppt worden sein. Hier kann jetzt mit den Schaltflächen oben, der Code Schrittweise durchlaufen werden.
Plug-in Name ändern: VSMEdit
An dieser Stelle ist sicherlich schon aufgefallen, das der Name des Menübefehls in Vectorworks nicht dem Namen der Datei entspricht. Dies liegt daran, das in Vectorworks alle Plug-ins immer zwei Namen haben. Den Universal-Name und ein Anzeige-Name. Aktuell ist es in Vectorworks von Haus aus nicht möglich den Anzeige-Namen getrennt vom Universal-Name zu setzen. Hier kommt das Tool VSMEdit zum Einsatz. (Im Anhang von diesem Post zu finden.)
Es handelt sich hierbei um ein Consolen/Terminal Programm (Windows & MacOS) welches die Plugin-Datei (.vsm) direkt bearbeiten kann und wie folgt eingesetzt wird. Folgende Befehle in der Console unter Windows (cmd) oder im Terminal unter MacOS eingeben:
Universal-Name abrufen und ändern:
Anzeige-Name abrufen und ändern:
Menükategorie abrufen und ändern:
Die Namen der Attribute können auch abgekürzt werden. Bspw. Loc anstatt LocalizedName. Eine Liste der Attribute die gebrufen oder geändert werden können kann wie folgt abgerufen werden:
VSMEdit -a
Plugin packen/veröffentlichen
Im Moment besteht unser Plug-in aus mehreren Dateien. Im Idealfall, möchten wir natürlich so wenige Dateien wie möglich. Vectorworks bringt für diesen Fall, alles mit was man braucht und so kommt nun hier die XML-Datei zum Einsatz, welche zuvor in den Ordner Plug-ins kopiert worden ist. Die XML Ist wie folgt aufgebaut und gibt an welche Ordner in die Plug-In Datei integriert werden sollen.
Hinweis: Es können nur Ordner die Source-Code enthalten, integriert werden. Andere Datei wie Bilder o.ä. müssen außerhalb bleiben.
Plug-in packen:
Wichtig: Die XML-Datei muss den gleichen Namen haben wie die Plugin-Datei!
Achtung: Dies kann nicht Rückgang gemacht werden! Stellen Sie sicher, das Sie vom Code als auch der Plugin-Datei (die noch leer ist) eine Kopie haben.
Wenn das Plug-in danach richtig funktioniert und auch die Plugin-Datei größer geworden ist, war der Vorgang erfolgreich.
Veröffentlichen
Um das Plug-in an andere weitergeben zu können, einfach die Plugin-Datei und die VWR-Datei in ein ZIP-Archiv, ohne Unterordner packen.
In Vectorworks kann dann das ZIP-Archiv einfach über den Plug-in-Manager in der Rubrik Plug-ins von Drittherstellern über Installieren... ausgewählt werden und so das Plug-in installiert werden.
VWR-Datei
Eine Beschreibung zur VWR-Datei und wie sie verwendet wird, ist hier zu finden:
Haftungsausschluss: Alle Informationen und Dateien in diesem Beitrag sind frei verfügbar und ohne jegliche Garantie.
Es ist gestattet, die Inhalte zu übersetzen und auf anderen Plattformen zu verbreiten.
______________________________
Version 1.2
- Update sample code "MyTool" to better work with current Vectorworks version
- Added explicit "unlicense" notice
Version 1.1
- Update VSMEdit to also work with Vectorworks 2022 newer versions of Vectorworks.
VSMEdit-v1.1.zip
VS Code Projekt - MyTool 2023.zip
Bearbeitet von Oliver DausAnpassungen für geänderten Code "MyTool"
Gruß
Oliver Daus
ComputerWorks GmbH
http://www.computerworks.de
Link zu diesem Kommentar
13 Antworten auf diese Frage
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