Utilizzo di AutoLISP nelle macro

La creazione di comandi in AutoLISP è un metodo più avanzato per l'utilizzo della funzione di personalizzazione del programma.

È possibile utilizzare espressioni e variabili AutoLISP per creare macro per l'esecuzione di attività complesse. Quando il programma carica un file CUI/CUIx, viene contemporaneamente caricato anche un file MNL con lo stesso nome e nella stessa posizione. L'inserimento del codice AutoLISP in un file MNL rappresenta un metodo efficace per caricare i comandi personalizzati che è possibile utilizzare in una macro.

Nota:
  • AutoCAD LT non supporta il caricamento automatico dei file MNL, ma i file possono essere caricati utilizzando la funzione LOAD di AutoLISP da un altro file LISP.
  • In AutoCAD solo in Windows, non disponibile in AutoCAD LT, è possibile specificare altri file AutoLISP da caricare nell'editor Personalizza interfaccia utente (IUPERS). La creazione di comandi in AutoLISP è un metodo più avanzato per l'utilizzo della funzione di personalizzazione del programma. Un po' di esperienza e pratica consentiranno di utilizzare questa funzione in modo efficiente.

Esempi

Valori preassegnati

Questo esempio è costituito da tre macro di comandi utilizzate per l'inserimento di un blocco.

La macro di comando richiede di specificare la larghezza della finestra.

^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P

La macro di comando richiede di specificare lo spessore della parete.

^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P

La macro di comando inserisce un blocco denominato "finestra" e richiede di specificare il punto di inserimento e la rotazione.

^C^C_INSERT window XScale !WINWID YScale !WALLTHK

L'asse X del blocco corrisponde alla larghezza della finestra corrente e l'asse Y corrisponde allo spessore della parete corrente.

Ridimensionamento dei grip

Questo esempio contiene due macro di comandi che consentono di aumentare o di ridurre il valore corrente della variabile di sistema GRIPSIZE.

La macro di comando aumenta di 1 il valore della variabile di sistema GRIPSIZE.

^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)

La macro di comando riduce di 1 il valore della variabile di sistema GRIPSIZE.

^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)

Per aggiungere il controllo della validità a tali macro di comandi, non è possibile utilizzare valori inferiori a 0 e superiori a 255 per la variabile di sistema GRIPSIZE.

Messaggio di richiesta di input dell'utente

Nell'esempio seguente viene richiesto di specificare due punti e viene disegnata una polilinea rettangolare con i punti specificati come angoli.

^P(setq a (getpoint "Enter first corner: "));\+
(setq b (getpoint "Enter opposite corner: "));\+ 
pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P
Chiamata di una macro assegnata ad una voce di menu a discesa (solo Windows)

Utilizzando la seguente sintassi è possibile eseguire a livello di programma una macro di una voce di un menu a discesa:

(menucmd "Gcustomizationgroup.element_ID=|")

La sintassi precedente funziona solo se la voce fa parte di un menu presente nella barra dei menu del programma ed è disponibile per l'uso.