오토캐드(AUTO CAD) 리습(Lisp) 속성 관련 함수 ENTGET SSNAME SSLENGTH

1. 리습(lisp) – 속성 관련 함수

리습을 실행과정에서 객체선택을 마치면 리습에 필요한 객체의 속성을 파악하고 편집을 진행하게 됩니다. 바로 편집이 가능한 객체도 있지만, 리습의 특성에 따라 객체의 속성을 검색하고 편집에 필요한 속성을 불러옵니다. 오늘은 객체의 속성 관련 함수와 활용방법을 간단히 살펴보겠습니다. 내용 이해를 위해 이전에 다룬 “객체 선택 함수“에 대한 포스팅을 먼저 살펴보시기 바랍니다.

오토캐드(AUTO CAD) 리습(Lisp) 선택 함수 SSGET ENTSEL

1) ENTGET

ENTGET은 객체 이름에 대한 해당 객체의 속성을 알려줍니다. 실행하게 되면 해당 객체가 가지고 있는 DXF 정보를 나열해주는 것을 확인할 수 있습니다. 사용방법은 ENTGET(객체 이름) 형태이며, SSGET을 이용하여 얻은 선택 세트는 바로 사용할 수 없고 객체 이름을 추출하는 과정을 거쳐야 사용할 수 있습니다.

(1) ENTGET 활용방법

① 선택 세트에서 객체 속성 가져오기 – SSGET

SSGET를 이용하여 객체를 선택하면 선택 세트가 출력됩니다. 이 선택 세트에 SSNAME 함수를 이용하여 번호를 호출하면 해당 객체의 이름이 출력됩니다. 이렇게 구해진 객체 이름은 ENTGET 함수를 사용하여 객체 속성을 파악할 수 있습니다. 여기서 핵심은 선택 세트에서 객체 이름을 뽑아내는 과정입니다. SSGET으로 단일 객체를 선택하더라도 선택 세트에 저장되므로 반드시 객체 이름을 필터링하는 과정이 필요합니다.

(Setq SS(SSGET)) ;객체 선택
(ENTGET(SSNAME SS 0)) ;SSNAME 함수로 0번째 객체 이름을 파악하고 ENTGET으로 속성 출력

속성 관련 함수 - ENTGET - 선택 세트

② 단일 객체 속성 가져오기 – ENTSEL

ENTSEL을 이용하여 단일 객체를 선택하면 객체 이름과 선택 좌표가 출력됩니다. 이때 필요한 정보는 객체 이름이므로 CAR 함수를 이용하여 객체 이름을 필터링하면 해당 객체의 이름을 통해 ENTGET 함수로 속성을 파악할 수 있습니다.

(Setq SS(ENTSEL)) ;객체 선택
(ENTGET(CAR SS)) ; 객체 이름 필터링 후 ENTGET으로 속성 출력

속성 관련 함수 - ENTGET - 객체 이름

2) SSNAME

선택 세트 안에 있는 n번째 객체 이름을 출력합니다. 사용방법은 SSNAME (선택 세트) (객체 번호)를 입력하면 해당 번호의 객체 이름을 출력합니다. 주로 SSGET으로 선택된 선택 세트에서 객체 이름을 필터링할 때 주로 사용합니다.

3) SSLENGTH

선택 세트 안에 있는 객체의 개수를 표시할 때 사용합니다. 사용방법은 SSLENGTH (선택 세트) 형태로 입력합니다. 주로 다중 객체를 선택하고 개수만큼 반복하여 실행할 때 REPEAT, WHILE 함수와 함께 사용합니다.

(SETQ SS(SSGET)) ; 선택 세트를 SS변수로 지정
(SSLENGTH SS) ; SS변수의 객체 개수 파악

속성 관련 함수 - SSLENGTH - 객체 수량

4) ENTLAST

가장 최근에 생성된 객체를 선택합니다. ENTLAST를 입력하면 가장 최근에 생성된 객체의 이름을 반환합니다.


5) ENTDEL

ENTDEL (객체 이름) 형태로 사용하며, 해당 객체가 삭제됩니다. 주의할 점은 ENTDEL로 삭제된 객체는 명령 창에서 복구(U)를 실행해도 복구되지 않습니다. 복구 방법은 아래 코드와 같이 ENTDEL을 한 번 더 실행하면, 삭제된 객체가 복구됩니다.

▼ 아래 예시는 가장 최근에 생성된 객체를 선택(ENTLAST)하고 삭제 및 복구하는 과정입니다.
(SETQ SS(ENTLAST)) ;가장 최근에 생성된 객체를 SS변수로 지정
(ENTDEL SS) ;SS변수에 저장된 객체 삭제

(ENTDEL SS) ;ENTDEL을 한 번 더 실행하면 SS변수에 저장된 객체 복구

속성 관련 함수 - ENTLAST - ENTDEL

마치며

오늘은 AUTOLISP에서 사용하는 객체 속성 관련 함수에 대해서 알아보았습니다. DXF 코드, 객체 이름, 객체 개수 등을 파악하기 위해 사용하는 함수는 사용하는 입력과 출력을 확인해야 합니다. 오늘 다룬 예시는 오토캐드 화면에서 바로 사용하여 확인할 수 있도록 구성하였습니다. 함수 예시 구문을 연습하면서 사용법을 익히시기 바랍니다.

Leave a Comment