Befehlsmakros und Scripting
Alle Rhino-Befehle können in Befehlsmakros verwendet werden. Befehlsmakros können aufgerufen werden, indem der Befehl in der Eingabeaufforderung eingegeben wird, von Schaltflächen in der Werkzeugleiste, Tastenkürzeln, Befehlsverweisen aus, anhand des Befehls BefehlsdateiLesen oder des Befehls Einfügen in Rhinos Befehlsstrom.
Schreiben von Befehlsmakros
Schreiben Sie Befehlsmakros genau so, als würden Sie die Befehlsfolge in der Befehlszeile eingeben.
|
Sonderzeichen |
Bedeutung in Makro |
|
(Leerabstand) |
Ein Leerabstand in Makros bewirkt das gleiche wie das Drücken der Eingabetaste. Beim Skripten eines Namens (oder eines Textstrings) mit Leerzeichen müssen Sie diesen zwischen Anführungszeichen setzen, um die Befehlsfolge nicht zu beschädigen. Zum Beispiel: _-SelName "Table 01" ✔ _-SelName Table 01 ✘ |
|
* |
Der Befehl wird automatisch wiederholt, ohne dass die Eingabetaste zum Neustarten gedrückt wird. |
|
! |
Löscht den vorherigen Befehl. Durch ein Ausrufezeichen (!) am Anfang eines Makros werden alle vorherigen Befehle gelöscht. An anderen Stellen wird das Makro abgebrochen. Das Ausrufezeichen kann wenn nötig am Ende des Makros verwendet werden. |
|
- |
Unterdrückt Dialogfenster. Im Wesentlichen können alle Befehle in der Befehlszeile zu Makros werden (sogar Befehle, die standardmäßig mit Dialogfenstern kommen). Um das Dialogfenster zeitweilig zu unterdrücken und Optionen in der Befehlszeile zu verwenden, stellen Sie dem Befehl einen Bindestrich (-) voran. Einige Befehle (z.B. AbwickelbaresLoft) haben nur in der Befehlszeile verfügbare Optionen. |
|
_ |
Führt Befehle und Optionen auf Englisch aus. Rhino ist für mehrere Sprachen lokalisiert. In verschiedenen Sprachen sind Befehle und Optionen verschiedenartig übersetzt. Damit Makros weltweit funktionieren, empfehlen wir daher, sie auf Englisch mit Unterstrich vor jedem Befehl bzw. jeder Option zu schreiben. Zum Beispiel: Cerchio 3Punti 0,0,0 1,1,0 0,3,0 ❗ Dieses Makro funktioniert nur in der italienischen Version von Rhino.
_Circle _3Point 0,0,0 1,1,0 0,3,0 ✔ Dieses Makro funktioniert in allen Sprachversionen von Rhino.
|
|
' |
Der nächste Befehl ist ein verschachtelbarer Befehl. Ansichts- und Konstruktionsebenenänderungen und Objektfänge sind verschachtelbar. Befehle zur Geometrieerzeugung sind nicht verschachtelbar. Einmalige Objektfänge und Filter zum Auswählen von Teilobjekten sind automatisch verschachtelbar und benötigen kein Apostroph. |
|
\ |
Wenn das letzte Zeichen in einem Werkzeugleisten-Schaltflächenmakro "\" ist, wird das Makro ohne abschließendes Drücken der Eingabetaste ausgeführt. Zum Beispiel: Erzeugen Sie eine Werkzeugleistenschaltfläche mit einem Makro "5\". Durch Klicken der Schaltfläche wird 5 in die Befehlszeile eingegeben and für weitere Eingaben gestoppt. Diese Funktion kann zum Erzeugen einer Werkzeugleiste verwendet werden, die wie ein On-Screen-Ziffernblock funktioniert.
|
|
~ |
Unterdrückt Befehlsoptionen, um eine übersichtliche Befehlsrückmeldung zu erhalten. Die Optionen funktionieren wie üblich. |
|
; (Semikolon) |
Kommentar. Linien, die mit einem Semikolon (;) beginnen, sind nicht Teil des Makros aber erlauben Ihnen, das Makro zu dokumentieren oder eine Alternative zu verwenden. Zum Beispiel: ; Das ist ein Testmakro |
| :: (zwei Doppelpunkte) |
Ebenen-Verschachtelung wird durch zwei aufeinanderfolgende Doppelpunkte - "::" zwischen Ebenennamen angezeigt. Fügen Sie im Befehl Ebene eine unter Ebene 01 verschachtelte Ebene ein und verwenden dabei ein Makro wie das folgende: ! _-Layer New "Layer 01:: New Layer" Eingabetaste |
| # (Doppelkreuz) |
Aktiviert die Historienaufnahme für den folgenden Befehl. Zum Beispiel: #ArcBlend |
| % (Prozent) |
Deaktiviert die Historienaufnahme für den folgenden Befehl. Zum Beispiel: %ArcBlend |
|
(Ausrufezeichen + und) |
Deaktiviert Historiensperrung in einer Befehlssitzung. Zum Beispiel: !&_Delete und !&_Join |
Beispiele
Einen Kreis zeichnen
Dieses Makro erzeugt einen Kreis zentriert am Punkt 5,5 mit Radius 10:
! _-Circle 5,5 10
Die Leerzeichen zwischen den Eingaben entsprechen der Eingabetaste, wenn Sie den Befehl von Hand eingeben würden.
Objekte aus der Auswahl nehmen und den Befehl Verschieben starten
Dieses Makro startet den Befehl Verschieben, aber stellt sicher, dass keine Objekte ausgewählt sind, bevor Sie zur Auswahl von Objekten zum Verschieben aufgefordert werden:
! _SelNone _Move
Erzeugt eine Kurve durch Punkte
Dieses Makro erzeugt einen Satz von drei Punkten, wählt alle Punkte aus und erstellt eine Polylinie durch die Punkte:
! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _EnterEnd
So funktioniert dieses Skript:
|
! _SelAll |
Löscht alle vorherigen Befehle und wählt alle Objekte im Modell aus. |
|
_Points |
Führt den Befehl Punkte aus. |
|
_Pause _Pause _Pause |
Erlaubt die Auswahl von drei Punktstandorten. |
|
_Enter |
Simuliert die Eingabetaste, was die Erzeugung von Punktobjekten stoppt. |
|
_Invert |
Zur Umkehr der Auswahl. Alle sichtbaren Objekte in der Szene wurden am Anfang des Skriptes ausgewählt. Nach dem Invertieren werden also nur die neu erzeugten Punktobjekte ausgewählt. |
|
_CurveThroughPt |
Erzeugt eine Polylinie durch die Punktobjekte. |
|
_EnterEnd |
Vervollständigt den Befehl. |
Ein Dialogfenster umgehen
! -_Rebuild _Pause _Points=10 _Degree=3 _Enter
Wählen Sie eine Kurve aus, dann führen Sie dieses Makro aus. Alle Optionen werden durch das Makro definiert.
Diese Skripts ausprobieren
Besondere Scripting-Befehle
|
Pause |
Benutzereingabe in einem Makro stoppen. Beispiel: ! _Circle _Pause 50 Dieses Makro fragt nach einem Punkt und zeichnet dann einen Kreis mit einem Radius von 50 Einheiten an diesem Punkt zentriert. |
|
MultiPause |
Zum Pausieren eines Skripts für die Dauer einer mehrfachen Auswahl wie bei den Befehlen Verbinden, Polylinie oder KanteVerrunden. |
|
Eingabe |
Simuliert die Eingabetaste in einem Makro. Dieser Befehl wiederholt nicht den vorherigen Befehl, wie es das tatsächliche Drücken der Eingabetaste tut. |
|
EndeEingeben |
Vervollständigt den Befehl. |
|
BildaufbauDeaktivieren |
Bildaufbau, Konstruktionsebenen- und Kameraänderungen verhindern, während ein Makro ausgeführt wird. |
|
BildaufbauAktivieren |
Aktiviert Bildaufbau nach dem Befehl BildaufbauDeaktivieren. |
|
EchoAus |
Deaktiviert Kopieren von Skriptbefehlen in das Befehlsverlauffenster. |
|
Echo |
Aktiviert Kopieren von Skriptbefehlen in das Befehlsverlauffenster. |
Wenn Sie nicht wissen, was Sie in einem Makro schreiben sollen, rufen Sie die Version mit Bindestrich des Befehls auf. Heben Sie die Befehlsfolge hervor, kopieren Sie sie und fügen Sie sie in Ihren Makrotext als Anfangspunkt ein.
| Werkzeugleiste | Menü |
|---|---|
|
|
Werkzeuge Befehle > Makroeditor Fenster Panels > Makroeditor |
Mit dem Befehl MakroEditor wird ein Texteingabefeld zum Erstellen und Bearbeiten von Makros geöffnet.
Makroeditor-Panel
Vorgehensweise
-
Geben Sie Befehle und Optionen im Fenster Makroeditor ein.
-
Klicken Sie auf die Schaltfläche
um das Makro zu testen.
Werkzeugleiste
Starten
Führt das gesamte Makro aus oder den hervorgehobenen Teil des Makros.
Löschen
Löscht das Bearbeitungsfeld.
Kontextmenü
Ausschneiden
Kopiert den ausgewählten Text in die Zwischenablage und löscht den Text.
Kopieren
Kopiert die Auswahl in die Zwischenablage.
Einfügen
Fügt den in der Zwischenablage gespeicherten Text an der Position des Mauszeigers ein.
| Werkzeugleiste | Menü |
|---|---|
|
|
Werkzeuge Befehle > Lesen von Datei |
Mit dem Befehl BefehlsdateiLesen wird ein Befehlsmakro aus einer Textdatei gelesen und ausgeführt.
Vorgehensweise
- Im Dialogfenster Textdatei öffnen wählen Sie die Datei zum Lesen aus.
Der Dateiinhalt wird in die Befehlszeile kopiert und die Linien der Befehlsdatei werden interpretiert, als würden Sie in die Befehlszeile eingegeben.
Bemerkungen
- Beim Erzeugen von Befehlsdateien verwenden Sie den Befehl Eingabe, was dem Drücken der Eingabetaste gleichkommt, um Befehle auszuführen.
- Wenn Sie oft in einer bestimmten Datei lesen, können Sie BefehlsdateiLesen einer Werkzeugleistenschaltfläche zusammen mit einem Dateinamen zuordnen. Zum Beispiel: -ReadCommandFile myfile.txt
- Wenn der Dateiname Leerzeichen hat, schreiben Sie den Text mit Anführungszeichen. Zum Beispiel: -ReadCommandFile "my file.txt".
Beispiel
Erzeugen Sie eine Textdatei wie folgendes Beispiel zeigt, mit Befehlen, um all Ihre Kurven darin zu erzeugen, und dann erstellen Sie die Kurven alle auf einmal mit dem Befehl BefehlsdateiLesen.
! _interpcrv
23,5,0
23,2,5,0
23.7,5.2,1
_Enter
_interpcrv
26.1,4.9,1,1
26.8,4.9,1,0
27.1,4.8,0,9
_Enter
usw.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl Echo wird die Wiedergabe von Makrobefehlen im Befehlsverlauffenster aktiviert.
Zum Aktivieren verwenden Sie den Befehl EchoAus.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl EchoAus wird die Wiedergabe von Makrobefehlen im Befehlsverlauffenster deaktiviert.
- Zum Aktivieren verwenden Sie den Befehl Echo.
EchoAus oder _NoEcho muss das erste Wort des Makros sein, damit es korrekt funktioniert. Alles Weitere inklusive des Ausrufezeichens sollte durch ein einfaches Leerzeichen getrennt folgen.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Der Befehl Eingabe funktioniert wie das Drücken der Eingabetaste zur Verwendung für Skripts oder Werkzeugleistenschaltflächen.
Beispiel
Dieses Skript definiert eine Konstruktionsebene durch Auswahl von drei Punkten:
'_CPlane _3Point
_Pause _Pause _Pause _Enter
Der Befehl Eingabe wiederholt den vorherigen Befehl nicht, wie es das Drücken der Eingabetaste tut.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Der Befehl EndeEingeben funktioniert wie das Drücken der Eingabetaste, um eine Befehlsfolge zur Verwendung in Makros oder Werkzeugleistenschaltflächen abzuschließen.
EndeEingeben ist hilfreich, wenn ein Befehl über "mehrstufige" Optionen verfügt, wie Optionen oder DokumentEigenschaften, und Sie eine dieser Optionen beenden möchten, ohne zählen zu müssen, wie oft Sie die Eingabetaste betätigen müssen, um auf eine leere Befehlszeile zu gelangen. Zum Beispiel:
! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01
benötigt mindestens zwei oder drei Eingaben, um den Befehl zu beenden. Mit EndeEingeben wird der Befehl durch Drücken der Eingabetaste sofort beendet.
Beispiel
! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd
|
Werkzeugleiste |
Menü |
Tastenkombination |
|---|---|---|
|
|
Datei Beenden |
Strg (Cmd) + Q |
Mit dem Befehl Beenden wird die aktuelle Rhino-Sitzung geschlossen.
Zugriff auf die Befehlszeilenoptionen
- Geben Sie einen Bindestrich vor dem Befehlsnamen ein -Beenden.
| Befehlszeilenoptionen | |
|---|---|
|
Ja |
|
|
Nein |
|
|
Abbrechen |
|
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl Pause wird ein Makro angehalten, um eine Benutzereingabe zuzulassen.
Beispiel
Dieses Makro fragt nach einem Punkt und zeichnet dann einen Kreis mit einem Radius von 50 Einheiten an diesem Punkt zentriert.
! _Circle _Pause 50
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl MultiPause wird ein Makro angehalten, um eine Benutzereingabe zuzulassen.
Beispiel
Dieses Makro fragt nach den zu verbindenden Objekten.
! _Join _MultiPause
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl Starten wird eine andere Anwendung innerhalb von Rhino ausgeführt.
Vorgehensweise
- Geben Sie Namen und Pfad der auszuführenden Datei ein.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl BildaufbauDeaktivieren werden Bildaufbau, Konstruktionsebenen oder Kameraänderungen während der Skriptausführung deaktiviert.
Reaktivierung des Bildaufbaus
- Verwenden Sie den Befehl BildaufbauAktivieren.
| Werkzeugleiste | Menü |
|---|---|
|
|
|
Mit dem Befehl BildaufbauAktivieren aktiviert Bildaufbau, Konstruktionsebenen oder Kameraänderungen während der Skriptausführung.
Deaktivierung des Bildaufbaus
- Verwenden Sie den Befehl BildaufbauDeaktivieren.
Scripting
RhinoScript ist ein Plug-in zum Ausführen von Scripts. Diese Skriptsprachen erlauben Schlaufen, Namen von Variablen, das Durchsuchen von Dateien, Datenanfragen und noch mehr.
Die Befehle zum Ausführen:
Die wesentlichen Schritte sind
- Schreiben Sie eine Skriptfunktion.
RhinoScripts verwenden die Dateierweiterung .rvb. - Starten Sie den Befehl SkriptLaden, um das Skript in den Speicher zu laden.
- Verwenden Sie den Befehl SkriptStarten, um den Funktionsnamen aufzurufen.
Wenn Sie eine .rvb Datei auf das Rhino-Fenster ziehen, wird das SKript geladen und gestartet.
Weitere Infos zu Scripts
- Im Rhino-Menü Hilfe klicken Sie auf Plug-ins, dann auf RhinoScript.
Für weitere Informationen zu Scripting in Rhino, siehe: http://wiki.mcneel.com/de/rhino/basicmacros.
| Werkzeugleiste | Menü |
|---|---|
|
|
Menü Werkzeuge RhinoScript > Laden |
Mit dem Befehl SkriptLaden wird eine Skriptdatei von der Festplatte gelesen, in den Skriptinterpreter gelesen und ausgeführt.
Wenn Sie eine .rvb Datei auf das Rhino-Fenster ziehen, wird das SKript geladen und gestartet.
Vorgehensweise
- Klicken Sie im Dialogfenster Skriptdatei laden auf die Schaltfläche Hinzufügen.
-
Der skriptfähige Befehl, -LoadScript, unterstützt die Windows-Umgebungsvariablen im Pfad zur zu ladenden rvb-Datei.
-
Für die Online-RhinoScript-Programmierreferenz siehe:
| Werkzeugleiste | Menü |
|---|---|
|
|
Menü Werkzeuge RhinoScript > Starten |
Mit dem Befehl SkriptStarten wird ein bereits geladenes Skript ausgeführt.
Wenn Sie eine .rvb Datei auf das Rhino-Fenster ziehen, wird das SKript geladen und gestartet.
Vorgehensweise
- Im Dialogfenster Skript-Teilprogramm starten klicken Sie auf das Menü Hilfe.
| Werkzeugleiste | Menü |
|---|---|
|
Werkzeuge RhinoScript > Bearbeiten |
Mit dem Befehl SkriptBearbeiten wird ein Texteditor zum Bearbeiten von RhinoScript-Dateien geöffnet.
Vorgehensweise
- Klicken Sie im Dialogfenster RhinoScript Editor auf das Menü Hilfe.
|
Werkzeugleiste |
Menü |
|---|---|
|
|
Mit dem Befehl PythonSkriptAusführen wird ein Python-Skript ausgeführt.
Online Rhino.Python Programmierreferenz: http://developer.rhino3d.com/guides/rhinopython.
-PythonSkriptAusführen
Optionen
EngineZurücksetzen
Zwingt Python zum Neustart. Dies ist nur hilfreich, während Python-Scripts, die über mehrere Dateien gehen, geschrieben und getestet werden.
|
Werkzeugleiste |
Menü |
|---|---|
|
|
Mit dem Befehl PythonSkriptBearbeiten wird ein Python-Skript bearbeitet.
Für weitere Informationen zu Scripting in Rhino, siehe: http://developer.rhino3d.com/guides/rhinopython.
|
Werkzeugleiste |
Menü |
|---|---|
|
Neu in Version 8 |
Werkzeuge Skript > Bearbeiten |
Der Befehl ScriptEditor öffnet das Script-Editor-Fenster für Python- und C#-Programmierung.
Befehlszeilenoptionen
Führen Sie den skriptfähigen Befehl aus, -ScriptEditor, um auf die Befehlszeilenoptionen zugreifen zu können.
Bearbeiten
Öffnet das Script-Editor-Fenster.
Starten
Führt eine Skriptdatei aus.
Um eine Skriptdatei mit einem Makro auszuführen
Es gibt mehrere Möglichkeiten, den Pfad einer Skriptdatei zu bestimmen.
-
Verwenden Sie einen vollständigen Dateipfad:
_-ScriptEditor _Run "D:\My Files\My Script.py"
-
Verwenden Sie eine Umgebungsvariable in dem Pfad:
_-ScriptEditor _Run "%USERPROFILE%\Documents\My Script.py"
Dieses Makro führt die Datei "My Script.py" in Ihrem dokumente-Ordner aus.
Führen Sie den Befehl "Set" in Windows Command Promp aus, um alle Umgebungsvariabeln aufzulisten.
-
Suchen Sie nach der Datei in den in Rhino-Optionen > Dateisuchpfade eingestellten Ordnern:
_-ScriptEditor _Run "My Script.py"
Öffnen
Läadt eine Skriptdatei im Script-Editor-Fenster.