Informazioni sulle stringhe delle macro di comandi

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:

Nozioni di base sulle stringhe delle macro di comandi

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:

Nota: AutoLISP non è disponibile in AutoCAD LT for Mac OS e ObjectARX non è disponibile in AutoCAD LT for Windows o Mac OS.

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:



Elemento Sintassi Descrizione
1 ^C^C ^C^C significa premere ESC due volte prima di eseguire la macro.
2 ._CERCHIO; Avvia il comando CERCHIO, indipendentemente dal Language Pack corrente di AutoCAD.
3 \ Richiede il punto centrale in cui deve essere disegnato il cerchio.
4 5; Specifica il raggio del cerchio ed esce dal comando CERCHIO.

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
Nota: L'utilizzo del punto e virgola nella stringa di una macro semplifica la lettura e specifica quando è previsto un tasto INVIO, poiché uno spazio può indicare uno spazio effettivo nell'input fornito al comando o alla variabile di sistema precedente.

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:



Elemento Sintassi Descrizione
1 ^C^C ^C^C significa premere ESC due volte prima di eseguire la macro.
2 ._MOCORO; Avvia il comando MOCORO, indipendentemente dal Language Pack corrente di AutoCAD.
3 \\; Richiede la selezione degli oggetti; qui sono disponibili due barre rovesciate che consentono di specificare due punti per la selezione mediante finestra o intersezione.
4 \ Richiede il punto base da utilizzare per copiare gli oggetti selezionati.
5 _C; Utilizza l'opzione Copia.
6 \; Richiede il secondo punto di spostamento.
7 _R; Utilizza l'opzione Ruota.
8 \ Richiede l'angolo di rotazione.
9 ; Chiude il comando MOCORO.

Annullamento del comando attivo

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.

Utilizzo di comandi standard nelle macro

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).

Nota: A partire da AutoCAD LT 2024, i comandi possono essere non definiti.

Verifica dei caratteri delle macro

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.

Nota: Quando si inserisce uno spazio alla fine della macro, viene interpretato come se fosse stato premuto il tasto INVIO per completare il comando.

Supporto internazionale per le macro

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.

Utilizzo della modalità di selezione di oggetto singolo

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.

Ripetizione dei comandi nelle macro

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 
Nota: Questa funzione non può essere utilizzata per specificare opzioni o per le macro nei menu del gruppo di immagini.

Terminare le macro

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).

Sopprimere echi e messaggi di richiesta nelle macro

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.