Par une méthode similaire à celle que vous utilisez pour activer des sous-menus, vous pouvez activer ou désactiver un autre menu déroulant ou contextuel. C'est ce que l'on appelle le référencement de menu.
Les menus déroulants et les menus contextuels peuvent être référencés à l'aide de deux méthodes différentes : relative et absolue. Le référencement absolu utilise la position absolue d'un élément de menu dans la hiérarchie des menus. Le référencement relatif utilise le nom du groupe de personnalisation et l'ID élément. Le référencement relatif est recommandé en raison de son caractère dynamique.
Outre son référencement, vous pouvez activer ou désactiver un élément de menu à l'aide de la syntaxe suivante :
$Pn.i=xxx
Le symbole $ charge une section de menu ; Pn spécifie la section de menu active (les valeurs correctes vont de 0 à 16) ; i indique le numéro de l'élément de menu et xxx (si présent) indique une chaîne dont les caractères sont marqués ou grisés.
À l'aide de la syntaxe $Pn=xxx, l'exemple suivant ajoute une coche à l'élément 1 dans le menu avec l'alias POP7.
$P7.1=!.
Dans AutoCAD, l'exemple suivant montre comment utiliser la fonction AutoLISP menucmd pour référencer un élément de menu déroulant ou contextuel. Les fichiers de personnalisation étant dynamiques (par le biais du chargement de fichiers CUIx partiels), la syntaxe suivante ne fonctionnera pas systématiquement.
(menucmd "P1.2=~")
Cette syntaxe s'appuie sur l'emplacement de l'élément de menu et ne fonctionne pas si un nouvel élément est inséré avant POP1 à l'aide de la commande CHARGIUPERSO.
Le numérotation des éléments de menu est consécutive quelle que soit la hiérarchie du menu.
Pour faire facilement référence à un élément sans tenir compte de son emplacement dans la hiérarchie de menus, utilisez ce qui suit :
Fait référence à la commande courante ou à la dernière commande sélectionnée.
Fait référence à l'option n du menu courant ou choisi en dernier lieu.
Vous pouvez référencer un élément de menu déroulant ou contextuel en fonction de son groupe de personnalisation et de son ID élément à l'aide de la fonction menucmd AutoLISP. La syntaxe suivante permet de référencer un élément de menu en fonction de son ID élément.
(menucmd "Gcustomizationgroup.element_id=value")
L'exemple suivant utilise la syntaxe de référencement relatif pour désactiver l'élément de menu ID_Line stocké dans le groupe de personnalisation ACAD. Il fonctionne indépendamment de la position de l'élément dans le menu.
(menucmd "GACAD.ID_Line=~")
Si vous connaissez le contenu du fichier CUIx principal, vous pouvez créer un fichier de personnalisation partiel (CUIx) à l'aide d'un élément de menu supplémentaire qui fait référence au fichier CUIx principal. Ainsi, les fichiers CUIx partiels et les fichiers de personnalisation de base spécifiques peuvent fonctionner ensemble.
La fonction AutoLISP menucmd accepte les chaînes de commande $Pn=xxx, mais sans le caractère de début $. Dans le cas de ces fonctions, la partie xxx de la chaîne de commande peut comporter des valeurs spéciales.
Renvoie sous la forme d'une chaîne l'état courant désactivé ou marqué de l'élément spécifié (par exemple, ~ pour un élément désactivé, !. pour un élément marqué d'une coche et "" pour un élément ni grisé ni marqué).
Renvoie le même type de chaîne décrit pour Pn.i=?, mais avec le préfixe Pn.i=. Associée au caractère @, cette syntaxe permet de renvoyer les numéros d'élément et de menu réels.
Par exemple, si le cinquième élément de la section POP6 est désactivé, le code menucmd suivant renvoie les valeurs de chaîne suivantes :
(menucmd "P6.5=?") returns "~" (menucmd "P6.5=#?") returns "P6.5=~"