As macros de comando podem conter comandos, caracteres especiais, expressões DIESEL ou código de programação AutoLISP.
É possível definir e, em seguida, atribuir uma macro a um comando modificando a propriedade Macro de um comando no editor Personalizar interface do usuário (Windows) ou na caixa de diálogo Personalizar (Mac OS).
Uma macro define a ação que deve ser executada quando um elemento da interface do usuário é utilizado. Ela pode ser simples como um comando (como um círculo) e incluir caracteres especiais (como ^C^C).
Por exemplo, a macro ^C^C_.circle \1, desenha um círculo com um raio de uma unidade. Os componentes que definem esta macro estão explicados na tabela a seguir.
Componentes na macro CIRCULO |
||
---|---|---|
Componente |
Tipo de componente |
Resultado |
^C^C |
Sequência de caracteres especiais de controle |
Sequência que é semelhante a pressionar a tecla Esc duas vezes. |
_ |
Caractere especial de controle |
Indica que o comando a seguir deve utilizar o nome do comando global e não o nome de comando localizado. |
. |
Caractere especial de controle |
Indica que o comando a seguir deve utilizar a definição padrão do comando e não o comando redefinido que possa existir. |
CIRCLE |
Comando |
Inicia o comando CIRCULO. |
Caracteres especiais |
Um espaço é como pressionar a barra de espaço ao utilizar um comando. |
|
\ |
Caractere especial de controle |
Cria uma pausa para a entrada do usuário; neste exemplo é uma pausa para o ponto central do círculo. |
1 |
Caractere especial de controle |
Resposta ao prompt para o raio do círculo; neste exemplo é uma unidade de 1. |
Quando um botão na interface do usuário é clicado, a macro atribuída a ele é executada no contexto atual do programa. Isto significa que a macro tentará fornecer respostas para o prompt atual. Se você deseja assegurar-se de que não há nenhum comando ativo no momento quando a macro for executada, preceda sua macro com a sequência de comando ^C. Embora um único ^C cancele a maioria dos comandos, ^C^C é necessário para retornar para o prompt do comando de um comando de cotagem e ^C^C^C é requerido com base na opção atual do comando -CAMADA. ^C^C executa o cancelamento da maioria das sequências de comandos e é a sequência recomendada a ser utilizada.
Cada caractere em uma macro é significativo, mesmo um espaço em branco. Quando você coloca um espaço no fim de uma macro, ele é interpretado como se você tivesse pressionado a barra de espaço ou Enter para concluir o comando.
Os comandos que são parte do AutoCAD ou produtos baseados no AutoCAD devem ser precedidos por um caractere de ponto (.). O caractere de ponto permite o comando padrão a ser usado, mesmo se tiver sido indefinido com o comando DESFDEF. Esta precaução torna a macro previsível quando for usada em outros computadores que compartilham o mesmo arquivo de personalização (CUI/CUIx).
A primeira vez que criar uma macro, é comum criar com os nomes de comandos e valores de opções no idioma que você conhece. Cada comando e opção tem um local e um nome global para que suas macros sejam usadas em todos os idiomas diferentes que o AutoCAD suporta. O suporte para idiomas diferentes de inglês não requer muito trabalho adicional da sua parte; coloque um caractere de sublinhado (_) antes de cada comando ou opção. O caractere de sublinhado sinaliza para o AutoCAD que o valor do nome do comando ou da opção deve ser convertido antes de ser executado.
O modo Seleção de objeto único cancela a repetição normal do prompt Selecionar objetos em comandos de edição. Depois que você selecionar um objeto e responder a outros prompts, o comando é terminado.
Considere a macro no exemplo a seguir:
^C^C._erase single
Essa macro termina o comando atual e inicia o comando APAGAR no modo Seleção de objeto único. Após iniciar a macro, poderá selecionar um objeto único ou clicar em uma área em branco no desenho e especificar uma seleção de janela ou por intersecção. Todos os objetos que você selecionar usando este método serão apagados.
Uma vez que você tenha criado a macro, pode desejar repeti-la várias vezes antes de mover para um comando diferente. Em uma macro, use um asterisco (*) para indicar que o comando em uma macro será repetido até que você pressione ESC ou inicie outra macro que comece com ^C.
As macros nos exemplos a seguir repetem os 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
Algumas macros exigem terminadores especiais. Por exemplo, o comando TEXTO requer que você pressione Enter ao invés da barra de espaço para terminar o comando; e alguns comandos exigem mais do que pressionar a barra de espaço ou Enter para serem concluídos.
Duas convenções especiais resolvem estes problemas.
Compare as seguintes macros:
ucs ucs ;
O primeiro exemplo inicia o comando UCS e, como a linha termina com um espaço, o pressionamento da barra de espaço é simulado. O seguinte prompt será exibido:
Especifica a origem da UCS ou [Face/Nomeado/Objeto/Anterior/Vista/Universal/X/Y/Z/Z Eixo] <Universal>:
O segundo exemplo inicia o comando UCS, simula o pressionamento da barra de espaço e, em seguida, um pressionamento da tecla Enter é simulado, o que aceita o valor padrão (Universal).
Os caracteres em uma macro aparecem no prompt de comando, como se você tivesse digitado os caracteres no teclado. Esta duplicação de exibição é denominada eco. É possível suprimir o eco de macro com a variável de sistema MENUECHO. Se ecos e prompts da entrada de item estiverem ativados, um ^P na frente da macro os desativará temporariamente. Também é possível utilizar ^Q em uma macro para suprimir a exibição de todos os prompts e as entradas do histórico da linha de comando.