매크로의 DIESEL 표현식 정보

사용자화(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 표현식에 의해 생성되거나 변경되는 메뉴 레이블은 기존 메뉴 폭에 맞게 부분적으로 생략됩니다.

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