도면 출력은 별것 아닌 일이다. 한두 장이라면.
그런데 600장이 되면 이야기가 달라진다. 영역을 일일이 잡고, 가로·세로 도면을 가려 용지 방향을 바꾸고, 출력을 걸고, 다시 다음 도면으로. 그게 600번 반복된다. 누군가는 다른 일을 다 제쳐두고 하루를 통째로 그 일에 바쳐야 한다. 나는 이게 사람이 할 일이 아니라고 생각했고, 그래서 RRAR이라는 도구를 만들었다.
이 글은 그 도구가 무엇을, 어떤 환경에서, 어떻게 해주는지에 대한 기록이다. 비슷한 작업에 지쳐본 분이라면 받아서 바로 써보셔도 좋겠다.

시작하기 전에 (이걸 모르면 헤맨다)
이 도구를 받아서 쓰려면 몇 가지 전제가 맞아야 한다. 먼저 적어둔다.
- 도곽은 블록(INSERT)으로 작성되어 있어야 한다. XREF로 연동되어 있어도 무방하다. 하지만 일반 객체로 그린 도곽은 인식되지 않는다.
- 도면 번호는 표제란에 실제 글자(TEXT/MTEXT)로 있어야 한다. 영문+숫자 체계(예:
A-101)일 때 파일명 추출이 가장 깔끔하게 된다. - Windows 환경 전용이다.
- 첫 실행 때 한 번은 설정을 잡아줘야 한다. 출력 폴더·플로터·용지·CTB를 본인 환경에 맞추는 과정인데, 한 번 해두면 저장되어 다음부터는 바로 출력만 하면 된다.
어떤 문제를 풀었나
대량 출력의 번거로움은 한 군데에서 오는 게 아니다. 여러 손길이 겹쳐서 온다.
- 도면마다 출력 영역을 일일이 지정해야 한다.
- 가로 도면과 세로 도면이 섞여 있으면 용지 방향까지 바꿔줘야 한다.
- 출력 순서를 의식하며 객체를 골라야 한다.
- 파일을 저장할 때 이름도 하나하나 붙여야 한다.
하나하나는 사소하다. 그런데 600번 곱하면, 그게 하루를 잡아먹는다.
어떻게 동작하나
핵심은 한 문장으로 정리된다. 사람은 도곽만 고른다. 나머지는 도구가 판단한다.
- 도곽 인식 · 순서 비의존 — 도곽(블록)들을 선택하면 그 안의 내용을 출력 대상으로 잡는다. 순서는 신경 쓰지 않아도 된다.
- 용지 방향 자동 판별 — 도곽의 가로·세로 비율을 보고 가로(Landscape)/세로(Portrait)를 알아서 정한다.
- 크기 감지 후 축척 제안 — 도곽 크기를 측정해 권장 축척을 제시한다. 같은 크기의 도곽은 하나로 묶이기 때문에, 도면마다가 아니라 크기 종류마다 한 번씩만 축척을 입력하면 된다. (0을 넣으면 용지에 맞춤.)
- 표제란 기반 파일명 자동 생성 — 도곽 모서리의 표제란 영역에서 가장 큰 글자를 읽어, 영문과 숫자를 가려
A-101같은 형식으로 도면 번호를 만든다. 같은 이름이 있으면 자동으로 번호를 덧붙인다. - 흑백 출력 품질 보정 — 출력 직전, RGB(트루컬러)로 지정된 레이어를 잠시 검정으로 바꿨다가 출력이 끝나면 원래대로 되돌린다. 흑백 PDF가 지저분해지지 않도록 하는 장치다.
여기에 더해, 작업 도중 중단하거나 오류가 나더라도 변경한 환경값과 레이어 색상을 자동으로 원래대로 되돌리도록 해 뒀다. 믿고 돌려도 도면이 망가지지 않는다.
ZWCAD에서 겪은 것
쉽지만은 않았다. ZWCAD 환경은 제 나름의 고집이 있어서, 잘 짠 코드도 그대로 도는 법이 드물다.
한 예로, 폴리라인의 경계 상자(BoundingBox)를 표준 방식으로 물으면 ZWCAD에서는 엉뚱한 값이 돌아오는 경우가 있었다. 출력 영역을 잡는 데 이 값이 어긋나면 도면이 잘려 나온다. 그래서 표준 방식이 실패하면 폴리라인의 꼭짓점 좌표를 직접 읽어 경계를 다시 계산하도록 우회로를 만들어 뒀다. 도구를 ‘동작하게’ 만드는 일의 대부분은, 사실 이런 자리에 있었다.
사용 환경
이 글을 찾으신 분이 가장 궁금해할 부분일 것 같다.
- 개발·검증 환경: ZWCAD 2023 (Windows)
- 작성 언어: AutoLISP (ActiveX·레지스트리 사용)
- 출력 방식: 내장
DWG to PDF.pc5플로터 (기본값, 설정에서 변경 가능) - 기본 용지 / CTB: A3 풀블리드 / 사내 표준 CTB (둘 다 설정에서 변경 가능. 다만 용지의 전체 이름을 정확하게 입력해야 한다. ctb 또한 확장자 “.ctb”까지 입력하는 것을 권장한다). 축척 기준은 A3·A1.
- AutoCAD 호환: 미검증. 플로터 설정이 ZWCAD 방식(.pc5)에 맞춰져 있어, AutoCAD에서 쓰려면 플로터·용지 설정 조정이 필요하다.
- PDF 결합용 외부 도구(선택): 알PDF 등
어떻게 쓰나
- 이 글에 첨부된
RRAR_-_다중플롯.lsp를 내려받는다. - ZWCAD에서
APPLOAD명령으로 리습을 로드한다. - (선택) 출력할 도곽들을 미리 선택해 둔다.
- 명령창에
RRAR을 입력한다. - 현재 설정으로 바로 출력하려면
P, 출력 폴더·플로터 등을 바꾸려면S를 누른다. - (미리 선택하지 않았다면) 출력할 도곽(블록)들을 선택한다.
- 크기 종류마다 축척을 한 번씩 입력한다. (입력 전에 도곽 크기를 인식한 권장값이 먼저 제시된다.
0은 용지 맞춤으로 플롯.) - 도구가 방향·표제란·파일명을 인식해 도곽별로 PDF를 출력한다.
- (선택) 알PDF 등으로 PDF를 하나로 결합한다. 파일명이 이미 도면 번호로 정리돼 있어 순서를 맞출 필요가 없다.
이렇게 하면, 예전엔 한 사람이 하루 종일 매달려야 했던 600장이 한 시간 안에 PDF로 떨어진다.
아직 안 되는 것
지금은 캐드 내장 플로터를 통한 출력만 지원한다. Adobe PDF 같은 외부 프로그램이나 실제 프린터 플롯은 아직 적용하지 못했다. 이 부분이 다음 숙제다.
또 하나, 파일명 추출은 표제란이 일정한 규칙(모서리에 큰 글자로 도면 번호)을 따른다는 전제 위에서 동작한다. 템플릿이 많이 다르면 이름이 어긋나 Plot_Error_ 형태로 떨어질 수 있으니, 처음 쓸 때는 소량으로 한 번 확인해보길 권한다.
받아 가기
써보다가 막히는 곳이 있거나 궁금한 점이 생기면, 댓글로 남겨주시면 좋겠다. 같은 작업에 지쳐 본 사람으로서, 아는 선에서 답해 보겠다.
짧은 회고
자동화란 결국 무엇을 없애는 일인가. 도구 하나를 만들고 나서 나는 그 답이 화려한 코드에 있지 않다는 걸 다시 확인했다. 600장을 직접 출력해본 사람만 아는 그 지긋지긋함을 없애는 것. 그게 전부였다.
이용 조건 — 개인·비영리 목적 자유 사용, 출처(Talkative Archi) 표기 시 수정 가능. 무단 재배포·상업적 판매 금지. 무보증이며 사용에 따른 모든 결과는 본인 책임입니다. (자세히)