Utilizando un método similar al que se usa para activar submenús puede activar o desactivar otro menú desplegable o contextual. Esto se denomina referencia a menús.
Se puede hacer referencia a los menús desplegables o contextuales de dos maneras distintas: relativa y absoluta. La referencia absoluta utiliza la posición absoluta de un elemento de menú en la jerarquía del menú. La referencia relativa utiliza el nombre del grupo de personalización y el ID de elemento. La referencia relativa se recomienda por su naturaleza dinámica, pero no está disponible en AutoCAD LT.
Además de hacer referencia a un elemento de menú, puede activar y desactivar un elemento de menú mediante la siguiente sintaxis:
$Pn.i=xxx
El $ carga una sección de menú, Pn indica la sección de menú activa (los valores válidos son de 0 a 16), i especifica el número de elemento de menú y xxx (si existe) precisa una cadena de caracteres inactivos o marcados.
Utilizando la sintaxis $Pn=xxx, en el ejemplo siguiente, se añade una marca de verificación al elemento 1 en el menú con el alias POP7.
$P7.1=!.
En el siguiente ejemplo se utiliza la función menucmd de AutoLISP en AutoCAD para hacer referencia a un elemento de menú desplegable o contextual. Puesto que los archivos de personalización son dinámicos (mediante la carga de archivos CUIx parciales), la siguiente sintaxis no funcionará en todos los casos.
(menucmd "P1.2=~")
Esta sintaxis se basa en la ubicación del elemento de menú y no funciona si el comando CARGARIUP inserta un elemento nuevo antes de POP1.
La numeración de elementos de menú es consecutiva, independientemente de la jerarquía del menú.
Para facilitar que un elemento pueda hacerse referencia a sí mismo independientemente de su ubicación en la jerarquía del menú, utilice lo siguiente:
Hace referencia al comando actual o al último elegido.
Hace referencia al elemento n del menú actual o del último elegido.
Puede hacer referencia a un elemento de un menú desplegable o contextual basándose en su grupo de personalización e ID de elemento con la función menucmd de AutoLISP. La sintaxis siguiente hace referencia a un elemento de menú en función de su ID de elemento.
(menucmd "Gcustomizationgroup.element_id=value")
El ejemplo siguiente utiliza la sintaxis de referencia relativa para desactivar el elemento de menú ID_Line almacenado en el grupo de personalización ACAD. Funciona independientemente de la ubicación del elemento de menú en el menú.
(menucmd "GACAD.ID_Line=~")
Si conoce el contenido del archivo de personalización (CUIx) principal, puede crear un archivo de personalización (CUIx) parcial con un elemento de menú adicional que haga referencia al archivo CUIx principal. De este modo, los archivos CUIx parciales y determinados archivos base de personalización pueden funcionar conjuntamente.
La función menucmd de AutoLISP acepta las cadenas de comandos $Pn =xxxsin el carácter inicial $. En estas funciones, la parte xxx de la cadena de comandos puede contener valores especiales.
Devuelve el estado desactivado y marcado actual del elemento especificado con una cadena (por ejemplo, ~ para un elemento desactivado, !. para un elemento con una marca de verificación y "" para un elemento que no está atenuado ni marcado).
Devuelve el mismo tipo de cadena que la descrita para Pn.i=?, pero con la Pn.i=. Resulta de gran utilidad cuando se usa junto con las formas @, porque devuelve el menú y el número de elemento reales.
Por ejemplo, si el elemento 5 de la sección POP6 está desactivado, el siguiente código menucmd devuelve los siguientes valores de cadena.
(menucmd "P6.5=?") returns "~" (menucmd "P6.5=#?") returns "P6.5=~"