사용자화(CUI/CUIx) 파일의 DIESEL 문자열 표현식을 사용해서도 매크로를 작성하고 풀다운 메뉴 레이블을 변경할 수 있습니다.
사용자 인터페이스 요소에 DIESEL 표현식을 사용할 수 있으며 이러한 표현식은 $섹션=하위 메뉴 형식을 따라야 합니다. 여기서 섹션 이름은 M이고 하위 메뉴는 원하는 DESEL 표현식입니다.
다음과 같은 예를 가정해 봅시다.
^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)
이 DIESEL 표현식을 사용하여 CVPORT 시스템 변수의 현재 값을 기준으로 모형 공간과 도면 공간 간을 전환할 수 있습니다. CVPORT를 1로 설정한 경우 MSPACE 명령이 실행되고, 그렇지 않으면 PSPACE 명령이 실행됩니다. 이 표현식은 투명하게 계산됩니다. MENUECHO를 켜고 끄는 특수 문자 ^P는 생략됩니다. 표현식은 실행된 명령만 표시합니다.
다음 예에서는 -INSERT 명령을 사용하여 주 블록을 삽입할 때 DIESEL 표현식을 사용하여 DIMSCALE의 현재 값을 0.5 값으로 곱하여 축척 비율을 계산합니다.
^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;
또한 DIESEL 표현식을 사용하여 메뉴를 사용할 수 없도록 하거나 메뉴가 표시되는 방법을 변경할 수 있도록 풀다운 메뉴 항목의 레이블을 정의할 수 있습니다. 풀다운 메뉴 레이블에 DIESEL 표현식을 사용할 때 첫 번째 문자가 $ 문자인지 확인합니다.
이 예에서는 현재 도면층을 BASE로 설정하고 다음 DIESEL 표현식은 풀다운 메뉴의 레이블로 사용됩니다.
$(eval,"Current layer: " $(getvar,clayer))
결과적으로 현재 도면층이 변경될 때마다 적절한 풀다운 메뉴가 표시되고 업데이트됩니다.
Current Layer: BASE
DIESEL 생성 메뉴 레이블이 너무 넓을 것이라고 예상되면 다음 예제를 사용하여 메뉴 폭을 레이블 크기에 맞출 수 있습니다. 이 예에서는 CLAYER 시스템 변수의 현재 값에서 처음 10개의 문자를 표시합니다.
$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))
메뉴가 로드되는 동안 뒤에 오는 공백이 무시되기 때문에 메뉴 레이블에 후행 공백을 사용하여 메뉴 폭을 늘릴 수 없습니다. 메뉴 레이블의 폭을 늘리는 데 사용되는 공간은 DIESEL 표현식 안에 있어야 합니다.
다음 예제에서는 메뉴 항목의 일부 및 레이블과 동일한 DIESEL 표현식을 사용합니다. 이 표현식은 현재의 요일과 날짜를 도면에 입력하는 실용적인 방법을 제공합니다.
메뉴 레이블
$(edtime,$(getvar,date),DDD", "D MON YYYY)
매크로
^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);
또한 DIESEL 매크로를 사용하여 풀다운 메뉴 레이블을 표시하거나 사용할 수 없도록 만들 수 있습니다. 다음 풀다운 메뉴 레이블은 명령이 활성 상태인 동안 사용 불가능으로 표시됩니다. 일반적으로는 명령이 활성 상태가 아닐 때 문자가 표시됩니다.
$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport
비슷한 액세스 방법으로 표식을 풀다운 메뉴 항목 옆에 넣거나 표식에 사용된 문자를 대화식으로 변경할 수 있습니다.
$(if,$(and,$(getvar,ucsicon),1),!.)&On