Definizione di un riferimento ad un menu a discesa o di scelta rapida

Con un metodo simile a quello utilizzato per attivare i sottomenu, è possibile attivare o disattivare un altro menu a discesa o di scelta rapida. Questa operazione è nota come creazione di riferimenti al menu.

È possibile creare due tipi di riferimenti ai menu a discesa e di scelta rapida: relativo e assoluto. Per il riferimento assoluto viene utilizzata la posizione assoluta di una voce di menu nella gerarchia di menu. Per il riferimento relativo viene utilizzato il nome del gruppo di personalizzazione e l'ID elemento. Il riferimento relativo è consigliato per la specifica natura dinamica.

Riferimento assoluto

Oltre a fare riferimento ad una voce di menu, è possibile attivarla o disattivarla mediante la seguente sintassi:

$Pn.i=xxx

$ carica una sezione di menu; Pn specifica la sezione di menu attiva (i valori validi sono compresi tra 0 e 16); i specifica il numero della voce di menu e xxx (se presente) specifica una stringa di caratteri non disponibili o contrassegnati.

Se si utilizza la sintassi $Pn=xxx, nell'esempio che segue viene aggiunto un contrassegno alla voce 1 del menu con alias POP7.

$P7.1=!.

L'esempio che segue, in AutoCAD, utilizza la funzione menucmd di AutoLISP per fare riferimento ad una voce di un menu a discesa o di scelta rapida. Poiché i file di personalizzazione sono dinamici (tramite il caricamento di file CUIx parziali), il funzionamento della sintassi riportata di seguito non può essere garantito per tutti i casi.

(menucmd "P1.2=~")

Questa sintassi si basa sulla posizione della voce di menu e non funziona se viene inserita una nuova voce prima di POP1 utilizzando il comando CARICAIUPERS.

La numerazione delle voci di menu è consecutiva indipendentemente dalla gerarchia del menu.

Per semplificare il riferimento di una voce a se stessa, indipendentemente dalla relativa posizione nella gerarchia del menu, utilizzare la seguente sintassi:

$P@.@=xxx

Consente di fare riferimento al comando corrente o all'ultimo comando selezionato.

$P@.n=xxx

Consente di fare riferimento alla voce n del menu corrente o dell'ultimo menu selezionato.

Riferimento relativo

È possibile fare riferimento ad una voce di un menu a discesa o di scelta rapida in base al relativo gruppo di personalizzazione e ID elemento utilizzando la funzione menucmd di AutoLISP. Nella sintassi che segue si fa riferimento ad una voce di menu in base al relativo ID elemento.

(menucmd "Gcustomizationgroup.element_id=value")

Nell'esempio che segue viene utilizzata la sintassi di riferimento relativo per disattivare la voce di menu ID_Line memorizzata nel gruppo di personalizzazione ACAD. La disattivazione viene eseguita indipendentemente dalla posizione della voce di menu nel menu.

(menucmd "GACAD.ID_Line=~")

Se si conosce il contenuto del file di personalizzazione (CUIx) principale, è possibile creare un file CUIx parziale con una voce di menu aggiuntiva che faccia riferimento al file CUIx principale. In questo modo, i file CUIx parziali e i file di personalizzazione di base specifici possono interagire.

Accesso di AutoLISP allo stato dell'etichetta

La funzione menucmd di AutoLISP accetta le stringhe di comando $Pn=xxx ma senza il carattere iniziale $. Per queste funzioni, la porzione xxx della stringa di comando può avere valori speciali.

Pn.i=?

Restituisce lo stato corrente disattivato e contrassegnato per l'elemento specificato come stringa (ad esempio, ~ per un elemento disattivato, !. per un elemento con un segno di spunta e "" per un elemento che non è né disattivato né contrassegnato).

Pn.i=#?

Restituisce lo stesso tipo di stringa descritto per Pn.i=?, ma con il prefisso Pn.i=. Questo formato si rivela utile insieme ai formati @ in quanto vengono restituiti i numeri effettivi di voce e di menu.

Se, ad esempio, la quinta voce nella sezione POP6 è disattivata, il codice menucmd che segue restituisce i seguenti valori di stringa:

(menucmd "P6.5=?")     returns  "~" 
(menucmd "P6.5=#?")    returns  "P6.5=~"