Las cadenas de macros de comandos se utilizan para indicar a AutoCAD los comandos y las variables de sistema que se deben ejecutar junto con cualquier entrada prevista permitida en la solicitud de comando. Los caracteres especiales, las expresiones DIESEL y el código de programación de AutoLISP también se pueden incluir en una cadena de macro de comandos.
Puede crear cadenas de macros de comandos personalizadas que permitan realizar lo siguiente:
Las cadenas de macros de comandos se definen y se editan con los siguientes componentes:
Una cadena de macro de comandos se define como una serie de comandos y opciones y valores esperados con una sintaxis especializada, aunque similar a la entrada que se especifica en la solicitud de comando de AutoCAD. Cuando se interactúa con la interfaz de usuario del programa, por ejemplo, al hacer clic en un botón de la cinta de opciones o en un elemento de un menú contextual, se está ejecutando una cadena de macro de comandos. La sintaxis de una macro de comandos puede ser tan sencilla como un único nombre de comando (como CIRCULO) o más compleja con la inclusión de caracteres especiales (como ^C^C_.circle \1).
A continuación, se enumeran los caracteres especiales más utilizados en las cadenas de macros de comandos:
A continuación, se muestra lo que aparece al iniciar el comando CIRCULO y dibujar un círculo con un radio de 5 en la solicitud de comando de AutoCAD, y el aspecto que tendrá esa misma entrada como una cadena de macro de comandos:
Secuencia en solicitud de comando | Equivalente en la sintaxis de cadena 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; |
A continuación, se muestra el aspecto final de la cadena de macro de comandos:
![]() |
|
La cadena de macro anterior también se podría haber escrito de la siguiente forma, sin punto y coma, ya que un espacio en una macro es similar a pulsar la barra espaciadora en la solicitud de comando de AutoCAD, como se muestra a continuación:
^C^C_.circle \5
A continuación, se muestra otro ejemplo de uso del comando MOCORO para copiar y girar los objetos copiados en la solicitud de comando de AutoCAD y el aspecto que presentaría la secuencia de comandos como una cadena de macro de comandos:
Secuencia en solicitud de comando | Equivalente en la sintaxis de cadena 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; \ ; |
A continuación, se muestra el aspecto final de la cadena de macro de comandos:
![]() |
|
Cuando se hace clic en un botón en la interfaz de usuario, la macro asignada al mismo se ejecuta en el contexto actual del programa. Esto significa que la macro intentará proporcionar una respuesta a la solicitud actual. Si desea asegurarse de que no haya ningún comando activo cuando se ejecute la macro, añada ^C al inicio de la secuencia de comandos de la macro. Aunque un solo ^C cancela la mayoría de los comandos, es necesario ^C^C para volver a la solicitud de comando desde un comando de acotación y, en función de la opción actual del comando -CAPA, se requiere ^C^C^C. ^C^C permite cancelar la mayoría de las secuencias de comandos y, por lo tanto, es la secuencia que se recomienda utilizar.
Los comandos que formen parte de AutoCAD o de productos basados en AutoCAD deben ir precedidos por un carácter de punto (.). El carácter de punto permite utilizar el comando estándar, incluso aunque se haya anulado su definición mediante el comando ANULADEF. Esta medida de precaución permite a la macro mostrar un comportamiento predecible cuando se utilice en otros equipos que compartan el mismo archivo de personalización (CUI/CUIx).
Todos los caracteres de una macro son significativos, incluidos los espacios en blanco. Un espacio se interpreta como una pulsación de la barra espaciadora, lo que puede dar como resultado un carácter de espacio en la entrada proporcionada o como si se hubiera pulsado la tecla Intro. El resultado es igual a utilizar el comando o la variable de sistema en la solicitud de comando.
Al crear por primera vez una macro, por lo general, debe crearla con los nombres de comando y los valores de opción en el idioma del producto con el que está familiarizado. Cada comando y opción tiene un nombre local y global que permite que otros idiomas del producto utilicen las macros. Para obtener compatibilidad con idiomas distintos al inglés, no es necesario que realice ninguna tarea; debe incluir al principio de cada comando u opción un carácter de subrayado (_). El carácter de subrayado indica al programa que el nombre de comando o el valor de opción se deben traducir al idioma local del producto antes de que se ejecuten.
El modo de designación de un único objeto cancela la repetición de la solicitud Designar objetos en los comandos de edición. Después de designar un objeto y de responder al resto de solicitudes, finaliza el comando.
Consulte la macro del siguiente ejemplo:
^C^C._erase single
Esta macro finaliza el comando actual y ejecuta el comando BORRA en el modo de selección de un único objeto. Una vez que se ha iniciado la macro, puede designar un único objeto o hacer clic en un área en blanco del dibujo y especificar una ventana o una captura. Los objetos seleccionados mediante estos métodos se borran.
Una vez que haya creado una macro, quizá necesite repetirla varias veces antes de pasar a un comando distinto. En una macro, utilice un asterisco inicial (*) para indicar que el comando de la macro se debe repetir hasta que se pulse Esc o se inicie otra macro que comience con ^C.
Las macros de los siguientes ejemplos repiten los comandos:
*^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
Algunas macros requieren terminadores especiales. Por ejemplo, el comando TEXTO requiere que se pulse Intro en vez de la barra espaciadora para finalizar el comando y algunos comandos precisan más de una pulsación de la barra espaciadora para completarse.
Dos convenciones especiales resuelven estos problemas.
Compare las macros siguientes:
ucs ucs ;
En el primer ejemplo, se inicia el comando SCP y, dado que la línea termina con un espacio, se simula la pulsación de la barra espaciadora. Aparecerá la solicitud siguiente:
Indique origen de SCP o [Cara/GUardado/oBjeto/PRev/Vista/Univ/X/Y/Z/ejEZ] <Univ>:
En el segundo ejemplo, se inicia el comando SCP, y se simula la pulsación de la barra espaciadora y, a continuación, la pulsación de la tecla Intro, lo que permite aceptar el valor por defecto (Univ).
Los caracteres de una macro aparecen en la solicitud de comando como si se hubieran escrito caracteres con el teclado. Esta duplicación de la visualización recibe el nombre de eco. Puede desactivar la función de eco de macros con la variable de sistema MENUECHO. Si el eco y las solicitudes de la entrada de opción están activados, la secuencia ^P ubicada delante de la macro los desactivará temporalmente. También puede utilizar ^Q en una macro para desactivar la visualización de todas las solicitudes y entradas del historial de la línea de comando.