도면 한 장을 세트 중간에 끼워 넣는 순간, 그 뒤 도면번호는 전부 밀린다. 하나씩 더블클릭해서 숫자를 고치던 그 반복을, 텍스트를 선택하는 것만으로 끝내는 리습을 만들었다. 도면번호 자동 증감을 텍스트 선택 한 번으로 처리하는 도구다.

도면번호가 하나 밀릴 때마다
설계 도면은 항상 순서대로 끝나지 않는다. 검토가 끝난 뒤 단면도 한 장이 추가로 필요해지고, 그러면 그 뒤에 붙어 있던 A-101, A-102, A-103…은 전부 한 칸씩 밀려야 한다. 도면 매수가 몇 장이면 참을 만하다. 그런데 3, 40장을 넘어가는 세트라면, 이건 그냥 노가다다.
여기에 지하층 표기가 섞이면 더 성가셔진다. 지하는 보통 숫자가 내려갈수록 위층이다 — 지하3, 지하2, 지하1 다음에 지상 1층으로 넘어간다. 증가와 감소 방향이 층에 따라 뒤바뀌는 셈인데, 이걸 매번 머릿속으로 계산하면서 손으로 고치다 보면 꼭 한두 개는 방향을 놓친다.
도면번호 자동 증감, 선택만으로 판단하게
이 리습은 텍스트 선택 개수에 따라 동작이 갈린다.
텍스트를 1개만 선택하고 실행하면, 정렬이고 뭐고 없이 그 자리에서 바로 숫자를 하나 증감시킨다. 도면 위 아무 텍스트나 급하게 하나만 고칠 때 쓰는 방식이다.
텍스트를 여러 개 선택하면 이야기가 달라진다. 먼저 선택된 텍스트들의 좌표 분포를 보고 가로로 늘어서 있는지 세로로 늘어서 있는지부터 자동으로 판단한다. 그다음 그 순서대로 정렬해서 맨 앞 텍스트를 기준(마스터)으로 삼는다. 이때 문자 높이가 기준과 다른 텍스트는 자동으로 걸러낸다 — 도면번호 옆에 붙은 설명 글자 같은 게 실수로 같이 선택돼도 섞이지 않게 하기 위해서다.
기준 텍스트 안에 숫자 그룹이 두 개 이상이면(“A-101-2호”처럼) 어느 그룹을 증감시킬지 자동으로 짚어낸 패턴을 보여주고 확인을 받는다. 아니라고 답하면 기준으로 삼을 텍스트를 다시 클릭하라고 요청하고, 클릭하는 즉시 그 기준으로 재적용한다.
그리고 지하 텍스트가 섞여 있으면, “지하 0층에 도달하면 지상 1층으로 넘어갈지” 딱 한 번 물어본다. 여기서 그렇다고 답해두면 지하3 → 지하2 → 지하1 → 지상1 흐름을 리습이 알아서 이어준다.
더블클릭 대신 선택 한 번
예전엔 도면번호가 하나 밀릴 때마다 뒤에 오는 도면을 하나하나 열어 더블클릭하고, 숫자를 지우고, 다시 쓰고, 지하/지상 경계에서는 손으로 방향을 바꿨다. 이제는 관련 텍스트를 한 번에 선택하고 명령을 실행하면, 정렬부터 방향 판단까지 리습이 대신하고 사람은 확인 프롬프트에 답만 하면 된다.
사용 환경
- ZWCAD 2023 / AutoLISP 기준으로 개발하고 실전에서 검증했다. AutoCAD 호환은 확인하지 않았다.
- 별도 설치 과정 없이 리습 파일만 불러오면 바로
FVV명령으로 실행된다. 불러오는 방법이 낯설다면 리습 불러오기 4가지를 먼저 보는 걸 추천한다. - 기존에 따로 쓰던 fv·fva·fvv 세 도구를 이 한 파일로 통합했다.
이렇게 씁니다
- 도면번호 텍스트를 1개만 선택(또는 사전선택 상태로 둔 채)하고
FVV를 실행한다. → 그 자리에서 바로 숫자가 하나 증감된다. - 도면번호 텍스트를 여러 개 선택하고
FVV를 실행한다. - 리습이 가로/세로 배치를 판단해 정렬 순서를 알려준다. 맨 앞 텍스트가 기준이 된다.
- 숫자 그룹이 여러 개인 텍스트라면 자동 인식한 패턴이 뜬다. 맞으면 Y, 아니면 N을 누르고 기준 텍스트를 다시 클릭한다.
- 지하 텍스트가 섞여 있으면 지상 전환 여부를 묻는다. 답하면 나머지는 자동으로 처리된다.
아직 안 되는 것
“지하”·”B”는 문자열 끝에 정확히 붙어 있을 때만 인식한다. 숫자 바로 앞이 “지하” 또는 “B”로 끝나야 감소 방향으로 판단하고, 그 외에는 전부 증가로 처리한다. 오탐을 줄이려고 보수적으로 짜둔 판정이라, “지하주차장”처럼 다른 단어에 섞여 있으면 인식하지 못한다.
정렬축 판단은 좌표 범위 비교로만 한다. 가로 폭과 세로 폭 중 더 넓은 쪽을 정렬 기준으로 삼는데, 텍스트들이 정사각형에 가깝게 배치돼 있으면 의도와 다른 축으로 정렬될 수 있다.
문자 높이가 조금만 달라도 제외된다. 허용오차가 0.01로 꽤 빡빡하게 잡혀 있어서, 같은 그룹인데 높이가 미세하게 다른 텍스트는 걸러질 수 있다. 파일 위쪽의 *FVV-HEIGHT-TOL* 값을 고치면 여유를 늘릴 수 있다.
오토캐드에서는 검증하지 않았다. ZWCAD 2023에서만 실전 확인을 마쳤다.
받아 가기
쓰다 막히거나 개선했으면 하는 부분이 있으면 댓글로 알려 주세요.
짧은 회고
이번에 제일 오래 붙잡은 건 정렬도, 지하/지상 전환도 아니었다. 한글 텍스트를 한 글자씩 훑으면서 숫자만 골라내는 부분이었다. CP949는 한글 한 글자가 2바이트인데, strcase 같은 흔한 함수를 무심코 썼다가 후행 바이트가 오염돼 글자가 깨지는 걸 한 번 겪고 나서야, ascii 코드 127을 기준으로 1바이트/2바이트를 나눠 처리하는 방식으로 다시 짰다. 눈에 보이는 기능보다 안 보이는 바이트 처리에 더 공을 들인 도구다.
개인·비영리 자유 사용 / 출처(Talkative Archi) 표기 시 수정 가능 / 무단 재배포·상업적 판매 금지 / 무보증·본인 책임 — 자세히
답글 남기기