À propos des chaînes de macro de commandes

Les chaînes de macro de commande sont utilisées pour indiquer à AutoCAD les commandes et variables système à exécuter avec les entrées attendues autorisées sur la ligne de commande. Les caractères spéciaux, les expressions DIESEL et le code de programmation AutoLISP peuvent également être inclus dans une chaîne de macro de commande.

Vous pouvez créer des chaînes de macro de commandes personnalisées qui permettent de :

Vous pouvez définir et modifier les chaînes de macro de commande à l'aide des éléments suivants :

Présentation des chaînes de macro de commandes

Une chaîne de macro de commande est définie comme une série de commandes et d'options et de valeurs attendues, avec une syntaxe spécialisée, mais elle est similaire à l'entrée que vous entrez sur la ligne de commande d'AutoCAD. Lorsque vous interagissez avec l'interface utilisateur du programme, par exemple en cliquant sur un bouton du ruban ou un élément d'un menu contextuel, vous exécutez une chaîne de macro de commande. La syntaxe d'une macro de commande peut être aussi simple qu'un nom de commande unique (tel que CERCLE) ou plus complexe avec l'inclusion de caractères spéciaux (tels que ^C^C_.circle \1). .

Les caractères spéciaux les plus utilisés dans les chaînes de macro de commandes sont répertoriés ci-dessous :

Remarque : AutoLISP n'est pas disponible dans AutoCAD LT for Mac OS et ObjectARX n'est pas disponible dans AutoCAD LT for Windows ou dans AutoCAD LT for Mac OS.

Voici à quoi ressemble le lancement de la commande CERCLE et la création d'un cercle d'un rayon de 5 sur la ligne de commande d'AutoCAD, et à quoi ressemble cette même entrée en tant que chaîne de macro de commande :

Séquence de l’invite de commande Équivalence dans la syntaxe de la chaîne de macro
Command: CIRCLE
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Specify radius of circle or [Diameter] <2.5000>: 5
CIRCLE;
\
5;

Voici à quoi peut ressembler la chaîne de macro de commande finale :



Élément Syntaxe Description
1 ^C^C ^C^C équivaut à appuyer deux fois sur la touche Échap avant d'exécuter la macro.
2 ._CERCLE; Lance la commande CERCLE, indépendamment du module linguistique AutoCAD courant.
3 \ Invite à indiquer le point de centre sur lequel le cercle doit être dessiné
4 5; Spécifie le rayon du cercle et met fin à la commande CERCLE

La chaîne de macro précédente aurait également pu être écrite comme suit sans les points-virgules, car un espace dans une macro équivaut à appuyer sur la barre d'espacement sur la ligne de commande AutoCAD :

^C^C_.circle \5
Remarque : L'utilisation de points-virgules dans une chaîne de macro facilite la lecture et la détection d'une entrée, car un espace peut indiquer un espace réel dans l'entrée fournie à la commande ou à la variable système précédente.

Voici un autre exemple d'utilisation de la commande MOCORO pour copier et faire pivoter ces objets copiés sur la ligne de commande d'AutoCAD et la séquence de commandes sous forme de chaîne de macro de commande :

Séquence de l'invite de commande Équivalence dans la syntaxe de la chaîne de macro
Command: MOCORO
Select objects:
Specify opposite corner:
Select objects:
Base point:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: C
Second point of displacement/Undo/<eXit>:
Second point of displacement/Undo/<eXit>: 
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: R
Second Point or Rotation angle:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>:
MOCORO;
\
\
;
\
C;
\
; 
R;
\
;

Voici à quoi peut ressembler la chaîne de macro de commande finale :



Élément Syntaxe Description
1 ^C^C ^C^C équivaut à appuyer deux fois sur la touche Échap avant d'exécuter la macro.
2 ._MOCORO; Lance la commande MOCORO, indépendamment du module linguistique AutoCAD courant.
3 \\; Invite à sélectionner un objet. Deux barres obliques inverses permettent de spécifier deux points pour la sélection par fenêtre ou capture.
4 \ Invite à indiquer le point de base à utiliser pour copier les objets sélectionnés.
5 _C; Utilise l'option Copier.
6 \; Invite à indiquer le deuxième point de déplacement.
7 _R; Utilise l'option Rotation.
8 \ Invite à saisir l'angle de rotation.
9 ; Quitte la commande MOCORO.

Annulation de la commande active

Lorsque vous cliquez sur un bouton de l'interface utilisateur, la macro qui lui est affectée est exécutée dans le contexte courant du programme. Cela signifie que la macro va tenter d'envoyer des réponses à l'invite courante. Si vous souhaitez vous assurer qu'aucune commande n'est active lors de l'exécution de la macro, ajoutez la séquence de commandes ^C en tant que préfixe à votre commande. Bien qu'un simple symbole ^C permette d'annuler la plupart des commandes, les symboles ^C^C sont requis pour retourner à l'invite de commande à partir de la commande de cotation, et les symboles ^C^C^C sont requis en fonction de l'option courante de la commande -CALQUE. La séquence ^C^C permet d'annuler la plupart des séquences de commande et il est donc recommandé de l'utiliser.

Utilisation des commandes standard dans les macros

Les commandes d'AutoCAD ou des produits basés sur AutoCAD doivent utiliser un point (.) en tant que préfixe. Le point permet d'utiliser la commande standard même si sa définition a été annulée à l'aide de la commande NONDEF. Cette précaution rend la macro prévisible lors de son utilisation sur d'autres ordinateurs partageant le même fichier de personnalisation (CUI/CUIx).

Remarque : À partir d'AutoCAD LT 2024, les commandes peuvent ne pas être définies.

Vérification des caractères d'une macro

Chaque caractère d'une macro a sa propre signification, même les espaces. Un espace est interprété comme une pression sur la barre d'espacement, ce qui peut générer un espace dans l'entrée fournie ou comme si vous aviez appuyé sur la touche Entrée. Le résultat est le même que si vous utilisiez la commande ou la variable système sur la ligne de commande.

Remarque : Si vous placez un espace à la fin de la macro, il est traité comme si vous avez appuyé sur la touche Entrée pour mettre fin à la commande.

Prise en charge d'autres langues dans les macros

Lorsque vous créez une macro, vous utilisez les noms de commande et les valeurs d'options dans la langue du produit que vous maîtrisez. Chaque commande/option dispose d'un nom local et d'un nom global qui permet aux macros d'être utilisées par les autres langues du produit. La prise en charge dans une langue autre que l'anglais ne nécessite pas beaucoup de travail supplémentaire de votre part. Il vous suffit de faire précéder chaque commande ou option d'un caractère de soulignement (_). Ce caractère de soulignement indique au programme que le nom de la commande ou la valeur de l'option doit être traduit dans la langue locale du produit avant son exécution.

Utilisation du mode de sélection d'objet unique

Le mode de sélection d'objet unique annule la répétition normale de l'invite Choix des objets dans les commandes d'édition. Une fois que vous avez sélectionné un objet et répondu aux invites, la commande prend fin.

Examinez la macro de l'exemple suivant :

^C^C._erase single 

Cette macro arrête la commande courante et lance la commande EFFACER en mode de sélection d'objet unique. Une fois la macro lancée, vous pouvez sélectionner un seul objet ou cliquer sur une zone vide du dessin, puis spécifier une sélection de fenêtre/d'intersection. Tous les objets sélectionnés à l'aide de ces méthodes sont effacés.

Répétition de commandes dans les macros

Après avoir créé une macro, vous pouvez répéter son utilisation avant de passer à une autre commande. Dans une macro, utilisez un astérisque (*) au début pour indiquer que la commande d'une macro doit être répétée jusqu'à ce que vous appuyiez sur la touche Echap ou lanciez une autre macro commençant par ^C.

Les macros des exemples suivants répètent les commandes :

*^C^C._move Single 
*^C^C._copy Single 
*^C^C._erase Single 
*^C^C._stretch Single Crossing 
*^C^C._rotate Single 
*^C^C._scale Single 
Remarque : Vous ne pouvez pas utiliser cette fonction pour choisir des options, ou dans les macros des menus de mosaïque d'images.

Arrêt des macros

Certaines macros requièrent des caractères de fin spéciaux. Par exemple, la commande TEXTE implique d'appuyer sur la touche Entrée plutôt que sur la touche d'espacement pour mettre fin à la commande, et certaines commandes requièrent plusieurs pressions de la barre d'espacement ou de la touche Entrée pour être arrêtées.

Deux conventions spéciales permettent de résoudre ces problèmes.

Comparez les deux macros suivantes :

ucs 
ucs ;

Le premier exemple lance la commande SCU et, puisque la ligne se termine par un espace, il simule une pression de la barre d'espacement. Les invites suivantes s'affichent :

Spécifiez l'origine du SCU ou [Face/NOmmé/OBjet/Précédent/Vue/Général/X/Y/Z/AxeZ] <Général>:

Le second exemple lance la commande SCU, simule une pression de la barre d'espacement, puis une pression de la touche Entrée pour accepter la valeur par défaut (Général).

Suppression de retours et d'invites dans les macros

Les caractères d'une macro s'affichent sur l'invite de commande comme si vous les aviez saisis au clavier. Cette duplication d'affichage est appelée écho. Vous pouvez supprimer l'écho des macros à l'aide de la variable système MENUECHO. Si les retours et les invites issus de la saisie d'un élément sont activés, vous pouvez introduire ^P devant la macro pour les désactiver temporairement. Vous pouvez également utiliser ^Q dans une macro pour supprimer l'affichage de toutes les invites et entrées de l'historique de la ligne de commande.