Le stringhe delle macro di comandi consentono di indicare ad AutoCAD i comandi e le variabili di sistema da eseguire insieme ad eventuali input previsti consentiti alla riga di comando. Nella stringa di una macro di comandi possono essere inclusi anche caratteri speciali, espressioni DIESEL e codice di programmazione AutoLISP.
È possibile creare stringhe delle macro di comandi personalizzate che consentono di:
È possibile definire e modificare le stringhe delle macro di comandi con:
La stringa di una macro di comandi è definita come una serie di comandi, nonché di opzioni e valori previsti con una sintassi specifica, ma è simile all'input immesso alla riga di comando di AutoCAD. Quando si interagisce con l'interfaccia utente del programma, ad esempio un pulsante di selezione sulla barra multifunzione o una voce in un menu di scelta rapida, si esegue la stringa di una macro di comandi. La sintassi di una macro di comandi può essere semplice come un singolo nome di comando (ad esempio CERCHIO) o più complessa con l'inclusione di caratteri speciali (ad esempio ^C^C_.circle \1).
Di seguito sono elencati i caratteri speciali più utilizzati nelle stringhe delle macro di comandi:
Di seguito sono riportati la sintassi utilizzata per avviare il comando CERCHIO e disegnare un cerchio con un raggio di 5 alla riga di comando di AutoCAD e il formato dello stesso input come stringa della macro di comandi:
Sequenza della riga di comando | Sintassi della stringa della macro equivalente |
---|---|
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; |
Di seguito è riportato il formato che potrebbe avere la stringa finale della macro di comandi:
|
|
La stringa della macro precedente potrebbe anche essere scritta come segue senza punto e virgola, poiché uno spazio in una macro è come premere la BARRA SPAZIATRICE alla riga di comando di AutoCAD:
^C^C_.circle \5
Di seguito è riportato un altro esempio di utilizzo del comando MOCORO per copiare e quindi ruotare gli oggetti copiati alla riga di comando di AutoCAD e di come la sequenza di comandi appare come la stringa di una macro di comandi:
Sequenza della riga di comando | Sintassi della stringa della macro equivalente |
---|---|
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; \ ; |
Di seguito è riportato il formato che potrebbe avere la stringa finale della macro di comandi:
|
|
Quando viene fatto clic su un pulsante nell'interfaccia utente, la macro ad esso assegnata viene eseguita nel contesto corrente del programma. Ciò significa che la macro tenterà di fornire risposte al messaggio di richiesta corrente. Per accertarsi che al momento dell'esecuzione della macro non sia attivo alcun comando, far precedere la macro dalla sequenza di comandi ^C. Sebbene un singolo ^C annulli la maggior parte dei comandi, è necessario ^C^C per tornare alla riga di comando da un comando di quotatura e ^C^C^C è necessario in base all'opzione corrente del comando -LAYER. ^C^C gestisce l'annullamento della maggior parte delle sequenze di comandi ed è la sequenza consigliata da utilizzare.
I comandi che fanno parte di AutoCAD o dei prodotti basati su AutoCAD devono essere preceduti da un carattere punto (.). Il carattere punto consente l'utilizzo del comando standard anche se è stato impostato come non definito mediante il comando NUOVDEF. Questa precauzione rende la macro attribuibile quando viene utilizzata in altri computer che condividono lo stesso file di personalizzazione (CUI/CUIx).
Ogni carattere in una macro è significativo, persino uno spazio. Uno spazio viene interpretato come una pressione della BARRA SPAZIATRICE, che può determinare uno spazio nell'input fornito o come se si premesse il tasto INVIO. Il risultato è lo stesso di quello ottenuto utilizzando il comando o la variabile di sistema alla riga di comando.
Quando si crea inizialmente una macro, in genere si specificano nomi di comandi e valori di opzioni nella lingua del prodotto. Ogni comando e opzione dispone di un nome locale e di uno globale che permette di utilizzare le macro in altre lingue del prodotto. Il supporto di lingue diverse dall'inglese non richiede molto lavoro aggiuntivo da parte dello sviluppatore. È sufficiente anteporre ad ogni comando o opzione un carattere di sottolineatura (_). Il carattere di sottolineatura indica al programma che il nome di comando o il valore di opzione devono essere tradotti nella lingua locale del prodotto prima che venga eseguito.
La modalità di selezione di singoli oggetti annulla la normale ripetizione del messaggio Selezionare oggetti nei comandi di modifica. Dopo aver selezionato un oggetto e aver risposto agli altri messaggi di richiesta, il comando viene terminato.
Si consideri la macro nel seguente esempio:
^C^C._erase single
Questa macro termina il comando corrente e avvia il comando CANCELLA nella modalità di selezione di singoli oggetti. Dopo l'avvio della macro, è possibile selezionare un singolo oggetto oppure fare clic su un'area vuota del disegno e specificare una selezione di tipo Interseca o Finestra. Gli oggetti selezionati mediante questi metodi vengono cancellati.
Dopo aver creato una macro, può essere necessario ripeterla più volte prima di passare ad un altro comando. È possibile utilizzare un asterisco iniziale (*) per indicare che il comando di una macro deve essere ripetuto finché non si preme ESC o non si avvia un'altra macro che inizia con ^C.
Le macro negli esempi che seguono ripetono i comandi:
*^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
Alcune macro richiedono terminatori speciali. Ad esempio, per terminare il comando TESTO è necessario premere INVIO anziché la BARRA SPAZIATRICE e per completare alcuni comandi è necessario premere più volte la BARRA SPAZIATRICE o INVIO.
Per risolvere questi problemi si ricorre a due convenzioni speciali.
Si confrontino le macro riportate di seguito:
ucs ucs ;
Il primo esempio avvia il comando UCS e, poiché la riga termina con uno spazio, esegue un'azione che simula la pressione della BARRA SPAZIATRICE. Viene visualizzato il messaggio di richiesta riportato di seguito:
Specificare origine dell'UCS o [Faccia/con NOme/OGgetto/Precedente/Vista/Globale/X/Y/Z/Asse-z] <Globale>:
Il secondo esempio avvia il comando UCS, simula la pressione della BARRA SPAZIATRICE, quindi simula la pressione del tasto INVIO per accettare il valore di default (Globale).
I caratteri di una macro vengono visualizzati alla riga di comando come se fossero stati digitati sulla tastiera. Questa visualizzazione duplicata è definita eco. È possibile sopprimere gli echi delle macro mediante la variabile di sistema MENUECHO. Se eco e messaggi di richiesta dagli input dell'utente sono attivati, è possibile anteporre ^P alla macro per disattivarli temporaneamente. È inoltre possibile utilizzare ^Q in una macro per sopprimere la visualizzazione di tutti i messaggi di richiesta e dell'input dalla cronologia della riga di comando.