Wyrażenia języka DIESEL w makrach

Użytkownik może wykorzystywać wyrażenia języka DIESEL w plikach adaptacji (CUI/CUIx) jako dodatkową metodę tworzenia makr i sposób zmiany etykiety menu rozwijanego.

Wyrażenie języka DIESEL, które może być używane z elementem interfejsu użytkownika, musi występować w formacie $sekcja=menu_podrzędne, gdzie nazwą sekcji jest M, a menu_podrzędne jest żądanym wyrażeniem języka DIESEL.

Użytkownik powinien rozważyć następujący przykład:

^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)

To wyrażenie języka DIESEL umożliwia przełączanie między obszarem modelu a obszarem papieru na podstawie bieżącej wartości zmiennej systemowej CVPORT. Gdy zmienna systemowa CVPORT ma wartość 1, wykonywane jest polecenie MODEL; w przeciwnym razie wykonywane jest polecenie PAPIER. Wyrażenie to oceniane jest w trybie nakładkowym. Jeżeli zostanie pominięty znak specjalny ^P (który włącza i wyłącza MENUECHO), wówczas wyrażenie wyświetla tylko wprowadzone polecenie.

Wyrażenie języka DIESEL w następnym przykładzie jest używane do mnożenia bieżącej wartości zmiennej systemowej DIMSCALE przez wartość 0.5 w celu obliczenia współczynnika skali podczas wstawiania bloku uwag za pomocą polecenia -WSTAW.

^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;

Wyrażenia języka DIESEL mogą być również używane do takiego definiowania etykiety elementu menu rozwijanego, aby menu były niedostępne lub wyświetlane w inny sposób. Wykorzystując wyrażenie języka DIESEL w etykiecie menu rozwijanego, należy się upewnić, że pierwszym znakiem jest $.

W tym przykładzie bieżąca warstwa jest ustawiona jako BAZA, a następujące wyrażenie języka DIESEL jest używane jako etykieta menu rozwijanego.

$(eval,"Current layer: " $(getvar,clayer))

W efekcie wyświetlane jest odpowiednie menu rozwijane, które uaktualniane jest przy każdej zmianie bieżącej warstwy.

Nazwa bieżącej warstwy: BAZA

Uwaga: Szerokość menu rozwijanego i menu skrótów jest określana podczas wczytywania pliku dostosowywania. Tak więc etykiety menu generowane lub zmieniane przez wyrażenia języka DIESEL po wczytaniu menu są obcinane w celu dopasowania ich do bieżącej szerokości menu.

Jeśli nie można przewidzieć, czy generowana przez język DIESEL etykieta menu będzie zbyt szeroka, można użyć poniższego sposobu zapewnienia dopasowania etykiety do szerokości menu. W tym przykładzie pokazano pierwsze 10 znaków bieżącej wartości zmiennej systemowej CLAYER.

$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))

W etykiecie menu nie można użyć końcowych spacji do powiększenia jego szerokości, gdyż spacje te przy wczytywaniu menu są ignorowane. Spacje używane do zwiększania szerokości etykiety menu muszą zawierać się w wyrażeniu języka DIESEL.

Następny przykład pokazuje użycie tego samego wyrażenia języka DIESEL jednocześnie jako etykiety oraz jako części pozycji menu. Daje to możliwość wprowadzenia do rysunku bieżącej daty.

Etykieta menu

$(edtime,$(getvar,date),DDD", "D MON YYYY)

Makro

^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);

Makra języka DIESEL można ponadto użyć do zaznaczenia etykiet menu rozwijanych lub do zablokowania do nich dostępu. Następująca etykieta menu rozwijanego jest wyświetlana jako niedostępna, gdy polecenie jest aktywne. Tekst ten jest wyświetlany normalnie, gdy polecenie to nie jest aktywne.

$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport

W podobny sposób można umieścić znacznik obok pozycji menu rozwijanego lub też interaktywnie zmieniać znak używany do zaznaczania.

$(if,$(and,$(getvar,ucsicon),1),!.)&On