매크로에서 AutoLISP 사용 정보

AutoLISP를 사용하는 명령을 작성하는 것은 프로그램의 사용자화 기능을 사용하는 고급 방식입니다.

AutoLISP 변수 및 표현식을 사용하여 복잡한 작업을 수행하는 매크로를 작성할 수 있습니다. 이 프로그램에서 CUI/CUIx 파일을 로드할 때 동일한 위치에 있는 동일한 이름의 MNL 파일도 로드합니다. 매크로에서 사용할 수 있는 사용자 명령을 로드할 때 AutoLISP 코드를 MNL 파일에 배치하는 것이 효율적입니다.

주:
  • AutoCAD LT에서는 MNL 파일의 자동 로드를 지원하지 않지만 다른 LISP 파일에서 AutoLISP LOAD 함수를 사용하여 파일을 로드할 수 있습니다.
  • Windows의 AutoCAD에서만 사용할 수 있고 AutoCAD LT에서는 로드할 수 없는 추가 AutoLISP 파일을 사용자 인터페이스 사용자화(CUI) 편집기에서 지정할 수 있습니다. AutoLISP를 사용하는 명령을 작성하는 것은 프로그램의 사용자화 기능을 사용하는 고급 방식입니다. 이 기능을 효과적으로 사용하려면 여러 가지로 실험하고 실습해 보아야 합니다.

예제

사전 설정된 값

이 예제는 블록을 삽입하는 데 사용되는 세 가지 명령 매크로로 이루어져 있습니다.

명령 매크로에서 윈도우 폭을 묻는 프롬프트를 표시합니다.

^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P

명령 매크로에서 벽 두께를 묻는 프롬프트를 표시합니다.

^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P

명령 매크로에서 "윈도우"로 이름이 지정된 블록을 삽입하고 삽입점과 회전을 묻는 프롬프트를 표시합니다.

^C^C_INSERT window XScale !WINWID YScale !WALLTHK

블록의 X 축은 현재 윈도우 폭이고 Y 축은 현재 벽 두께를 의미합니다.

그립 크기 조정

이 예제에는 GRIPSIZE 시스템 변수의 현재 값을 늘리거나 줄이는 두 가지 명령 매크로가 포함되어 있습니다.

명령 매크로는 GRIPSIZE 시스템 변수의 값을 1씩 늘립니다.

^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)

명령 매크로는 GRIPSIZE 시스템 변수의 값을 1씩 줄입니다.

^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)

이러한 명령 매크로에 대한 유효성 확인을 추가하기 위해 0보다 작은 값과 255보다 큰 값을 GRIPSIZE 시스템 변수에 사용할 수 없습니다.

사용자 입력을 위한 프롬프트

다음 예제에서는 두 점을 지정하라는 프롬프트를 표시하고, 지정된 점을 구석으로 사용하여 직사각형 폴리선을 그립니다.

^P(setq a (getpoint "Enter first corner: "));\+
(setq b (getpoint "Enter opposite corner: "));\+ 
pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P
풀다운 메뉴 항목에 지정된 매크로 호출(Windows만 해당)

다음 구문을 사용하여 풀다운 메뉴 항목의 매크로를 프로그래밍 방식으로 실행할 수 있습니다.

(menucmd "Gcustomizationgroup.element_ID=|")

이전 구문은 메뉴 항목이 이 프로그램 메뉴 막대에 있는 메뉴의 일부분이며 사용 가능한 경우에만 작동합니다.