03. LISP 나만의 리습 제작하기

By: memople

안녕하세요. 오늘은 리습 프로그램을 제작하는 방법을 소개합니다.

리습은 역시 캐드 프로그램에 있어, 필수적으로 사용해야하는 플러그인 중 하나이며

캐드 사에서도 그 중요성을 강조하고 있기도 하는데요.

오늘은 나만의 리습 제작 방법을 배워보는 시간을 갖도록 하겠습니다.



01. 나만의 리습 제작하기 – 명령어 분석

#01. 오늘의 실습 자료는 결과물을 확인하기 위하여 만들어 졌으며, 리습 제작하기를 먼저 진행하고 난 후 보시는 걸 추천합니다.

먼저, 폴리선 변환 리습을 만들기 위해서는 캐드 프로그램에서 폴리선 변환 명령어를 알고 있어야 합니다.

오늘 사용할 명령어는 ‘PEDIT’으로 한번에 여러 선들을 폴리선으로 변환시킬 수 있는 명령어 입니다.

하지만, 이 과정이 불필요하게 시간을 소모시키기 때문에 이 과정을 단순화 하기 위해서 리습으로 만들어 주도록 하겠습니다.

먼저 캐드 프로그램을 열어서 PEDIT 명령어가 어떤 구조로 이뤄져 있는 지 살펴봅니다.

나만의 리습 제작

#02. 폴리선을 선택하라는 명령어 창이 뜹니다. 우리는 여기서 ‘다중’ 옵션을 사용합니다.

나만의 리습 제작

#03. 선을 클릭하면, 객체를 찾았다고 나옵니다. 여기서 ‘ENTER’를 통해 명령어를 진행합니다.

나만의 리습 제작

#04. 폴리선이 아닌 선들을 폴리선으로 변환하겠냐는 질문이 들어옵니다. ‘Y’를 눌러 변환해줍니다.

나만의 리습 제작

#05. 다음은 선들의 옵션을 어떻게 할지 말하는 부분입니다.

오늘 만들 리습에서는 추가적인 옵션은 선택할 필요가 없으므로, ‘ESC’를 눌러 명령을 종료할 예정입니다.

나만의 리습 제작

02. 나만의 리습 제작하기 – 리습 제작

#01. Visual Studio Code 를 실행합니다.

우클릭 후 ‘new text file’을 클릭합니다.

나만의 리습 제작

#02. ‘Select a Language’를 클릭합니다.

나만의 리습 제작

#03. ‘AutoLISP’을 클릭합니다.

나만의 리습 제작

#04. 명령어를 입력합니다.

나만의 리습 제작

※ 해석

  • (defun c:ple2(/ se a b c d)

리습 명령어를 실행시킬 명령어는 ple2 입니다.

변수로 설정하는 것은 ( / 뒤에 있는 5가지 변수가 있습니다. )

  • (setq se (ssget))

setq는 변수를 설정하는 값입니다. 이는 se가 선택항목을 가짐을 뜻합니다.

  • (setq a 0)

a는 0의 값에 대응합니다.

  • (repeat (sslength se)

repeat은 반복구문입니다. 선택옵션을 가지고 있는 se의 객체 선택 수 만큼 반복합니다.

  • (setq b (entget (ssname se a))

영역 b를 지정합니다. entget은 ‘객체’를 뜻합니다.

ssname은 선택세트 내부에 속한 객체 이름을 검색하는 함수입니다.

따라서, 가장 안쪽의 함수부터 해석하자면,

선택항목인 se의 a값 ( a는 0을 뜻하므로, 첫번째 인수입니다.) 을 가진 객체를 b로 설정하는 것입니다.

  • setq c (cdr (assoc 0 b)))

assoc는 연관객체를 가리키는 말로, 이를 해석하자면 b에 속해있는 첫번째 인수를 제외하고 모든 것을

c라 칭합니다.

  • (if (/= c “LWPOLYLINE”) (setq d 1))

LWPOLYLINE은 2차원 폴리선으로 ‘C’가 해당하는 값을 가질 경우 d는 1을 가집니다.

다음 함수도 이와 같습니다.

따라서, 여러 변수가 지정이 되었으면 명령어 방식을 그대로 써줍니다.

단 여기서 “”빈칸은 ‘엔터’를 칭합니다.

  • (if d (command “pedit” “m” se “” “y” “j” “” “”)

03. 실습자료 안내

오늘 실습을 위해 만들어진 캐드 파일을 첨부해드립니다. 문의사항이 있으시면 하단 메일 주소로 연락주세요!

▼ 실습자료 ( 구글 드라이브 링크 클릭 ! )

https://drive.google.com/file/d/1Y6Q7jp7Hmw1rv4ikfTZd34_jnEtJvGlD/view?usp=sharing


더 많은 리습 정보가 궁금하시다면, 메모플의 리습 강의를 봐주세요. ↓

https://memople.com/archit-program/lisp/

감사합니다.