This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
fr:rhino:basicmacros [2015/09/14] |
fr:rhino:basicmacros [2024/09/18] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Créer des macros====== | ||
+ | |||
+ | > Tutoriel de base sur l' | ||
+ | |||
+ | Dans Rhino, vous pouvez créer des **macros** pour automatiser de nombreuses tâches, personnaliser vos commandes et améliorer vos méthodes de travail. | ||
+ | |||
+ | Le terme scriptage peut parfois prêter à confusion. | ||
+ | |||
+ | //Ce sont en fait deux choses complètement différentes.// | ||
+ | |||
+ | J' | ||
+ | |||
+ | |||
+ | ===== Les outils nécessaires===== | ||
+ | * Votre cerveau :-P | ||
+ | * Le **fichier d'aide de Rhino** qui liste toutes les commandes de Rhino et leurs options. C’est votre document de référence. | ||
+ | * L’**ÉditeurMacro** de Rhino qui est une interface intégrée conçue pour créer et tester vos macros. | ||
+ | * Comprendre comment intégrer vos macros dans votre flux de travail sous forme d’alias ou de boutons de barre d' | ||
+ | ===== Vous avez déjà utilisé une ou deux macros...===== | ||
+ | Tout d’abord, si vous êtes utilisateur de Rhino, vous ne le savez peut-être pas mais vous avez déjà utilisé des macros. | ||
+ | //(shown: V6 for Windows)// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Ce bouton appelle simplement la commande **ExtruderCourbe** et la paramètre pour créer un solide fermé. | ||
+ | |||
+ | C’est un exemple du type de macros le plus simple qui définit une série d’options à l’intérieur d’une seule commande afin que vous n’ayez pas à les indiquer à chaque fois que vous l’utilisez. **ExtruderCourbe** a plusieurs boutons avec des options prédéfinies : | ||
+ | |||
+ | En un sens, cela revient au même que si vous cliquiez sur les boutons ou tapiez les options une par une dans la ligne de commandes. | ||
+ | |||
+ | Le scriptage d’options pour une commande peut aussi être combiné avec la saisie de données (par exemple des coordonnées ou d’autres données numériques). Il est aussi possible d’enchaîner plusieurs commandes à la suite pour avoir une séquence automatisée d’événements afin de manipuler ou créer des objets. | ||
+ | |||
+ | > | ||
+ | |||
+ | ======Pour commencer===== | ||
+ | |||
+ | Imaginons que vous vouliez créer une série de boîtes de 10x10x10 en positionnant le centre de la base à l’endroit de votre choix, et que vous vouliez indiquer ce point d’insertion soit en cliquant avec la souris, soit en tapant les coordonnées au clavier. | ||
+ | |||
+ | Vous pourriez utiliser la commande Boîte standard (**Sommet à sommet + Hauteur**) mais par défaut le point d' | ||
+ | |||
+ | Ouvrez l’**ÉditeurMacro** et tapez le texte suivant : | ||
+ | |||
+ | ! _Box _Center | ||
+ | //(C’est en fait la macro qui se trouve sous le bouton Boîte, Centre. Vous pouvez vérifier.)// | ||
+ | Toutes les entrées (mots et chiffres des commandes) doivent être séparées par un seul espace. | ||
+ | |||
+ | Nous devons à présent indiquer le point central. | ||
+ | |||
+ | ! _Box _Center _Pause | ||
+ | | ||
+ | Une fois les données saisies, vous pouvez indiquer la taille de la boîte directement dans la commande. | ||
+ | |||
+ | ! _Box _Center _Pause r5,5 | ||
+ | | ||
+ | (À quoi correspond le « r » ? | ||
+ | |||
+ | Vous pouvez maintenant indiquer la hauteur, qui dans ce cas est relative au point de départ d’origine. | ||
+ | |||
+ | ! _Box _Center _Pause r5,5 10 | ||
+ | | ||
+ | Comme il n’y a pas d’autre entrée nécessaire et qu’il n’y a plus d’autres options possibles, la macro se termine et votre boîte est créée. | ||
+ | |||
+ | ! _Box _Center _Pause r5,5 _Enter | ||
+ | À présent que la macro fonctionne, [[rhino: | ||
+ | |||
+ | > //À propos de la commande Pause :// | ||
+ | |||
+ | Par exemple, la macro suivante | ||
+ | |||
+ | ! _Polyline _Pause _SelLast | ||
+ | |||
+ | créera la polyligne, mais ne la sélectionnera pas à la fin. Pourquoi ? | ||
+ | |||
+ | En revanche, la macro suivante | ||
+ | |||
+ | ! _Polyline _Multipause _SelLast | ||
+ | | ||
+ | Fonctionne avec la sélection de la polyligne à la fin parce que Multipause inclut //toutes// les sélections pour la polyligne et permet donc à SélDerniers de s’exécuter et de fonctionner à la fin. | ||
+ | |||
+ | =====Et maintenant, compliquons un peu les choses…===== | ||
+ | |||
+ | Certaines commandes appellent des boîtes de dialogue contenant de nombreuses options. | ||
+ | |||
+ | =====Créer une surface par sections à partir de deux courbes ouvertes===== | ||
+ | |||
+ | Imaginons que vous vouliez créer de manière répétitive une **Surface par sections** à partir de deux courbes // | ||
+ | |||
+ | < | ||
+ | _-Loft | ||
+ | _Pause | ||
+ | _Type=_Normal | ||
+ | _Simplify=_None | ||
+ | _Closed=_No | ||
+ | _Enter | ||
+ | </ | ||
+ | |||
+ | Remarquez que lorsque vous appelez la commande, vous avez immédiatement une Pause pour sélectionner vos courbes. | ||
+ | |||
+ | =====Modifier cette macro pour l’utiliser avec des courbes fermées===== | ||
+ | |||
+ | Essayez à présent avec deux courbes fermées. | ||
+ | |||
+ | Ajoutez une pause au bon endroit pour vérifier et ajuster la jointure à l’écran : | ||
+ | |||
+ | < | ||
+ | _-Loft | ||
+ | _Pause | ||
+ | _Pause | ||
+ | _Type=_Normal | ||
+ | _Simplify=_None | ||
+ | _Closed=_No | ||
+ | _Enter | ||
+ | </ | ||
+ | |||
+ | Si vous écrivez Entrée au lieu de Pause, vous indiquez à Rhino que vous ne souhaitez rien spécifier. Que la jointure peut être laissée telle qu’elle est par défaut. | ||
+ | |||
+ | < | ||
+ | _-Loft | ||
+ | _Pause | ||
+ | _Enter | ||
+ | _Type=_Normal | ||
+ | _Simplify=_None | ||
+ | _Closed=_No | ||
+ | _Enter | ||
+ | </ | ||
+ | |||
+ | Ou, vous pouvez indiquer une autre option de jointure pour SurfaceParSections en descendant au niveau de la sous-option de jointure : | ||
+ | |||
+ | < | ||
+ | _-Loft | ||
+ | _Pause | ||
+ | _Natural | ||
+ | _Enter | ||
+ | _Type=_Normal | ||
+ | _Simplify=_None | ||
+ | _Closed=_No | ||
+ | _Enter | ||
+ | </ | ||
+ | |||
+ | (Entrée après « Natural » est nécessaire pour sortir du niveau de l’option « jointure » et revenir au niveau des options de SurfaceParSections.) | ||
+ | |||
+ | // | ||
+ | |||
+ | |||
+ | ======Utiliser des macros pour définir rapidement les options de votre interface====== | ||
+ | |||
+ | Les macros peuvent aussi être utilisées pour définir automatiquement diverses options GUI et des propriétés du document sans avoir à naviguer dans la boîte de dialogue d' | ||
+ | |||
+ | < | ||
+ | -_DocumentProperties | ||
+ | _Mesh _Custom | ||
+ | _MaxAngle=0 _AspectRatio=0 | ||
+ | _MinEdgeLength=0 _MaxEdgeLength=0 | ||
+ | _MaxEdgeSrf=0.01 _GridQuads=16 | ||
+ | _Refine=Yes _JaggedSeams=No | ||
+ | _SimplePlanes=No | ||
+ | _Enter | ||
+ | _Enter | ||
+ | </ | ||
+ | |||
+ | Pourquoi y a-t-il deux fois « Entrée » à la fin ? | ||
+ | |||
+ | Vous êtes descendu deux niveaux dans -_DocumentProperties (PropriétésDocument), | ||
+ | |||
+ | La macro suivante a été créée par Jeff LaSor, pour activer ou désactiver le pointeur en croix : | ||
+ | |||
+ | Pour ACTIVER ou DÉSACTIVER le pointeur en croix, écrivez la macro suivante pour un bouton : | ||
+ | < | ||
+ | -_Options _Appearance _Visibility | ||
+ | _Crosshairs _Enter _Enter _Enter | ||
+ | </ | ||
+ | Vous constatez qu’il indique à chaque fois le nom de l’option et de la sous-option de la commande. | ||
+ | |||
+ | **EnterEnd** est un bon moyen pour ressortir d’une commande sans avoir à compter le nombre de sous-niveaux dans lesquels vous êtes descendu. | ||
+ | |||
+ | < | ||
+ | -_Options _Appearance _Visibility _Crosshairs _EnterEnd | ||
+ | </ | ||
+ | |||
+ | Ou, si vous utilisez tout simplement un point d’exclamation **!** à la fin (ce qui dans un script signifie « terminer maintenant ! »), | ||
+ | |||
+ | Le script ACTIVE ou DÉSACTIVE simplement le pointeur en croix. Mais si vous voulez un script qui l’ACTIVE toujours et un autre qui le DÉSACTIVE toujours, voici à quoi cela ressemblerait : | ||
+ | |||
+ | Version toujours ACTIVÉ : | ||
+ | < | ||
+ | -_Options _Appearance _Visibility | ||
+ | _Crosshairs=_Show ! | ||
+ | </ | ||
+ | Version toujours DÉSACTIVÉ : | ||
+ | < | ||
+ | -_Options _Appearance _Visibility | ||
+ | _Crosshairs=_Hide ! | ||
+ | </ | ||
+ | Remarquez bien que nous utilisons un **!** ici. Remarquez aussi que vous pouvez assigner directement les valeurs disponibles pour les options en utilisant l’opérateur « = ». | ||
+ | |||
+ | (Merci, Jeff) | ||
+ | |||
+ | ======Autres outils et commandes utiles pour l’écriture de macros====== | ||
+ | |||
+ | Voici quelques astuces pratiques pour écrire des macros plus complexes. | ||
+ | |||
+ | < | ||
+ | _Select (Sélectionner) | ||
+ | _SelLast (SélDerniers) | ||
+ | _SelPrev (SélPréc) | ||
+ | _SelNone (RienSélectionner) | ||
+ | _SetObjectName (DéfinirNomObjet) | ||
+ | _SetGroupName (NommerGroupe) | ||
+ | _SelGroup (SélGroupe) | ||
+ | _SelName (SélNom) | ||
+ | _Group (Grouper) | ||
+ | _Ungroup (Dégrouper) | ||
+ | </ | ||
+ | Pour définir le nom d’un seul objet (ce qui est déjà une macro !) : | ||
+ | < | ||
+ | _Properties _Pause _Object _Name | ||
+ | [Insérez le nom de votre objet ici] _Enter _Enter | ||
+ | </ | ||
+ | Pour annuler le nom d’un seul objet (sans supprimer l’objet) | ||
+ | < | ||
+ | _Properties _Pause _Object _Name | ||
+ | “ “ _Enter _Enter (guillemets espace guillemets pour le nom) | ||
+ | </ | ||
+ | |||
+ | =====Exemples d’utilisation des outils précédents===== | ||
+ | |||
+ | Regardez la macro suivante : | ||
+ | |||
+ | < | ||
+ | _Select _Pause _Setredrawoff | ||
+ | _BoundingBox _World _Enter | ||
+ | _Selnone _Sellast | ||
+ | _OffsetSrf _Solid _Pause | ||
+ | _Delete _Sellast | ||
+ | _BoundingBox _World _Enter | ||
+ | _Delete _Setredrawon | ||
+ | </ | ||
+ | Elle crée une boîte de contour décalée autour d’un objet. Le décalage est indiqué par l’utilisateur. | ||
+ | |||
+ | **//En tant que dernier exemple,// | ||
+ | |||
+ | Remarquez l’utilisation d’un groupe nommé et de plusieurs commandes de sélection. | ||
+ | |||
+ | < | ||
+ | _Select _Pause _Noecho _Setredrawoff | ||
+ | _Group _Enter _SetGroupName TexTemp | ||
+ | _BoundingBox _CPlane _Enter | ||
+ | _SelNone _SelLast _PlanarSrf | ||
+ | _SelPrev _Delete _SelLast | ||
+ | _AreaCentroid _Delete | ||
+ | _Sellast _SelGroup TexTemp | ||
+ | _Ungroup _Group _Setredrawon | ||
+ | |||
+ | </ | ||
+ | |||
+ | //Dernière modification : | ||
+ | |||
+ | **N’hésitez pas à ajouter des éléments ou à modifier ce tutoriel !** | ||
+ | C’est un article en cours de développement... | ||