캐드 도면 정리를 하다 보면 늘 같은 자리에서 막힌다. 분명 수직으로 그었다고 믿은 선이 0.03도 기울어 있고, 3000이라고 믿은 폭이 2999.9997이다. 눈으로는 절대 안 보인다. 그런데 도면을 넘겨받은 사람은 그 자리에서 스냅이 안 붙는다며 전화를 한다.
앞서 도면 품질 검수(QC·QCV) 글에서 이 문제를 찾아내는 도구를 올렸다. 이번 글은 그다음이다. 찾은 뒤에 어떻게 할 것인가.

캐드 도면 정리는 왜 늘 손으로 끝났나
검수 도구를 쓰기 시작한 뒤로 문제가 하나 더 생겼다. 결함이 있다는 건 알겠는데, 고치는 건 여전히 내 손이었다.
색이 칠해진 선을 하나씩 찾아가서 좌표를 다시 입력했다. 하나 고치면 옆 선의 끝점이 안 맞았다. 그걸 다시 붙이면 또 그 옆이 어긋났다. 오후 내내 그 짓을 하고 나면, 처음보다 나아진 건지 확신이 안 섰다.
색을 되돌리는 것도 일이었다. 검수하느라 칠해둔 색을 원래대로 돌리려면 결국 도면을 안 저장하고 닫는 수밖에 없었다. 그러면 그날 고친 것도 같이 날아갔다.
그리고 억울한 게 하나 있었다. 계단 난간이나 경사 지붕처럼 일부러 기울인 선까지 전부 오류로 잡혔다. 45도로 정확히 그은 선인데 사선이라는 이유로 빨갛게 칠해지면, 그 도구를 계속 믿기가 어려워진다.
네 개 명령으로 캐드 도면 정리를 닫았다
명령을 두 개 더 붙여 순환을 완성했다. 찾고 → 보고 → 고치고 → 되돌린다.
QC는 검수한다. 소수점으로 떨어지는 폭·높이, 직교가 아닌 선, 길이 0인 선분, 평행선 사이의 소수점 간격을 각각 다른 색으로 표시한다. 간격 오류는 두 선을 잇는 빨간 점선 가이드까지 따로 그려준다.
이번에 판정 기준을 다시 짰다. 15도 배수로 정확히 떨어지는 각도이거나, 양 끝점이 모두 정수 좌표에 놓인 사선은 의도한 작도로 보고 통과시킨다. 반대로 1도 이내로 아슬아슬하게 기운 선은, 수직으로 그으려다 실패한 것으로 본다. 억울한 빨간색이 대부분 사라졌다.
QCV는 걸린 지점을 하나씩 화면으로 데려간다. 다 돌면 원래 보던 자리로 돌아온다.
QCR은 검수 흔적을 지운다. 색을 바꿀 때 원래 색을 객체 안에 따로 저장해두기 때문에, 개별 색을 준 선도 정확히 제자리로 돌아온다. 가이드 선과 임시 레이어까지 퍼지한다.
QCF가 이번의 본체다. 기준점을 한 번 찍으면, 그 점을 영점 삼아 모든 좌표를 정수로 반올림한다. 1도 이내로 기운 선은 완전한 수직·수평으로 펴고, 의도된 사선은 각도를 유지한 채 좌표만 정리한다. 길이 0인 선분은 지운다. 마지막으로 1 이내로 벌어져 있던 끝점들을 서로 붙인다.
어떻게 달라졌나
오후 내내 하던 일이 명령 한 번으로 끝난다.
더 중요한 건 순서가 생겼다는 것이다. QC로 상태를 보고, QCF로 고치고, 다시 QC로 확인한다. 두 번째 검수에서 색이 거의 안 나오면 그 도면은 끝난 것이다. 감이 아니라 숫자로 끝을 판단하게 됐다.
작업 결과도 숫자로 나온다. 몇 개를 정수화했고, 몇 개는 공차를 벗어나 손대지 못했고, 몇 건을 병합했는지 명령창에 정리된다. 손대지 못한 것들만 따로 보면 되니 수동 작업의 범위가 확 좁아졌다.
사용 환경
ZWCAD 2023 기준으로 개발하고 실전에서 검증을 마쳤다. AutoCAD 호환은 미검증이다.
이 도구는 건축 도면을 전제로 만들었다. 정수 좌표와 직교 작도가 규율인 도면이라는 뜻이다. 실측 도면이나 좌표계가 들어간 도면처럼 소수점이 정상인 곳에는 맞지 않는다. 거기서는 이 도구가 멀쩡한 좌표를 결함으로 보고 옮겨버린다.
파일 상단에 설정 값이 모여 있다. 직교 판정 공차, 평행선 간격 검사 범위, 끝점 병합 거리, 검수에서 통째로 제외할 레이어 이름을 바꿀 수 있다. 사선 전용 레이어를 쓰고 있다면 그 이름을 넣어두면 편하다.
어떻게 쓰나
- 검수할 선과 폴리선을 선택하고
QC입력. 선택 없이 실행하면 그 자리에서 선택하라고 묻는다 QCV를 반복 입력해 걸린 지점을 순회- 고칠 준비가 되면
QCF입력 → 정수화의 영점이 될 기준점을 클릭 - 다시
QC로 결과 확인 - 검수 색과 가이드 선을 지우려면
QCR
기준점은 도면 안에서 가장 신뢰할 만한 좌표를 찍는 게 좋다. 통상 기둥 중심이나 그리드 교차점이다. 한 번 찍은 기준점은 기억해뒀다가 다음 실행 때 다시 쓸지 물어본다. 같은 도면을 나눠서 작업할 때 기준이 흔들리지 않는다.
QCF는 좌표를 실제로 옮기는 명령이다. 한 번의 실행 전체가 하나의 되돌리기 단위로 묶여 있으니, 결과가 마음에 안 들면 U 한 번으로 통째로 돌아간다.
아직 안 되는 것
선과 폴리선만 본다. 원, 호, 스플라인은 대상이 아니다. 호가 섞인 폴리선도 검수와 보정에서 함께 제외된다.
블록 안쪽은 들여다보지 않는다. 현재 공간의 객체만 대상이다.
1도가 넘게 기울어진 사선은 자동으로 펴지 않는다. 의도인지 실수인지 도구가 판단할 수 없어서, [수동 확인 필요] 표시만 남기고 넘어간다.
시작점과 끝점의 Z 좌표가 다른 3D 선분은 건드리지 않는다. 개수만 보고한다.
닫힌 폴리선은 보정 뒤에도 비직교 세그먼트가 남을 수 있다. 정점 하나가 앞뒤 두 변에 동시에 물려 있어서, 한쪽을 맞추면 다른 쪽이 어긋나는 경우다. 이때는 개수를 경고로 알려준다.
받아 가기
받은 파일을 캐드에 로드하면 네 명령을 모두 쓸 수 있다. 이전 버전을 쓰고 있었다면 이 파일로 교체하면 된다. 로드 방법이 낯설면 리습 불러오기 4가지 글을 참고하면 된다.
궁금한 점이나 안 되는 부분은 댓글로 남겨 주시면 확인하겠습니다.
짧은 회고
검수 도구를 처음 만들었을 때는 문제를 보는 것만으로 충분하다고 생각했다.
착각이었다. 보이기 시작하니 오히려 괴로웠다. 매일 열 개씩 결함을 발견하는데 고칠 시간은 없는 상태가 몇 주 이어졌다. 안 보이던 때가 편했다는 생각까지 했다.
보정 명령을 붙이고 나서야 알았다. 검수는 절반짜리였다는 걸. 진단만 있고 처방이 없으면 그건 도구가 아니라 잔소리다.
이용 조건: 개인·비영리 자유 사용, 출처(Talkative Archi) 표기 시 수정 가능, 무단 재배포·상업 판매 금지, 무보증·본인 책임. 자세히
답글 남기기