Las macros de comandos puede contener comandos, caracteres especiales, expresiones DIESEL o código de programación de AutoLISP.
Puede definir y, a continuación, asignar una macro a un comando modificando la propiedad Macro de un comando en el editor Personalizar interfaz de usuario (Windows) o en el cuadro de diálogo Personalizar (Mac OS).
Una macro define la acción que se debe llevar a cabo cuando se utiliza un elemento de la interfaz de usuario. Puede ser tan sencilla como un único comando (por, ejemplo, CIRCULO) e incluir caracteres especiales (por ejemplo, ^C^C).
Por ejemplo, la macro ^C^C_.circle \1, dibuja un círculo con un radio de 1 unidad. Los componentes que definen esta macro se explican en la tabla que se incluye a continuación.
Componentes de la macro CIRCULO |
||
---|---|---|
Componente |
Tipo de componente |
Resultado |
^C^C |
Secuencia de caracteres de control especial |
Secuencia que equivale a pulsar ESC dos veces. |
_ |
Carácter de control especial |
Indica que el comando que sigue debe utilizar el nombre global del comando y no el nombre localizado. |
. |
Carácter de control especial |
Indica que el comando que sigue debe utilizar la definición estándar del comando y no el comando redefinido que pudiera existir. |
CIRCULO |
Nombre de comando |
Inicia el comando CIRCULO. |
Carácter especial |
Un espacio es similar a pulsar la barra espaciadora mientras se utiliza un comando. |
|
\ |
Carácter de control especial |
Crea una pausa para que el usuario introduzca datos; en este ejemplo se trata del centro del círculo. |
1 |
Valor de entrada |
Respuesta a la solicitud del radio del círculo; en este ejemplo es una unidad de 1. |
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 marco, 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.
Todos los caracteres de una macro son significativos, incluidos los espacios en blanco. Cuando se coloca un espacio al final de la macro, se interpreta como si se hubiera pulsado la barra espaciadora o Intro para completar el comando.
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 marco mostrar un comportamiento predecible cuando se utilice en otros equipos que compartan el mismo archivo de personalización (CUI/CUIx).
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.
Véase la macro del siguiente ejemplo:
^C^C._erase single
Esta macro finaliza el comando actual y ejecuta el comando BORRA en el modo de designació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 tecleado caracteres en 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.