도면 일괄 배치 실행 화면

도면 일괄 배치 — 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 로 돌아와 배치 시작점 클릭
  → 끝. 왼쪽부터 한 장씩, 도면 폭 + 여백만큼 띄워서 배치

각 도면 위에는 원본 파일의 전체 경로가 문자로 남고, 아래에는 순번과 파일명이 붙습니다. “이 품목 어느 폴더에서 온 거지?”가 안 생기고, 이 경로 문자는 다음 자동화 단계에서 데이터로 읽어다 씁니다.

옵션은 셋만 뒀습니다.

DBI 실행화면
옵션언제
그대로 삽입기본. 35장에 몇 초
축척 검사도면 안 치수의 표시값과 실제 길이를 비교해 1:1인지 확인. 느림
한 줄당 장수0이면 한 줄로 쭉, 숫자를 넣으면 그만큼마다 줄바꿈

35장으로 돌린 실제 결과입니다.

No   파일        폭      상태
1    도면-01     2000    치수없음-검사불가 (그대로 삽입)
2    도면-02     2000    치수없음-검사불가 (그대로 삽입)
...
[DBI] 완료: 성공 35 / 실패 0
DBI 시연영상

화면에 나오는 도면은 제가 테스트용으로 그린 것입니다.

실제 발주도면으로 돌린 결과가 훨씬 그럴듯하겠지만, 업체 도면은 그 업체 소유예요. 형상이든 도면번호든 한 조각이라도 공개할 성질의 것이 아니라서, 시연은 전부 자체 제작 도면으로 했습니다. 남의 도면으로 내 툴을 홍보할 수는 없으니까요.

속은 이렇게 생겼습니다

도면 일괄 배치를 한 언어로 다 짜려고 하면 막힙니다. 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와 자동화로 도망치는 중.

Similar Posts