É possível usar as expressões de sequência de caracteres DIESEL em arquivos de personalização (CUI/CUIx) como um método adicional de criação de macros e uma forma de alterar um rótulo de um menu suspenso.
Uma expressão DIESEL que pode ser utilizada com um elemento de interface de usuário deve seguir o formato $section=submenu, onde o nome da seção é M e o submenu é a expressão DIESEL desejada.
Considere o exemplo a seguir:
^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)
Esta expressão DIESEL fornece uma forma de alternar entre o espaço de papel e o espaço de modelo com base no valor atual da variável de sistema CVPORT. Quando CVPORT estiver definida como 1, o comando ESPACOM será executado; caso contrário, o comando ESPACOP será executado. Essa expressão é avaliada transparentemente. Se o caractere especial ^P (o qual ativa e desativa MENUECHO) for omitido, a expressão exibirá apenas o comando ativado.
A expressão DIESEL no exemplo a seguir é utilizada para multiplicar o valor atual de DIMSCALE por 0.5 para calcular o fator de escala ao inserir o bloco de nota usando o comando -INSERIR.
^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;
As expressões DIESEL também podem ser utilizadas para definir a legenda de um item de menu suspenso, para que você possa desativar os menus ou alterar a forma como eles são exibidos. Certifique-se de que o primeiro caractere é $ ao utilizar uma expressão DIESEL em uma legenda para menu suspenso.
Neste exemplo, a camada atual está definida como BASE e a seguinte expressão DIESEL é usada como a legenda para um menu suspenso.
$(eval,"Current layer: " $(getvar,clayer))
O resultado é que o menu suspenso apropriado é exibido e atualizado sempre que a camada atual se altera.
Camada atual: BASE
Se antecipar que uma legenda de menu gerado por DIESEL será extenso demais, você poderá utilizar o seguinte exemplo para assegurar que a largura do menu acomodará suas legendas. Este exemplo mostra os 10 primeiros caracteres do valor atual da variável de sistema CLAYER.
$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))
Você não pode utilizar espaços anteriores em uma legenda de menu para aumentar a largura do menu, porque os espaços anteriores são ignorados enquanto o menu está sendo carregado. Quaisquer espaços que você utiliza para aumentar a largura da legenda de menu deve estar dentro de uma expressão DIESEL.
O próximo exemplo utiliza a mesma expressão DIESEL que a legenda e uma parte do item de menu. Ele fornece uma forma prática de inserir o dia e a data atual num desenho.
Legenda de menu
$(edtime,$(getvar,date),DDD", "D MON YYYY)
Macro
^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);
Além disso, você pode utilizar uma macro DIESEL para marcar as legendas de menu suspenso ou torná-las indisponíveis. A seguinte legenda de menu suspenso é exibida como indisponível enquanto um comando está ativado. O texto está exibido normalmente quando um comando não está ativado.
$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport
Você pode utilizar um método similar para posicionar uma marca ao lado de um item de menu suspenso ou alterar interativamente o caractere utilizado para a marca.
$(if,$(and,$(getvar,ucsicon),1),!.)&On