Erstellen eines Grasshopper-Plug-in-Pakets

Der Paketmanager wurde in Rhino 7 eingeführt. Er erleichtert das Entdecken, Installieren und Verwalten von Grasshopper-Plug-ins aus Rhino heraus. Diese Anleitung beschreibt, wie man ein Paket aus einem Grasshopper-Plug-in erstellt, das auf dem Paketserver veröffentlicht werden kann.

Anmerkung
Der Paketmanager ist plattformübergreifend. Die folgenden Beispiele sind für Windows. Für Mac ersetzen Sie den Pfad zum Yak CLI-Tool durch "/Applications/Rhino 8.app/Contents/Resources/bin/yak".

Nehmen wir zunächst an, dass Sie einen Ordner auf Ihrem Computer haben, in dem alle Dateien enthalten sind, die Sie in Ihrem Paket verteilen möchten. Etwa so…

C:\Benutzer\Bozo\dist
├── Marmoset.gha
├── icon.png
└── misc\
    ├── README.md
    └── LICENSE.txt
Anmerkung
Dies ist nur ein Beispiel. Die einzigen Dateien, die von Bedeutung sind, sind Marmoset.gha und icon.png (auf das Symbol werden wir später in der Datei manifest.yml verweisen).

Wir werden das Yak CLI Tool verwenden, um das Paket zu erstellen, öffnen Sie also eine Befehls-Eingabeaufforderung und navigieren Sie zu dem oben genannten Verzeichnis.

> cd C:\Benutzer\Bozo\dist

Jetzt brauchen wir eine Datei manifest.yml! Sie können leicht Ihre eigene erstellen, indem Sie den Leitfaden der Manifest-Referenzen studieren. Alternativ können Sie den Befehl spec verwenden um eine Skelettdatei zu erzeugen. Wir werden hier Letzteres tun.

> "C:\Programne\Rhino 8\System\Yak.exe" spec

Inspecting content: Marmoset.gha

---
name: marmoset
version: 1.0.0
authors:
- Park Ranger
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.
url: https://example.com


Saved to C:\Benutzer\Bozo\dist\manifest.yml

Der Befehl spec sieht sich das aktuelle Verzeichnis an und wird, falls vorhanden, nützliche Informationen aus der Baugruppe “gha” zu gewinnen versuchen und daraus eine mit Name, Version, Autoren usw. vorausgefüllte manifest.yml erstellen. Wenn Sie diese Informationen noch nicht hinzugefügt haben, werden Platzhalter verwendet.

Anmerkung
Der Befehl spec ist nützlich für die Erzeugung der manifest.yml-Datei zu Beginn. Wenn Sie eine haben, bewahren Sie sie zusammen mit Ihrem Projekt auf und aktualisieren Sie sie bei jeder Veröffentlichung.

Öffnen Sie die Manifestdatei mit Ihrem Lieblingseditor und füllen Sie die Lücken aus.

Danach sollten Sie etwas haben, das in etwa so aussieht…

---
name: marmoset
version: 1.0.0
authors:
- Park Ranger
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.  
url: https://example.com
icon: icon.png
keywords:
- mammal

Jetzt, da wir eine Manifestdatei haben, können wir das Paket erstellen!

> "C:\Programme\Rhino 8\System\Yak.exe" build

Building package from contents of C:\Benutzer\Bozo\dist

Found manifest.yml for package: marmoset (1.0.0)
Inspecting content: Marmoset.gha
Creating marmoset-1.0.0-rh6_18-any.yak

---
name: marmoset
version: 1.0.0
authors:
- Will Pearson
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.
url: example.com
keywords:
- mammal
- guid:c9beedb9-07ec-4974-a0a2-44670ddb17e4

C:\Benutzer\Bozo\dist\marmoset-1.0.0-rh6_18-any.yak
├── Marmoset.dll
├── Marmoset.gha
├── manifest.yml
├── misc\LICENSE.txt
└── misc\README.md
Anmerkung
Der Dateiname enthält ein “Distribution Tag” (in diesem Fallrh6_18-any). Der erste Teil, rh6_18, wird von der Version von Grasshopper.dll oder Rhinocommon.dll abgeleitet, die im Plug-in-Projekt referenziert wird. Der zweite Teil, any, bezieht sich auf die Plattform, für die das Plug-in bestimmt ist. Um ein plattformspezifisches Paket zu erstellen, führen Sie den Befehl build erneut mit dem Argument --platform <platform> aus, wobei <platform> entweder win oder mac sein kann.
Wichtig
Wenn Sie derzeit ein Paket mit einem rh6* Distribution Tag veröffentlichen, ist es nicht für Rhino 7 installierbar. Wenn Ihr Plug-in auch in Rhino 7 funktioniert, markieren Sie es bitte als kompatibel, indem Sie die .yak-Datei kopieren, den Teil des Dateinamens im Distribution Tag aktualisieren (also rh6_18rh7_0) und beides auf den Paketserver pushen.
Anmerkung
Vielleicht bemerken Sie, dass sich der GUID Ihres Plug-ins in den Schlüsselwörtern versteckt hält. Weitere Informationen darüber, wie dies verwendet wird, finden Sie im Leitfaden „Paketwiederherstellung in Grasshopper“

Herzlichen Glückwunsch! 🙌 Sie haben gerade ein Paket für Ihr Grasshopper-Plug-in erstellt.

Weitere Schritte:

Nachdem Sie nun ein Paket erstellt haben, pushen Sie es auf den Paketserver, damit es Im Paketmanager verfügbar ist!