Monitorare le variabili
Ci sono certe variabili molto importanti nel quotidiano uso del software (ad esempio vuoi che i bordi degli xref vengano stampati o no?), e che non sono sempre facili da trovare nell'interfaccia (sempre che ci siano). Da qualche tempo è stato implementato un monitor delle variabili che vi avvisa se qualcosa cambia, e vi dà l'opportunità di resettarla al valore da voi preferito. Io lo trovo piuttosto utile.

Altra cosa che ho sviluppato è un menù personalizzato dal quale accedo (e modifico con un click) le variabili che mi stanno più a cuore. Questo si può fare anche nella versione light del software, perché si tratta di macro che non usano autolisp ma la semplice riproduzione di comandi testuali come li si darebbe da riga di comando (prompt), usando spazio o punto e virgola per ogni invio.
Ad esempio fare un comando per sostituire zoom esteso, invece di digitare zoom, e poi extens, si scrive direttamente zoom;extens; o ancora meglio, per poter scrivere il comando in inglese e farlo funzionare anche nel software italiano, scrivere i comandi anteceduti da un trattino basso, che funzionerà come dizionario: _zoom;_extens; infine per cancellare eventuali comandi attivi prima di dare l'ordine, si antepone al tutto ^C^C, così ^C^C_zoom;_extens;.
Questo vale per qualunque comando si possa dare da tastiera. Più informazioni online.
Queste macro possono essere scritte come voci di menù, o pulsanti nella barra dei comandi, personalizzando l'interfaccia, cosa non proprio semplice (il comando è CUI) e per fortuna le modifiche apportate possono essere salvate e portate con sè da un pc all'altro. Forse è più facile invece scriverle come file di testo (script) da lanciare quando servono, anche se mancano dell'interattività che, complicando ancora la faccenda, si può inserire con un ulteriore linguaggio, Diesel, ad esempio usando un unico comando per fare un toggle tra due stati di una variabile (se accesa allora sepegni/se spenta allora accendi), o di mostrare lo stato corrente della variabile direttamente nella voce del menù.
Di seguito alcuni miei comandi personalizzati
La prima immagine mostra, in grigio, il valore di alcune variabili non editabili dal menù, come le unità di misura correnti. Ad esempio la prima voce ha, nel display/name (n.b.: il comando/macro rimane vuoto), il codice ~Current unit: $(index,$(getvar,insunits),"-,in,ft,mi,mm,cm,m,km,µin,mil,yd,Å,nm,μm,dm,dam,hm,Gm,au,ly,pc") che in pratica grazie alla funzione index per ogni valore numerico della variabile insunits restituisce la sigla dell'unità di misura corrispondente.
La seconda mostra una selezione di variabili di rapido accesso e consultazione, nonchè eventuale modifica (comando da completare da tastiera). Il primo si ottine con il display/name $(eval,"Toggle Frameselection" $(index,$(getvar, frameselection),"ON,OFF")) mentre nella macro va inserito 'FRAMESELECTION $M=$(xor,$(getvar, FRAMESELECTION),1), le funzioni con il simbolo $ sono in linguaggio Diesel e consentono il toggle dello stato della variabile. In alternativa si possono fare due voci di menù distinte, una per accendere e una per spegnere.
La terza mostra come vedere rapidamente lo stato dei frame di xref, immagini, eccetera, ovvero se il bordo di questi sia stampabile, visibile, o visibile ma non stampabile. Il codice della prima voce, nel campo display/name è $(eval,FRAME - current: )$(index,$(getvar,frame),"0-invisible,1-visible,2-visible but do not plot,3-some kind of frame differs") mentre nella macro c'è solo ^C^C_frame, cioè avvio un comando che va completato da tastiera.

Vabbè a guardare queste personalizzazioni ci si può spaventare, ma personalizzare comandi di ogni giorno può essere più facile di quanto vi ho mostrato, una serie di comandi si può facilmente trascrivere dal prompt ad una macro, ad esempio la seguente sequenza:

si copia come testo (leggere sempre bene le domande che ci pone il comando)
Command: *Cancel*
Command: CIRCLE
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Specify radius of circle or [Diameter]: 12
e si edita così
^C^C_.circle;\12;
dove ^C^C significa *Cancel* (interruzione di altri comandi in corso), cerchio, "****" fa in modo che la macro aspetti che noi si clicchi da qualche parte (aspetta il nostro input) e poi inserisce 12 come raggio, che è il valore atteso di default dal comando. Come detto in precedenza il punto e virgola (o uno spazio, se preferite) sta per un invio.