Vous pouvez utiliser des expressions de chaîne DIESEL dans les fichiers de personnalisation (CUI et CUIx), offrant ainsi une autre méthode pour créer des macros et modifier un libellé de menu déroulant.
Une expression DIESEL peut être utilisée avec un élément de l'interface utilisateur et doit respecter le format $section=sous-menu, où le nom de la section est M et le sous-menu est l'expression DIESEL souhaitée.
Examinez l'exemple suivant :
^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)
Cette expression DIESEL permet de basculer entre l'espace objet et l'espace papier en fonction de la valeur courante de la variable système CVPORT. Lorsque la variable CVPORT est définie sur 1, la commande ESPACEO est exécutée. Dans le cas contraire, la commande ESPACEP est exécutée. Cette expression est évaluée de manière transparente. Si vous omettez le caractère spécial ^P (qui permet d'activer et de désactiver MENUECHO), l'expression affiche uniquement la commande émise.
L'expression DIESEL de l'exemple suivant permet de multiplier la valeur courante de DIMSCALE par la valeur 0,5 pour calculer le facteur d'échelle lors de l'insertion du bloc Note à l'aide de la commande -INSERER.
^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;
Les expressions DIESEL peuvent également être utilisées pour définir le libellé d'un élément de menu déroulant, par exemple pour rendre des menus inaccessibles ou modifier la façon dont ils sont affichés. Assurez-vous que le premier caractère est un dollar ($) lors de l'utilisation d'une expression DIESEL dans le libellé d'un menu déroulant.
Dans l'exemple suivant, le calque courant est paramétré sur BASE et l'expression DIESEL suivante est utilisée comme libellé pour un menu déroulant.
$(eval,"Current layer: " $(getvar,clayer))
Le menu déroulant approprié est affiché et modifié chaque fois que le calque actif change.
Calque actif : BASE
Si vous prévoyez qu'un libellé de menu généré par une expression DIESEL sera trop large, vous pouvez utiliser l'expression présentée dans l'exemple ci-dessous pour vous assurer que le menu sera assez large pour tous vos libellés. Cet exemple montre comment afficher les 10 premiers caractères de la valeur courante de la variable système CLAYER.
$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))
Il est inutile d'ajouter des espaces à la fin d'un libellé de menu pour élargir ce menu, car ils sont ignorés lors du chargement de ce dernier. Tous les espaces servant à élargir un libellé de menu doivent être compris dans une expression DIESEL.
L'exemple ci-dessous fait appel à la même expression DIESEL que le libellé et une partie de l'élément de menu. Il constitue un moyen pratique d'insérer le jour et la date dans un dessin.
Libellé de menu
$(edtime,$(getvar,date),DDD", "D MON YYYY)
Macro
^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);
De plus, vous pouvez utiliser une macro DIESEL pour marquer les libellés de menu déroulant ou pour les rendre inaccessibles. Le libellé de menu déroulant ci-dessous est affiché sous une forme inaccessible lorsqu'une commande est active. Le texte est affiché normalement quand aucune commande n'est active.
$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport
Vous pouvez utiliser une approche similaire pour insérer une coche à côté d'un élément de menu déroulant ou pour modifier de manière interactive les caractères utilisés pour marquer l'élément.
$(if,$(and,$(getvar,ucsicon),1),!.)&On