Per controllare i menu a discesa visualizzati nella barra dei menu è possibile utilizzare le aree di lavoro. È tuttavia possibile scambiare un menu a discesa con un altro menu anche a livello di programma, ad esempio quando un utente carica un'applicazione che richiede un menu a discesa aggiuntivo.
Poiché il programma dispone di menu a discesa, non vi è molta necessità di passare da un menu all'altro. Anzi, questa operazione può diminuire la coerenza dell'interfaccia utente. Tuttavia, utilizzando i comandi $, è possibile scambiare i menu a discesa e i sottomenu. Un metodo alternativo per lo scambio dei menu implica l'uso del riferimento relativo (o globale). Utilizzando questo metodo, è possibile inserire il nuovo menu davanti a un menu noto e quindi rimuovere il menu noto.
Per consentire lo scambio, ai menu a discesa vengono assegnati nomi compresi tra P1 e P16. Il titolo visualizzato sulla barra dei menu può essere modificato sostituendo tale riga del menu con un comando $Pn=. È possibile utilizzare il comando speciale $Pn=* dall'interno di qualsiasi comando per fare in modo che il menu correntemente assegnato all'alias POPn venga visualizzato e facilitare così i movimenti del dispositivo di puntamento.
Nell'esempio di macro che segue, un menu a discesa nella posizione P3 viene sostituito con il menu denominato new3 nel gruppo di personalizzazione MYMENU.
$P3=mymenu.new3
In AutoCAD, utilizzando la funzione menucmd di AutoLISP nel modo seguente è possibile effettuare la stessa operazione:
(menucmd "P3=mymenu.new3")
È possibile utilizzare il comando speciale $Pn=* da qualsiasi macro in modo da visualizzare il menu correntemente assegnato all'area POPn.
Lo scambio dei menu viene eseguito attivando un menu direttamente da un altro menu. Tale scambio è supportato per i seguenti elementi di interfaccia:
La sintassi che consente lo scambio di menu parziali è la seguente:
$section=customizationgroup.menuname
I nomi di sezione validi sono B1-4, A1-4, P0-16, T1-4
Nome del gruppo di personalizzazione nel file di personalizzazione (CUIx) desiderato
Etichetta o alias principale
È necessario tenere presente quanto segue:
È possibile utilizzare la funzione menucmd di AutoLISP per inserire o rimuovere un menu a discesa. La sintassi è simile a quella utilizzata per scambiare i menu a discesa, con l'eccezione che il lato sinistro dell'assegnazione è rappresentato dal menu a discesa davanti al quale si desidera inserire il nuovo menu. Il lato destro dell'assegnazione è rappresentato da un segno più (+) seguito dal nome del gruppo di personalizzazione, un punto e l'alias del menu, come illustrato nella seguente sintassi:
(menucmd "Gcustomizationgroup1.menuname1=+Gcustomizationgroup2.menuname2")
È anche possibile inserire un menu utilizzando la sintassi Pn=. La seguente macro inserisce un menu dopo il menu P5:
$P5=+Gmymenu.new3
È possibile implementare la stessa macro in AutoLISP utilizzando la seguente sintassi:
(menucmd "P5=+Gmymenu.new3")
Se si utilizza questo metodo per inserire un menu, tenere presente che il relativo inserimento nella posizione di menu P6 non è garantito per uno dei seguenti due motivi.
Di seguito è riportata la sintassi per la rimozione di un menu:
Gcustomizationgroup.menuname=-
Per rimuovere un menu con AutoLISP, utilizzare la seguente sintassi:
(menucmd "Gcustomizationgroup.menuname=-")
Nell'esempio che segue viene rimosso il menu NEW3 che fa parte del gruppo MyMenu.
$Gmymenu.new3=-"
L'esempio precedente sarà simile al seguente in AutoLISP:
(menucmd "Gmymenu.new3=-")
Come prevedibile, il precedente formato è preferibile al formato Pn= in quanto comporta la sola rimozione del menu specificato. Nell'esempio che segue viene rimosso il menu dalla posizione P4 (qualunque sia).
$P4=-
L'esempio precedente sarà simile al seguente in AutoLISP:
(menucmd "P4=-")
Le barre degli strumenti vengono in genere visualizzate utilizzando le aree di lavoro. È tuttavia possibile visualizzare una barra degli strumenti mediante il comando -BAR_STRU. Utilizzare la seguente sintassi in risposta al messaggio di richiesta Digitare nome barra degli strumenti o [TUTTE]: .
customizationgroup.toolbaralias
Questa sintassi accede alla barra degli strumenti identificata da customizationgroup.toolbaralias.
Se il gruppo di personalizzazione viene omesso, per default viene utilizzato il file di personalizzazione (CUIx) principale.