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

1. 리습(Lisp) 선택 함수 – SSGET, ENTSEL

오토캐드에서 사용되는 리습(LISP) 함수에는 기능별 여러 함수가 존재합니다. 그중에서 객체 선택은 리습을 사용하기 위해 반드시 실행되는 과정인데요. 오늘은 리습(Lisp) 선택 함수 SSGET, ENTSEL에 대해 살펴보고 활용하는 방법과 차이점을 공유하겠습니다.

1) SSGET

다중객체를 선택할 때 사용하는 함수입니다. 함수를 실행 후 응답 값은 선택 세트(Selection set)로 출력합니다. 선택 세트는 객체 이름과 번호로 구성되어있습니다. 만약 7개의 객체를 선택했다면 0~6번에 객체 이름을 하나씩 지정하여 저장됩니다. 여기서 꼭 기억해야 하는 내용은 “출력은 선택 세트이며, 객체 이름과 번호로 저장된다”입니다.

(1) 선택 세트 확인하기

아래 그림에는 1~4까지 4개의 문자가 있습니다. SSGET을 이용하여 다중객체를 선택하고 변수 SS로 저장합니다. 참고로 함수 SSNAME은 선택 세트에 있는 객체 이름을 호출해주는 함수입니다. 사용방법은 (SSNAME, 선택 세트, 번호 )를 입력하면 번호에 해당하는 객체의 이름을 반환합니다. 4개의 문자를 선택하여 0~3번까지는 객체 이름을 출력합니다. 하지만 선택 세트에 4번째 객체가 없으므로 nil을 반환합니다.(Autolisp은 0부터 시작)

리습(Lisp) 선택 함수-SSGET

(2) 활용 예시

필터 기능을 통해 다양한 조건에 맞는 객체 선택 활용 방법을 살펴보겠습니다. 아래 코드는 캐드 명령 창에 바로 붙여넣어 실행 할 수 있습니다.
① 객체 유형이 선, 원, 폴리선 만 선택
(ssget '((0 . "LINE")))
(ssget '((0 . "CIRCLE")))
(ssget '((0 . "LWPOLYLINE")))



② 객체 유형이 Circle이고 색상이 1번(빨강)인 객체를 모두 선택
(ssget "x" '((0 . "circle") (62 . 1))))


③ 반지름 100초과 1000미만의 원을 선택
(ssget '((-4 . "<and")(0 . "circle")(-4 . ">")(40 . 100)(-4 . "<")(40 . 1000)(-4 . "and>")))


④ 동결되지 않은 모든 문자 선택
(ssget "A" '((0 . "TEXT,MTEXT")))


▼ 이외에도 다양한 필터 기능이 있습니다. 자세한 내용은 아래 AUTODESK에서 제공하는 링크를 참고하시기 바랍니다.

https://help.autodesk.com/view/ACD/2024/ENU/?guid=GUID-0F37CC5E-1559-4011-B8CF-A3BA0973B2C3


2) ENTSEL

ENTSEL은 단일 객체를 선택합니다. 객체를 하나만 선택할 수 있으며, 선택되지 않으면 nil을 반환합니다. 객체가 선택되면 객체의 이름과 선택 지점 좌표를 출력합니다. SSGET과 다르게 객체 이름이 바로 출력된다는 점을 기억해 두시기 바랍니다.

(1) ENTSEL 출력 확인

아래 그림은 문자 객체를 선택하고 출력되는 결과를 확인하는 과정입니다. 먼저 (ENTSEL)을 캐드 명령창에 입력하고 객체를 선택합니다. 결과 값은 도면요소 이름(객체 이름)과 선택 좌표가 출력됩니다. 선택된 객체를 편집하거나 활용하기 위해 객체의 이름이 필요합니다. 이때 객체 이름만 출력하려면 (CAR(ENTSEL))을 입력하고 객체를 선택합니다.

리습(Lisp) 선택 함수-ENTSEL

마치며

오늘은 AUTOLISP의 객체 선택 함수 SSGET, ENTSEL에 대해서 살펴보았습니다. 객체를 선택하는 과정은 리습이 작동하기 위한 중요한 부분입니다. 함수를 사용하기 위해서 반드시 입력과 출력에 해당하는 데이터 유형을 먼저 파악하시기 바랍니다. 처음 함수를 접할 때는 활용 방법을 익히는 것보다 정확한 내용을 정립하는 것을 추천해드립니다. 활용하기 위한 소스는 구글링하면 금방 찾을 수 있습니다.

오늘 다룬 함수 SSGET과 ENTSEL의 중요한 부분을 정리해보겠습니다.
SSGET – 다중 선택, 선택 세트를 출력, 선택 세트는 객체 이름과 번호로 구성
ENSEL – 단일 선택, 객체 이름과 선택 좌표 출력

Leave a Comment