도면번호 하나 밀리면 전부 다시 — 도면번호 자동 증감 리습(FVV)

작성자

카테고리:

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

도면번호 자동 증감 전후 비교 — ZWCAD 리습 FVV

도면번호가 하나 밀릴 때마다

설계 도면은 항상 순서대로 끝나지 않는다. 검토가 끝난 뒤 단면도 한 장이 추가로 필요해지고, 그러면 그 뒤에 붙어 있던 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. 도면번호 텍스트를 1개만 선택(또는 사전선택 상태로 둔 채)하고 FVV를 실행한다. → 그 자리에서 바로 숫자가 하나 증감된다.
  2. 도면번호 텍스트를 여러 개 선택하고 FVV를 실행한다.
  3. 리습이 가로/세로 배치를 판단해 정렬 순서를 알려준다. 맨 앞 텍스트가 기준이 된다.
  4. 숫자 그룹이 여러 개인 텍스트라면 자동 인식한 패턴이 뜬다. 맞으면 Y, 아니면 N을 누르고 기준 텍스트를 다시 클릭한다.
  5. 지하 텍스트가 섞여 있으면 지상 전환 여부를 묻는다. 답하면 나머지는 자동으로 처리된다.

아직 안 되는 것

“지하”·”B”는 문자열 끝에 정확히 붙어 있을 때만 인식한다. 숫자 바로 앞이 “지하” 또는 “B”로 끝나야 감소 방향으로 판단하고, 그 외에는 전부 증가로 처리한다. 오탐을 줄이려고 보수적으로 짜둔 판정이라, “지하주차장”처럼 다른 단어에 섞여 있으면 인식하지 못한다.

정렬축 판단은 좌표 범위 비교로만 한다. 가로 폭과 세로 폭 중 더 넓은 쪽을 정렬 기준으로 삼는데, 텍스트들이 정사각형에 가깝게 배치돼 있으면 의도와 다른 축으로 정렬될 수 있다.

문자 높이가 조금만 달라도 제외된다. 허용오차가 0.01로 꽤 빡빡하게 잡혀 있어서, 같은 그룹인데 높이가 미세하게 다른 텍스트는 걸러질 수 있다. 파일 위쪽의 *FVV-HEIGHT-TOL* 값을 고치면 여유를 늘릴 수 있다.

오토캐드에서는 검증하지 않았다. ZWCAD 2023에서만 실전 확인을 마쳤다.

받아 가기

쓰다 막히거나 개선했으면 하는 부분이 있으면 댓글로 알려 주세요.

짧은 회고

이번에 제일 오래 붙잡은 건 정렬도, 지하/지상 전환도 아니었다. 한글 텍스트를 한 글자씩 훑으면서 숫자만 골라내는 부분이었다. CP949는 한글 한 글자가 2바이트인데, strcase 같은 흔한 함수를 무심코 썼다가 후행 바이트가 오염돼 글자가 깨지는 걸 한 번 겪고 나서야, ascii 코드 127을 기준으로 1바이트/2바이트를 나눠 처리하는 방식으로 다시 짰다. 눈에 보이는 기능보다 안 보이는 바이트 처리에 더 공을 들인 도구다.


개인·비영리 자유 사용 / 출처(Talkative Archi) 표기 시 수정 가능 / 무단 재배포·상업적 판매 금지 / 무보증·본인 책임 — 자세히

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

acaddoc (2) AI (1) APPLOAD (2) AutoLISP (35) QT (41) RRAV (2) TRA (2) TRB (2) ZWCAD (35) 건축실무 (4) 계단 (2) 단축키 (2) 도곽 (3) 도면 검수 (3) 도면 편집 (2) 리습 (35) 멀티플롯 (2) 바이브코딩 (1) 블록 (3) 선교후기 (1) 시편 (16) 에스겔 (24) 워크플로우자동화 (3) 제미나이 (1) 창호도 (2) 창호일람표 (2) 캐드 자동화 (34) 클로드 (1) 평행선 (2) 헤드룸 (2)