Macros et scripts de commandes
Toutes les commandes de Rhino peuvent être utilisées dans des scripts de commandes. Les macros de commande peuvent être lancées à partir de la ligne de commandes, de boutons, de raccourcis, d’alias de commandes, de la commande LireFichierCommande ou avec la commande Coller utilisée au cours d’une commande de Rhino.
Écrire des macros de commandes
Écrivez les macros de commande tout comme vous écririez la séquence de commandes dans la ligne de commandes.
|
Caractères spéciaux |
Signification dans la macro |
|
(espace) |
Un espace dans une macro agit comme si vous appuyiez sur la touche Entrée. Lorsque, dans un script, vous écrivez un nom ou une chaîne de texte contenant des espaces, vous devez les mettre entre guillemets afin d'éviter de rompre la séquence de commandes. Par exemple : -SélNom "Tableau 01" ✔ -SélNom Tableau 01 ✘ |
|
* |
Permet de répéter automatiquement la commande sans passer par la touche Entrée. |
|
! |
Annule la commande précédente. Un point d'exclamation (!) au début d'une macro annule toute commande en cours. En toute autre position, il annule la macro. Si nécessaire, le point d'exclamation peut aussi être utilisé à la fin d'une macro. |
|
- |
Évite la boîte de dialogue. Toutes les commandes peuvent être transformées en macro dans la ligne de commande (même les commandes qui présentent une boîte de dialogue). Pour éviter la boîte de dialogue et utiliser les options dans la ligne de commande, précédez le nom de la commande d'un tiret (-). Pour quelques commandes (par exemple SurfaceParSectionsDéveloppable) les options ne sont disponibles que dans la ligne de commandes. |
|
_ |
Lance des commandes et options en Anglais. Rhino es traduit en plusieurs langues. Les commandes et les options sont traduites dans chaque langue. Si vous voulez que vos macros fonctionnent dans le monde entier, vous devez les écrire en Anglais en précédent chaque commande et option d'un tiret bas (_). Par exemple : Cerle 3Points 0,0,0 1,1,0 0,3,0 ❗ Cette macro ne fonctionne que dans la version française de Rhino.
_Circle _3Point 0,0,0 1,1,0 0,3,0 ✔ Cette macro fonctionne dans toutes les versions de Rhino, quelle que soit la langue de l'interface.
|
|
' |
La commande suivante est une commande encastrable. La manipulation du plan de construction et de la vue et les accrochages aux objets sont des commandes encastrables. Les commandes de création de géométrie ne sont pas encastrables. Les accrochages aux objets temporaires et les filtres de sélection sont automatiquement encastrables et n’ont pas besoin d’être précédés d’une apostrophe. |
|
\ |
Si le dernier caractère de la macro d’un bouton de barre d’outils est "\", la macro s’exécute sans la touche Entrée à la fin. Par exemple : Créez un bouton de barre d'outils avec la macro "5\". Si vous cliquez sur le bouton, le chiffre 5 est entré dans la ligne de commande sans action supplémentaire. Cette fonction peut être utilisée pour créer une barre d'outils qui fonctionne comme un clavier numérique.
|
|
~ |
Supprime des options de commande pour obtenir des informations claires sur la commande. Les options fonctionnent toujours comme avant. |
|
; (point-virgule) |
Commentaire. Les lignes commençant par un point-virgule (; ) ne sont pas une partie proprement dite de la macro, elles permettent d'écrire des commentaires dans la macro ou d'essayer des données différentes. Par exemple : ; Cette macro est un test |
| :: (deux-points) |
L’imbrication des calques est indiquée par deux points - « :: » entre les noms des calques. Dans la commande -Calque, ajoutez un nouveau calque imbriqué sous le Calque 01 en utilisant une macro telle que : ! _-Calque Nouveau "Calque 01:: Nouveau calque" Entrée |
| # (dièse) |
Active l'enregistrement de l'historique pour la commande suivante. Par exemple : #RaccordArc |
| % (pourcentage) |
Désactive l'enregistrement de l'historique pour la commande suivante. Par exemple : %RaccordArc |
|
(point d’exclamation + &) |
Désactive le verrouillage de l’historique dans une session de commande. Par exemple : !&Supprimer et !&Joindre |
Exemples
Dessiner un cercle
Cette macro crée un cercle dont le centre se trouve au point 5,5 et dont le rayon est de 10 :
! -Cercle 5,5 10
Les espaces entre les entrées correspondent aux moments où vous appuieriez sur la touche Entrée si vous tapiez la commande à la main.
Annuler la sélection en cours et lancer la commande Déplacer
Cette macro lance la commande Déplacer mais vérifie qu’aucun objet n’est sélectionné avant de vous demander de sélectionner les objets à déplacer :
! RienSélectionner Déplacer
Créer une courbe passant par des points
Cette macro crée un groupe de trois points à partir d'un fichier de texte, elle sélectionne ensuite tous les points et dessine une polyligne passant par ces derniers :
! ToutSélectionner Points Pause Pause Pause Entrée InverserSél CourbeParPt EntréeFin
Comment fonctionne ce script :
|
! ToutSélectionner |
Annule toute commande en cours et sélectionne tous les objets se trouvant dans le modèle. |
|
Points |
Lance la commande Points. |
|
Pause Pause Pause |
Permet de choisir trois points. |
|
Entrée |
Simule le fait d'appuyer sur la touche Entrée qui arrête la création de points. |
|
InverserSél |
Inverse la sélection. Tous les objets visibles dans la scène ont été sélectionnés au début du script, donc, après avoir utilisé la commande InverserSél, seuls les nouveaux points créés sont sélectionnés. |
|
CourbeParPt |
Crée une polyligne passant par les objets ponctuels sélectionnés. |
|
EntréeFin |
Termine la commande |
Pour éviter l'utilisation d'une boîte de dialogue
! -Reconstruire Pause Points=10 Degré=3 Entrée
Sélectionner une courbe et lancer cette macro. Toutes les options seront définies par cette macro.
Pour essayer ces scripts
Commandes spéciales de scriptage
|
Pause |
Pause dans une macro pour que l'utilisateur puisse introduire une donnée. Exemple : ! Cercle Pause 50 Cette macro demande un point et dessine ensuite un cercle centré en ce point et de rayon 50 unités. |
|
MultiPause |
Met en pause un script le temps de plusieurs sélections, comme pour la commande Joindre, Polyligne et CongéBord. |
|
Entrée |
Simule le fait d’appuyer sur Entrée dans une macro. Cette commande ne répète pas la commande précédente comme si vous appuyiez sur Entrée. |
|
EntréeFin |
Termine la commande |
|
DésactiverRégénération |
Évite la régénération de l'écran et les changements de plan de construction ou de caméra pendant l'exécution de macros. |
|
ActiverRégénération |
Réactive l’option de redessiner l’écran après avoir utilisé la commande DésactiverRégénération. |
|
CopierInvitesDésactivé |
Désactive la copie des commandes de macro dans la fenêtre de l'historique. |
|
CopierInvitesActivé |
Active la copie des commandes de macro dans la fenêtre de l'historique. |
Si vous ne savez pas comment écrire une macro, lancez la version de la commande avec un tiret. Sélectionnez et copiez la séquence de commande et collez-la dans votre texte de macro.
| Barre d’outils | Menu |
|---|---|
|
|
Fenêtre Panneaux > Éditeur de macro |
La commande ÉditeurMacro ouvre une fenêtre d'édition pour la création et le test de macros.
Étapes
-
Tapez des commandes et options dans la fenêtre de l’éditeur de macros.
-
Cliquez sur le bouton
pour tester la macro.
Barre d’outils
Lancer
Exécute toute la macro ou la partie en surbrillance.
Supprimer
Efface la boîte d'édition.
Menu contextuel
Couper
Copie le texte sélectionné dans le presse-papiers et le supprime.
Copier
Copie le texte sélectionné dans le presse-papiers.
Coller
Insère le texte placé dans le presse-papiers à l'emplacement du curseur.
| Barre d’outils | Menu |
|---|---|
|
|
Outils Commandes > Lire dans un fichier |
La commande LireFichierCommandes lit et exécute une macro de commande à partir d'un fichier de texte.
Étapes
- Dans la boîte de dialogue Ouvrir un fichier de texte, sélectionnez le fichier à lire.
Le texte se trouvant dans le fichier est copié dans la ligne de commande et les lignes du fichier de commandes sont interprétées comme si elles avaient été tapées dans l'invite.
Remarques
- Quand vous créez des fichiers de commande, utilisez la commande Entrée qui équivaut à l’utilisation de la touche Entrée pour exécuter les commandes.
- Si vous lisez un fichier assez souvent, vous pouvez assigner à un bouton la commande LireFichierCommandes avec le nom du fichier. Par exemple : -LireFichierCommandes monfichier.txt
- Si le nom du fichier contient des espaces, écrivez-le entre guillemets. Par exemple : -LireFichierCommandes "mon fichier.txt".
Exemple
Créez un fichier de texte comme dans l’exemple suivant qui contient des commandes pour créer toutes vos courbes. Dessinez ensuite les courbes en une seule fois avec LireFichierCommandes.
! CourbeInterp
23,5,0
23,2,5,0
23.7,5.2,1
Entrée
CourbeInterp
26.1,4.9,1,1
26.8,4.9,1,0
27.1,4.8,0,9
Entrée
etc&.
| Barre d'outils | Menu |
|---|---|
|
|
|
La commande CopierInvitesActivé active la copie des commandes de macro dans la fenêtre de l'historique.
Pour désactiver la copie des invites, utilisez la commande CopierInvitesDésactivé.
| Barre d’outils | Menu |
|---|---|
|
|
|
La commande CopierInvitesDésactivé désactive la copie des commandes de macro dans la fenêtre de l'historique.
- Pour activer la copie des invites, utilisez la commande CopierInvitesActivé.
CopierInvitesDésactivé ou _NoEcho doit être le tout premier mot de la macro pour fonctionner correctement. Tout le reste, y compris le point d'exclamation, doit se trouver après, séparé par un espace simple.
| Barre d'outils | Menu |
|---|---|
|
|
|
Utilisée dans les scripts ou la programmation de boutons de barres d’outils, la commande Entrée fonctionne comme vous appuyiez sur la touche Entrée.
Exemple
Ce script définit un plan de construction à partir de trois points :
'PlanC 3Points
Pause Pause Pause Entrée
La commande Entrée ne répète pas la commande précédente comme si vous appuyiez sur la touche Entrée.
| Barre d'outils | Menu |
|---|---|
|
|
|
La commande EntréeFin fonctionne comme si on appuyait sur la touche Entrée pour terminer une chaîne de commandes, elle est utilisée dans les macros ou la programmation de boutons de barres d'outils.
EntréeFin est utile lorsqu'une commande possède un grand nombre de niveaux d'options comme PropriétésDocument ou Options et que vous voulez quitter la commande sans avoir à taper autant de fois Entrée que de niveaux utilisés. Par exemple :
! -PropriétésDocument Maillage Personnalisé _DistMaxBordSurface .01
nécessiterait au moins deux ou trois Entrée pour terminer la commande. Avec EntréeFin, la commande se termine quand vous voulez.
Exemple
! -PropriétésDocument Maillage Personnalisé _DistMaxBordSurface .01 EntréeFin
Fermer
|
Barre d'outils |
Menu |
|---|---|
|
|
|
La commande Fermer peut être utilisée dans un script pour fermer un modèle de Rhino.
- La commande doit contenir le chemin vers le fichier à fermer ; sinon elle ne fait rien.
Exemple de script Python :
import Rhino
import scriptcontext as sc
Rhino.RhinoApp.RunScript("Close "+sc.doc.Path+" Enter", False)
|
Barre d'outils |
Menu |
Raccourci |
|---|---|---|
|
|
Rhino Quitter Rhinoceros |
Ctrl (CMD) + Q |
La commande Quitter ferme la session de Rhino en cours.
| Barre d’outils | Menu |
|---|---|
|
|
|
La commande Pause arrête une macro pour que l'utilisateur puisse réaliser une action.
Exemple
Cette macro demande un point et dessine ensuite un cercle centré en ce point et de rayon 50 unités.
! Cercle Pause 50
| Barre d’outils | Menu |
|---|---|
|
|
|
La commande MultiPause arrête une macro pour que l'utilisateur puisse réaliser une action.
Exemple
Cette macro demande les objets à joindre.
! Joindre MultiPause
La commande Lancer exécute une autre application à partir de Rhino.
Étapes
- Tapez le nom et le chemin du fichier à lancer.
| Barre d’outils | Menu |
|---|---|
|
|
|
La commande DésactiverRégénération désactive la régénération de l'écran et les changements de plan de construction ou de caméra pendant l'exécution de scripts.
Pour réactiver la régénération de l'écran
- Utilisez la commande ActiverRégénération.
| Barre d’outils | Menu |
|---|---|
|
|
|
La commande ActiverRégénération active la régénération de l'écran et les changements de plan de construction ou de caméra pendant l'exécution de scripts.
Pour désactiver la régénération de l'écran
- Utilisez la commande DésactiverRégénération.
Pour de plus amples informations sur l’écriture de scripts dans Rhino, consultez l’article suivant http://wiki.mcneel.com/rhino/basicmacros.
|
Barre d'outils |
Menu |
|---|---|
|
|
La commande LancerScriptPython lance un script de Python.
Des références sont également disponibles en ligne pour les programmeurs sur Rhino.Python : http://developer.rhino3d.com/guides/rhinopython.
-LancerScriptPython
Options
RedémarrerMoteur
Force le moteur Python à redémarrer. Cette option n'est utile que lorsque des scripts agissant sur plusieurs fichiers sont écrits et testés.
|
Barre d'outils |
Menu |
|---|---|
|
|
La commande ModifierScriptPython permet de modifier un script Python.
Pour de plus amples informations sur l’écriture de scripts dans Rhino, consultez l’article suivant : http://developer.rhino3d.com/guides/rhinopython.
|
Barre d’outils |
Menu |
|---|---|
|
|
Outils Script > Modifier |
La commande ÉditeurScripts ouvre la fenêtre de l'éditeur de scripts pour programmer avec Python et C#.
Guides sur l’éditeur de scripts
Options de la ligne de commande
Tapez -ÉditeurScripts pour accéder aux options de la ligne de commande.
Modifier
Ouvre la fenêtre de l'éditeur de scripts.
Lancer
Exécute un fichier de script.
Pour exécuter un fichier de script avec une macro
Vous pouvez indiquer le chemin d'accès au fichier de script de plusieurs manières.
-
Utiliser un chemin d'accès complet :
_-ScriptEditor _Run "/Users/<UserName>/Documents/My Script.py"
-
Utiliser un environnement variable dans le chemin d'accès :
_-ScriptEditor _Run "$HOME/Documents/My Script.py"
_-ScriptEditor _Run "~/Documents/My Script.py"
Ces macros exécutent le fichier "My Script.py" dans votre dossier Documents.
Lancez la commande "Env" dans Terminal pour dresser la liste de toutes les variables d'environnement.
-
Recherchez le fichier dans les dossiers définis dans Paramètres de Rhino > Chemins de recherche de fichiers :
_-ScriptEditor _Run "My Script.py"
Ouvrir
Charge un fichier de script dans la fenêtre de l'éditeur de scripts.
