Utilizando um método similar ao utilizado para ativar sub-menus, você pode ativar ou desativar um sub-menu suspenso ou menu de atalho. Isso é denominado como referenciando um menu.
Os menus suspensos ou de atalho podem ser referenciados usando dois métodos diferentes: relativo e absoluto. A referência absoluta usa a posição absoluta de um item de menu na hierarquia de menu. A referência relativa usa o nome do grupo de personalização e a ID de elemento. A referência relativa é recomendada devido à sua natureza dinâmica, mas ela não está disponível no AutoCAD LT.
Além de referenciar um item de menu, você pode ativar ou desativar um item de menu com a seguinte sintaxe:
$Pn.i=xxx
O $ carrega uma seção de menu; Pn especifica o corte automático do menu (0 a 16 são valores válidos); i especifica o número do item de menu; e xxx (se presente) especifica um sequência de caracteres acinzentados ou selecionados.
Usando a sintaxe $Pn=xxx, o exemplo a seguir adiciona uma marca de seleção no item 1 no menu com o alias POP7.
$P7.1=!.
Os seguintes exemplos, no AutoCAD, utilizam a função menucmd do AutoLISP para fazer referência a um item de menu suspenso ou de atalho. Como os arquivos de personalização são dinâmicos (através da carga de arquivos CUIx parciais), a sintaxe a seguir não funcionará em todos os casos.
(menucmd "P1.2=~")
Esta sintaxe se baseia na localização do item de menu e não funciona se um novo item for inserido antes do POP1 pelo comando CARREGARIUP.
A numeração de item de menu é consecutiva sem levar em consideração a hierarquia do menu.
Para tornar fácil um item endereçar a si mesmo sem levar em consideração a localização na hierarquia de menu, utilize o seguinte:
Referencia o comando atual ou o mais recentemente escolhido.
Faz referência ao item n no menu atual ou selecionado por último.
Você pode fazer referência a um item de menu suspenso ou de atalho com base em seu grupo de personalização ou ID de elemento com a função menucmd do AutoLISP. A sintaxe a seguir faz referência a um item de menu com base em sua ID de elemento.
(menucmd "Gcustomizationgroup.element_id=value")
O exemplo a seguir usa a sintaxe de referenciamento relativo para desativar o item de menu ID_Line que está armazenado no grupo de personalização ACAD. Ele funciona independentemente da localização do item de menu no menu.
(menucmd "GACAD.ID_Line=~")
Se conhecer o conteúdo do arquivo de personalização principal (CUIx), você poderá criar um arquivo de personalização parcial (CUIx) com um item de menu adicional que faça referência ao arquivo CUIx principal. Desta forma, os arquivos CUIx parciais e os arquivos de personalização base específicos podem trabalhar juntos.
A função menucmd do AutoLISP aceita a sequência de caracteres de comando $Pn=xxx mas sem o $ precedente. Para essas funções, a parte xxx de uma sequência de caracteres de comando pode ter valores especiais.
Retorna ao status atual marcado ou desativado para o item especificado como uma sequência de caracteres (por exemplo, ~ para um item desativado, !. para um item com uma marca de verificação e "" para um item que não está desativado nem marcado).
Retorna o mesmo tipo de sequência descrita para Pn.i=?, mas com o Pn.i= prefixo. Isso é útil em combinação com as formas @, pois o menu real e o número do item são retornados.
Por exemplo, se o quinto item na seção POP6 estiver desativado, o código menucmd retornará os seguintes valores da sequência de caracteres.
(menucmd "P6.5=?") returns "~" (menucmd "P6.5=#?") returns "P6.5=~"