Sobre as expressões DIESEL em macros

É 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

Nota: A largura dos menus suspensos e de atalho é determinada quando o arquivo de personalização está sendo carregado. As legendas de menu gerados ou alterados por expressões DIESEL depois que o menu é carregado são truncados para se ajustarem na largura do menu existente.

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