도면 일괄 배치 — 9년 동안 가장 많이 들은 질문에 답을 만들었습니다
도면 일괄 배치 — 판금 쪽에서 회사를 몇 번 옮겼는데, 어디를 가든 설계실에서 똑같은 질문이 나왔습니다.
“이 폴더에 있는 도면들, 한 작업도면에 한 번에 다 못 불러와요?”
신입도 묻고 10년차도 묻고, 저도 물었습니다. 답은 늘 같았어요. “그런 기능은 없어요. 하나씩 열어서 복사하세요.”
그래서 직접 만들었습니다. 이 글은 도면 일괄 배치 툴을 만들면서 열한 번 갈아엎은 기록이에요.
발주도면이 들어오는 날
폴더에 도면이 서른 장, 쉰 장. 견적을 내든 네스팅을 걸든 전개를 뽑든, 어쨌든 한 화면에 전부 펼쳐놓고 봐야 합니다.
그래서 하나 열고, 전체 선택, 복사, 작업도면 탭으로 넘어가서, 붙이기, 빈 자리 찾아 클릭, 다음 파일. 이걸 쉰 번.
번거로운 것만 문제가 아닙니다. 도면을 한 장씩 열면 그게 전부 메모리에 남습니다. 탭이 스무 개, 서른 개 쌓이면 CAD가 눈에 띄게 굼떠지고, 화면 이동 한 번에 버벅이기 시작해요. 그래서 중간에 닫고 다시 열고를 반복하게 되는데, 그러면 또 어디까지 했는지를 사람이 기억해야 합니다.
작도는 붙여넣기가 끝이 아니라 붙여놓고 그 위에서 작업하는 게 본론인데, 본론에 들어가기 전에 이미 CAD가 무거워져 있는 겁니다.
시간보다 무서운 게 따로 있습니다
도면 안에 블록이 잡혀 있으면 원래 작업도면의 치수가 바뀝니다.
발주처 도면과 내 작업도면에 같은 이름의 블록이 있으면, 붙여넣는 순간 둘 중 하나의 정의로 통일돼요. 방금 붙인 도면이 엉뚱한 모양으로 들어오거나, 더 무섭게는 이미 그려둔 다른 품목의 형상이 소리 없이 바뀝니다.
그래서 다들 한 번 당해본 뒤로는 깨서(EXPLODE) 복사합니다. 그러면 이번엔 원본 구조가 사라져서 나중에 어디서 온 도면인지 추적이 안 돼요.
| 방식 | 문제 |
|---|---|
| 그대로 복사-붙이기 | 같은 이름 블록이 있으면 형상이 바뀜. 어느 쪽이 바뀔지 예측 불가 |
| 깨서 복사 | 원본 구조·출처가 사라짐 |
| 어느 쪽이든 | 50장이면 15~20분. 그 시간 내내 집중해야 하고 순서 하나 놓치면 다시 |
도면 일괄 배치, 있는 방법은 다 찾아봤습니다
“없다”는 건 아닙니다. 찾아보면 도면을 모아주는 무료 리습도 있고, 유료 플러그인에도 비슷한 기능이 들어 있어요. 만들기 전에 그걸 다 정리해봤습니다. A·B는 제가 직접 써온 것이고, C·D는 이번에 조사한 것입니다.
| 방식 | 되는 것 | 걸리는 것 |
|---|---|---|
| A. 외부참조(XREF) 부착 | 부착할 때 안쪽 블록 이름에 접두어가 붙어서 이름 충돌이 안 생김 | 한 번에 붙이면 전부 (0,0)에 겹쳐 들어와 한 장씩 손으로 옮겨야 함. 부착 후 블록 이름이 지저분해짐 |
| B. 복사-붙이기 / 깨서 붙이기 | 도구가 필요 없음 | 위에 쓴 그대로 |
| C. 유료 솔루션 | 도면을 모아주는 기능이 들어 있는 제품이 있음 | 배치 하나만 파는 게 아니라 여러 기능을 묶은 패키지로 팔림. 제가 알아본 선에서는 400만 원대. 필요한 건 하나인데 값은 전체를 내야 함 |
| D. 무료 리습 | 폴더를 지정해 안의 도면을 전부 블록으로 삽입 | 대체로 AutoCAD 기준. 폴더 단위로만 받고 순서·검증 옵션 없음 |
무료 리습이 안 되는 지점
무료로 도는 리습들은 대체로 “깨끗한 도면”을 전제로 만들어져 있습니다. 선과 치수만 있는 단품도 몇 장이면 잘 돌아요. 그런데 발주도면은 깨끗하게 안 옵니다.
- 발주처가 다르면 도면 생김새가 다릅니다. 3D에서 내보낸 것, 2D로 직접 그린 것, 스캔을 트레이싱한 것이 한 폴더에 섞여 들어와요. 치수가 객체로 남은 것과 선·문자로 분해된 것이 섞이면, 축척이나 크기를 전제로 깔린 로직은 거기서 어긋납니다.
- 블록이 잡힌 도면은 난이도가 한 단계 위입니다. 앞에서 쓴 이름 충돌이 여기서 그대로 터져요. 그냥 삽입하는 리습은 충돌을 판단하지 않고 넣기 때문에, 넣는 순간 이미 그려둔 다른 품목이 조용히 바뀌어도 로그에 아무것도 안 남습니다. 사고를 나중에 발견하게 되는 쪽이 제일 나빠요.
- 그래서 실패를 다루는 방식이 필요합니다. 35장 중 3장이 이상하면 “어느 3장이 왜 이상한지”가 화면에 남아야 하는데, 대부분은 되면 되고 안 되면 조용히 끝납니다.
유료 쪽은 이런 걸 감당하는 제품도 있을 겁니다. 다만 값이 기능 하나 단위로 매겨지지 않습니다. 배치만 필요한데 여러 기능을 묶은 패키지를 사야 하고, 제가 알아본 선에서는 400만 원대였어요. 팀 전체가 다른 기능까지 같이 쓴다면 그 값이 맞을 수 있지만, “이거 하나 편하자고” 개인이 결재를 올리기엔 근거가 안 섭니다.
그리고 사도 로직은 못 만집니다. 우리 도면 규칙에 맞춰 뭘 바꾸거나, 이미 쓰고 있는 리습 체계에 물릴 수가 없어요.
제가 도면 일괄 배치에서 원한 조합 — 끌어다 놓기 + 순서 + 간격 + 출처 기록 + 축척 검사 + 실패 목록을 한 번에 주는 건 없었습니다. 이미 쓰고 있는 리습 체계에 붙이려면 직접 만드는 게 빨랐어요.
조건은 단순하게 세웠습니다. 끌어다 놓으면 순서대로 알아서 깔릴 것. 어디서 온 파일인지 도면 위에 남길 것. 뭐가 안 됐는지 화면에 남을 것. 100장이어도 될 것.
도면 일괄 배치, 쓰는 입장에서는 이게 전부입니다
CAD 명령창에 DBI
→ 창이 뜸 → 탐색기에서 도면을(또는 폴더째) 끌어다 놓음
→ 목록에 번호가 매겨짐 (도면-2 가 도면-10 앞에 오도록 자연정렬)
→ [확인]
→ CAD 로 돌아와 배치 시작점 클릭
→ 끝. 왼쪽부터 한 장씩, 도면 폭 + 여백만큼 띄워서 배치
각 도면 위에는 원본 파일의 전체 경로가 문자로 남고, 아래에는 순번과 파일명이 붙습니다. “이 품목 어느 폴더에서 온 거지?”가 안 생기고, 이 경로 문자는 다음 자동화 단계에서 데이터로 읽어다 씁니다.
옵션은 셋만 뒀습니다.

| 옵션 | 언제 |
|---|---|
| 그대로 삽입 | 기본. 35장에 몇 초 |
| 축척 검사 | 도면 안 치수의 표시값과 실제 길이를 비교해 1:1인지 확인. 느림 |
| 한 줄당 장수 | 0이면 한 줄로 쭉, 숫자를 넣으면 그만큼마다 줄바꿈 |
35장으로 돌린 실제 결과입니다.
No 파일 폭 상태
1 도면-01 2000 치수없음-검사불가 (그대로 삽입)
2 도면-02 2000 치수없음-검사불가 (그대로 삽입)
...
[DBI] 완료: 성공 35 / 실패 0

화면에 나오는 도면은 제가 테스트용으로 그린 것입니다.
실제 발주도면으로 돌린 결과가 훨씬 그럴듯하겠지만, 업체 도면은 그 업체 소유예요. 형상이든 도면번호든 한 조각이라도 공개할 성질의 것이 아니라서, 시연은 전부 자체 제작 도면으로 했습니다. 남의 도면으로 내 툴을 홍보할 수는 없으니까요.
속은 이렇게 생겼습니다
도면 일괄 배치를 한 언어로 다 짜려고 하면 막힙니다. CAD 안에서 도는 AutoLISP은 끌어다 놓기 창을 못 만들거든요. 그래서 창은 파이썬이 맡고, 실제 삽입은 리습이 맡고, 둘은 텍스트 파일 하나로 대화합니다. 창에서 확인을 누르면 파이썬이 CAD를 직접 불러서 배치를 실행시켜요.
파일은 셋(.py / .vbs / .lsp)이고 한 폴더에 두면 됩니다.
AutoCAD에서도 되나요
원리는 같습니다. AutoLISP은 원래 AutoCAD의 언어이고, 제가 쓰는 BricsCAD가 그걸 그대로 받아 쓰는 구조예요. 외부에서 CAD를 호출하는 COM 연결도 양쪽 다 열려 있습니다.
다만 제가 실제로 돌려본 건 BricsCAD입니다. AutoCAD에서 검증해보지 않았어요. 지뢰 ①에서 쓴 “삽입 명령이 파일을 새 탭으로 열어버리는” 문제가 CAD마다 다르게 나오는 걸 보면, 옮길 때 손볼 데가 나올 겁니다. 되긴 되는데 그대로 복사해 붙이면 된다는 뜻은 아니에요.
지뢰 — 첫 판이 돌기까지 열한 번 고쳤습니다
전부 직접 밟은 것만 적습니다. 파일명이 _v11인 이유가 이겁니다.
① 도면이 블록이 아니라 탭으로 열렸습니다
“이 파일을 블록으로 넣어라”는 표준 명령을 썼는데, 제가 쓰는 CAD에서는 그 파일을 새 문서로 열어버렸어요. 35장이 탭 35개로.
지금은 명령행 삽입을 먼저 쓰고, 안 되면 파일을 백그라운드에서 읽어 블록으로 복사하는 방식으로 넘어갑니다.
② 창은 떴는데 파일을 끌어다 놓아도 반응이 없었습니다
코드 문제인 줄 알고 한참 봤는데 윈도우 규칙이었어요.
관리자 권한으로 실행된 프로그램에는 탐색기에서 끌어다 놓기가 안 들어갑니다. CAD를 관리자 권한으로 쓰면 거기서 띄운 창도 그 권한을 물려받습니다.
CAD가 직접 창을 띄우지 않고 윈도우 탐색기를 거쳐 띄우게 바꿨습니다. 회사 PC에서 제일 자주 걸릴 지뢰라고 봅니다.
③ CAD를 기다리게 했더니 CAD가 멈췄습니다
처음엔 리습이 “확인 누를 때까지” 0.5초마다 확인하며 기다리게 했어요. 명령창이 지연: 500으로 도배되면서 CAD가 잡혔습니다.
방향을 반대로 바꿨습니다. CAD는 창만 띄우고 손을 놓고, 창이 확인 시점에 CAD를 부릅니다.
④ 실행은 됐는데 창이 안 보였습니다
로그엔 정상 실행이라고 찍히는데 화면엔 아무것도 없었어요.
창을 띄우는 스크립트에 “콘솔 창 숨김” 옵션을 줬는데, 윈도우가 그 옵션을 그 프로그램이 처음 여는 창에 적용해버린 겁니다. 숨겨진 채로 잘 떠 있었던 거죠. 숫자 하나 바꾸는 걸로 끝났지만 찾느라 진단용 파일까지 만들었습니다.
⑤ 고친 파일을 다시 로드해도 그대로였습니다
CAD가 한 번 읽은 리습 파일명을 기억해서, 내용을 고쳐도 같은 이름이면 예전대로 돌 때가 있어요. 그래서 고칠 때마다 번호를 올렸습니다. 번호가 곧 삽질 횟수입니다.
⑥ 한글이 깨져서 뭘 고쳤는지 볼 수가 없었습니다
CAD 한글 표시 때문에 옛 방식으로 저장했더니 편집기에서 주석이 ����로 보였어요. CAD는 UTF-8도 잘 읽으니 그걸로 통일하면 됩니다.
⑦ 화면이 ⊗ 로 덮였습니다
철골 단품도를 넣었더니 볼트홀과 부재 끝마다 노드(POINT)가 박혀 있어서 도면이 ⊗ 투성이가 됐습니다. 도면 자체는 멀쩡한데 눈으로 읽을 수가 없어요.
원본 파일을 건드리면 안 되니, 삽입한 블록 정의 안에서만 노드를 지우도록 했습니다. 체크박스로 껐다 켤 수 있고 기본은 켜짐입니다. 원본 파일은 그대로예요.
⑧ 출처를 남겼는데 다음 단계가 못 읽었습니다
이게 제일 허무했습니다.
경로 문자를 남긴 이유가 다음 자동화 단계에서 읽어다 쓰려고였는데, 정작 그 단계에서 “경로 텍스트 0개 발견”이 떴어요.
받는 쪽이 경로를 판정할 때 /만 보고 있었던 겁니다. 그런데 사내 서버 경로(\\서버\...)에는 역슬래시밖에 없어요. 남긴 쪽은 잘 남겼고 읽는 쪽이 못 알아본 거죠.
데이터를 넘길 때는 넘기는 쪽 형식과 받는 쪽 기대가 같은지를 실제 데이터로 한 번 확인해야 합니다. 둘 다 제가 만든 건데도 이랬습니다.
아직 못 푼 것
블록 이름 충돌은 아직 해결 못 했습니다. 이 툴은 파일 하나를 블록 하나로 넣기 때문에 파일 단위 충돌은 없지만, 도면 안에 들어 있는 블록이 작업도면의 블록과 이름이 같으면 수작업 때와 같은 문제가 생길 수 있어요. 외부참조 부착이 하는 것처럼 안쪽 블록 이름에 접두어를 붙이는 방식을 검토 중입니다.
축척 검사는 “깨진 치수”를 못 잡습니다. 3D CAD에서 내보낸 도면은 치수가 분해돼 선과 문자로만 남는 경우가 많은데, 그러면 비교할 치수 객체 자체가 없어요.
지금은 숫자 문자가 여러 개 보이면 “축척확인필요”라고 빨간 글씨로 경고만 띄우고 값 보정은 안 합니다. 추정으로 크기를 바꿨다가 그대로 잘리면 그게 진짜 사고니까요.
이 글에서 가져갈 것
- 도면 일괄 배치는 CAD 기본 기능에 없고, 수작업의 진짜 문제는 시간이 아니라 블록 이름 충돌로 형상이 바뀌는 사고
- 공개된 리습이 없는 게 아니라, 도면 생김새가 제각각이고 블록이 잡혀 있는 실제 발주도면을 못 버팁니다. 유료 쪽은 기능 묶음 단위 가격(400만 원대)과 수정 불가가 걸림
- 도면을 한 장씩 여는 건 시간만 쓰는 게 아니라 탭이 쌓이는 만큼 CAD가 무거워집니다. 본 작업 들어가기 전에 이미 느려져 있는 게 진짜 손해
- 자동화할 땐 어디서 온 파일인지를 도면 위에 남겨두면 다음 단계가 쉬워짐
- 다만 남기는 것만으로는 부족하고, 받는 쪽이 그 형식을 읽을 수 있는지까지 확인해야 함
- CAD를 관리자 권한으로 쓰는 PC라면 외부 창으로의 끌어다 놓기는 막힘
- CAD 안에서 뭔가를 기다리게 만들지 말 것 — 바깥에서 CAD를 부르는 쪽이 맞음
다음 글 예고
도면 위에 남긴 경로 문자에서 필요한 값을 뽑아 BOM·발주 데이터와 연결하는 단계를 다룹니다.
배치가 끝이 아니라, 배치된 도면에서 부재 정보를 읽어 표로 만드는 데까지 가야 실제로 시간이 줄어듭니다. 그 연결 지점에서 나온 것들을 씁니다.
비슷한 작업 때문에 시간을 뺏기고 계신가요
발주서 정리, BOM 작성, 송장 발행처럼 매번 반복되는 사무 작업이라면 자동화할 수 있습니다.
어떤 작업을 몇 번 반복하시는지만 알려주세요.
판금하는 탄즈 — 레이저 절단·절곡 9년차. 반복 작업이 싫어서 AI와 자동화로 도망치는 중.