ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이제 리습은 내려받지 말고, 직접 만들어 쓰자
    토목 이야기 2026. 9. 21. 21:58

     

    AutoCAD · AutoLISP · AI

    이제 리습은 내려받지 말고, 직접 만들어 쓰자

    AI에게 말로 설명하면 AutoLISP 코드가 나오는 시대입니다. 남이 만든 리습에 내 일하는 방식을 맞추던 시절은 끝났습니다. 이제는 내 업무 패턴에 맞춘 ‘개인용 리습’을 만들어 쓸 차례입니다.

    리습 폴더, 다들 하나씩 있지 않나요?

    AutoCAD를 오래 쓴 사람이라면 컴퓨터 어딘가에 .lsp 파일이 가득한 폴더가 하나씩 있습니다. 선배에게 물려받은 것, 카페와 블로그에서 내려받은 것, 누가 만들었는지도 모르는 것들. 길이 합산, 면적 표기, 레이어 정리, 일련번호 넣기…. 잘 쓰고는 있지만 늘 조금씩 아쉽습니다.

    문자 높이가 우리 회사 기준과 다르고, 소수점 자리가 맞지 않고, 레이어 이름을 매번 바꿔 줘야 합니다. 고치고 싶어도 괄호가 끝없이 이어지는 코드를 보면 엄두가 나지 않습니다. 결국 리습에 내 일을 맞추는 셈이었죠.

    그런데 이 구도가 바뀌었습니다. 이제는 AI에게 “이런 기능이 필요해”라고 말하면 동작하는 AutoLISP 코드를 받을 수 있습니다. 마음에 들지 않으면 “여기만 이렇게 바꿔 줘”라고 말하면 됩니다. 프로그래밍을 몰라도 내 일에 맞춘 리습을 만들 수 있게 된 것입니다.

    리습을 ‘찾아서’ 쓰던 시대에서, ‘만들어서’ 쓰는 시대로.

     

    무엇이 달라졌나

    예전에도 리습을 직접 만드는 사람은 있었습니다. 다만 AutoLISP 문법, entget으로 꺼내는 DXF 그룹 코드, ssget 필터 같은 것을 공부해야 했고, 간단한 명령 하나에도 반나절이 걸리곤 했습니다. AI가 그 진입 장벽을 거의 없애 버렸습니다.

    구분 예전 방식 AI를 활용한 방식
    구하는 방법 검색해서 비슷한 리습을 찾아 내려받기 필요한 기능을 말로 설명해 새로 만들기
    맞춤 정도 남의 기준(문자 크기·레이어·단위)을 그대로 사용 내 회사·내 도면 기준을 처음부터 반영
    수정 코드를 직접 읽고 고쳐야 함 “이 부분만 바꿔 줘”라고 요청
    오류 대응 원인을 찾기 어려워 포기하기 일쑤 명령행 오류 메시지를 붙여 넣고 고쳐 달라고 요청
    걸리는 시간 수 시간 ~ 수일 수 분 ~ 수십 분

    왜 ‘개인용’ 리습이어야 하나

    도면 작업의 반복은 사람마다, 회사마다, 공종마다 다릅니다. 토목 설계자는 측점과 계획고를 반복해서 찍고, 건축 설계자는 실 면적을 반복해서 표기하고, 구조 설계자는 철근 개수와 간격을 반복해서 셉니다. 같은 “면적 표기”라도 어떤 사람은 ㎡ 소수 둘째 자리를, 어떤 사람은 평 환산값을 함께 원합니다.

    범용 리습은 이 차이를 다 담을 수 없습니다. 하지만 개인용 리습은 딱 한 사람의 방식만 담으면 됩니다. 그래서 더 짧고, 더 단순하고, 더 정확하게 들어맞습니다. 하루에 열 번 하는 3분짜리 작업이 있다면, 그것이 바로 리습으로 만들 첫 번째 후보입니다.

     

    이런 것부터 시작해 보세요

    • 선택한 선·폴리선 길이를 합산해 원하는 위치에 문자로 기입
    • 닫힌 폴리선의 면적을 회사 표기 기준(단위·자릿수·문자 스타일)으로 중심에 표기
    • 선택한 문자에 일련번호(1, 2, 3… 또는 A-01, A-02…)를 순서대로 부여
    • 도면 안의 특정 레이어 색상·선종류를 회사 표준으로 일괄 변경
    • 블록 이름별 개수를 세어 표로 만들어 넣기
    • 측점(STA.)과 계획고를 선택한 점에 정해진 형식으로 기입

     

    AI로 리습 만드는 과정

    복잡할 것 없습니다. 아래 순서대로 한 번만 해 보면 감이 옵니다.

    1. 반복 작업을 한 문장으로 적는다오늘 한 작업 중 “또 이거네” 싶었던 것을 떠올리고, 무엇을 선택해서 무엇을 얻고 싶은지 적습니다.
    2. 조건을 구체적으로 붙여 AI에게 요청한다명령어 이름, 선택할 객체 종류, 단위와 소수점, 문자 높이, 레이어 이름 등 내 기준을 함께 적습니다.
    3. 받은 코드를 .lsp 파일로 저장한다메모장에 붙여 넣고 tlen.lsp처럼 저장합니다. 한글 메시지가 깨지면 인코딩을 ANSI로 바꿔 저장해 보세요.
    4. 사본 도면에서 불러와 실행한다APPLOAD로 불러온 뒤 명령어를 입력합니다. 반드시 테스트용 사본 도면에서 먼저 돌려 봅니다.
    5. 결과를 보고 다시 요청한다오류가 나면 명령행 메시지를 그대로 붙여 넣고, 결과가 아쉬우면 무엇이 달랐는지 말합니다. 두세 번 주고받으면 대부분 완성됩니다.
    6. 자동으로 불러오게 등록한다자주 쓰는 리습은 APPLOAD 창의 ‘시작하기 세트(Startup Suite)’에 넣어 두면 도면을 열 때마다 자동으로 로드됩니다.

     

    실제로 해 보면: 길이 합산 리습

    가장 흔한 예로 “선택한 선들의 총 길이”를 구하는 리습을 만들어 보겠습니다. AI에게는 이렇게 요청했습니다.

    AI에게 보낸 요청

    AutoCAD용 AutoLISP를 만들어 줘. 명령어는 TLEN. 선, 폴리선, 호, 원, 스플라인을 여러 개 선택하면 전체 길이를 합산해서 명령행에 소수 셋째 자리까지 보여 주고, 이어서 점을 찍으면 그 위치에 L=합계 형식의 문자를 현재 문자 높이로 넣어 줘. 점을 찍지 않고 Enter를 누르면 문자는 넣지 말고 끝내 줘.

    tlen.lsp — AI가 작성한 코드
    ;; TLEN : 선택한 곡선 객체의 총 길이를 구하고 문자로 기입
    (defun c:TLEN (/ ss i ent total pt)
      (vl-load-com)
      (setq ss (ssget '((0 . "LINE,LWPOLYLINE,POLYLINE,ARC,CIRCLE,SPLINE"))))
      (if ss
        (progn
          (setq total 0.0 i 0)
          (repeat (sslength ss)
            (setq ent (ssname ss i))
            (setq total (+ total
              (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))))
            (setq i (1+ i))
          )
          (princ (strcat "\n총 길이: " (rtos total 2 3)))
          (if (setq pt (getpoint "\n문자 삽입점 지정 <Enter=생략>: "))
            (entmake
              (list '(0 . "TEXT")
                    (cons 10 (trans pt 1 0))
                    (cons 40 (getvar "TEXTSIZE"))
                    (cons 1 (strcat "L=" (rtos total 2 3)))))
          )
        )
      )
      (princ)
    )

    이 정도면 이미 쓸 만합니다. 여기서부터가 개인용 리습의 진짜 재미입니다. 써 보다가 아쉬운 점을 그대로 말하면 됩니다.

    이어서 보낸 요청

    좋아. 그런데 우리는 mm로 그리고 m로 표기해. 합계를 1000으로 나눠서 소수 둘째 자리까지 L=48.24m처럼 넣어 주고, 문자는 TXT-DIM 레이어에 넣어 줘. 레이어가 없으면 만들어 줘.

    이렇게 두세 번만 다듬으면 인터넷 어디에도 없는, 내 도면 기준에 딱 맞는 TLEN이 완성됩니다. 같은 방법으로 면적 표기, 일련번호, 블록 개수 세기도 금방 만들 수 있습니다.

     

    요청을 잘 하는 요령

    AI가 만든 리습의 품질은 요청의 구체성에 크게 좌우됩니다. 다음 항목을 넣어 주면 한 번에 원하는 결과에 가까워집니다.

    • 명령어 이름 — 기존 명령과 겹치지 않는 짧은 이름 (예: TLEN, ANO)
    • 선택 대상 — 선, 폴리선, 문자, 블록 등 어떤 객체를 고르는지
    • 도면 기준 — 작도 단위(mm/m), 표기 단위, 소수점 자리, 문자 높이·스타일, 레이어 이름
    • 결과물의 형태 — 명령행 출력인지, 문자 기입인지, 표인지, 엑셀·CSV로 내보내는지
    • 예외 상황 — 아무것도 선택하지 않았을 때, Enter를 눌렀을 때, 레이어가 없을 때 어떻게 할지
    • 사용 환경 — AutoCAD 버전, 또는 호환 CAD(ZWCAD, GstarCAD, BricsCAD 등) 사용 여부

    오류가 나면 당황하지 말고 명령행에 뜬 메시지(; 오류: 잘못된 인수 유형 같은 것)를 그대로 복사해 “이 오류가 났어”라고 보내면 됩니다. 대부분 한두 번 만에 해결됩니다.

    이것만은 꼭 지키세요

    • 실제 도면에서 바로 돌리지 마세요. 처음 실행은 항상 사본 도면에서 합니다. 특히 객체를 지우거나 일괄 변경하는 리습은 더 조심해야 합니다.
    • 결과값을 한 번은 검산하세요. 길이·면적·수량처럼 숫자가 나오는 리습은 손으로 확인한 값과 비교해 봅니다. AI는 그럴듯하지만 틀린 코드를 만들 수도 있습니다.
    • 되돌리기를 확인하세요. 실행 후 U 한 번으로 원상 복구되는지 확인하고, 안 되면 AI에게 UNDO 그룹으로 묶어 달라고 요청하세요.
    • 회사 도면 파일 자체를 AI에 올리지 마세요. 리습을 만드는 데 도면 원본은 필요 없습니다. 레이어 이름이나 기준값만 설명하면 충분합니다.

     

    나만의 리습 라이브러리를 쌓아 가자

    한 번 만든 리습은 자산이 됩니다. 폴더 하나를 정해 만든 리습을 모으고, 파일 맨 위에 “무엇을 하는 명령인지, 언제 만들었는지”를 주석으로 남겨 두세요. AI가 써 준 요청문도 함께 보관해 두면 나중에 기능을 고치거나 비슷한 리습을 만들 때 그대로 재사용할 수 있습니다.

    그렇게 하나둘 쌓이다 보면 어느새 AutoCAD가 ‘내 방식대로 움직이는 도구’로 바뀌어 있을 겁니다. 반복 작업에 쓰던 시간은 설계를 검토하고 더 나은 도면을 고민하는 데 쓸 수 있습니다.

    오늘 퇴근 전에 딱 하나만 해 보세요. 오늘 가장 여러 번 반복한 작업을 한 문장으로 적어 AI에게 보내는 것. 그것이 여러분의 첫 번째 개인용 리습이 됩니다.

    댓글

Designed by Tistory.