캐드 객체 크기 확인은 매번 시작점과 끝점을 다시 찍는 일이었다. 이미 그려진 객체가 정확한 좌표를 갖고 있는데도, 크기 하나 확인하려고 스냅에 의지해 점을 두 번 찍어야 했다.

어떤 문제였나
거리나 크기를 확인할 때 가장 먼저 손이 가는 건 디스턴스 계열 명령이다. 시작점 클릭, 끝점 클릭. 문제는 그 두 점이 항상 정확히 스냅되지는 않는다는 데 있다. 곡선 경계나 살짝 겹친 선 위에서는 어디를 눌러야 정확한 값이 나오는지 몇 번씩 확대해가며 확인하게 된다.
생각해보면 이상한 일이다. 객체는 이미 자기 크기를 데이터로 갖고 있다. 그런데도 그걸 확인하겠다고 사람이 다시 점 두 개를 찍어 거리를 재는 셈이니, 객체한테 직접 물어보면 될 걸 굳이 돌아가는 방법을 쓴 것이다.
어떻게 풀었나
접근은 반대로 잡았다. 점을 찍지 않고, 객체 하나를 선택한다. 그러면 그 객체의 폭과 높이가 명령창에 바로 뜬다.
내부적으로는 객체 종류에 따라 계산 방식이 갈린다. 선·원·호·문자·블록처럼 일반적인 객체는 바운딩박스를 구해서 폭과 높이를 뽑는다. 반면 폴리라인은 조금 다르게 다룬다 — 경량 폴리라인(LWPOLYLINE)이든 구형 폴리라인(POLYLINE)이든 꼭짓점을 하나씩 따라가며 최대·최소 좌표를 직접 계산한다. 겉보기엔 같은 결과지만, 객체마다 갖고 있는 데이터 구조가 달라서 계산 경로도 다르게 짜야 했다.
표시되는 소수점 자리는 도면 설정(LUPREC)을 그대로 따라간다. 도면마다 소수점을 두 자리로 보든 세 자리로 보든, SZ가 보여주는 숫자도 그 설정에 맞춰진다.
캐드 객체 크기 확인, 어떻게 달라졌나
예전에는 확대하고, 스냅점을 확인하고, 두 번 클릭하고, 혹시 오차가 있을까 봐 한 번 더 재보는 과정을 거쳤다. 지금은 객체 하나 클릭하는 것으로 끝난다. 스냅이 어긋날 걱정도, 어디를 시작점으로 잡아야 할지 고민할 필요도 없어졌다. 정수배로 안 떨어지는 객체를 찾는 건 덤.
사용 환경
- ZWCAD 2023 기준 개발, 실전 검증 완료
- AutoCAD 호환은 미검증
어떻게 쓰나
- 명령어
SZ입력 - 크기를 확인할 객체 선택 — 미리 선택해둔 게 있으면 그대로 쓰고, 없으면 클릭으로 선택
- 명령창에 객체 종류와 폭·높이가 바로 출력됨
리습을 캐드에 처음 불러온다면 리습 불러오기 4가지를 먼저 보는 게 편하다.
아직 안 되는 것
- 회전된 객체는 실제 변 길이가 아니라, 도면 좌표축 기준으로 계산된 폭·높이가 나온다. 사각형을 30도 돌려놨다면 그 결과는 “돌아간 사각형을 다시 감싼 상자”의 크기다.
- 여러 개를 한꺼번에 선택해도 첫 번째 객체 하나만 계산한다.
- 무한선처럼 경계가 없는 객체가 블록 안에 섞여 있으면 바운딩박스 계산이 안 돼 안내 메시지만 뜬다.
받아 가기
짧은 회고
거창한 걸 만든 건 아니다. 점 두 번 찍던 걸 클릭 한 번으로 줄인 정도다. 그런데 그 한 번의 차이가, 확대하고 스냅 확인하던 자잘한 순간들을 꽤 많이 덜어냈다.
개인·비영리 자유 사용, 출처(Talkative Archi) 표기 시 수정 가능. 무단 재배포·상업적 판매 금지, 무보증·본인 책임. 자세히
답글 남기기