도면을 그리다 보면 치수 하나 빼려고 계산기를 켜는 순간이 하루에도 몇 번씩 온다. ZWCAD에는 cal이라는 멀쩡한 계산 모듈이 이미 들어 있는데도, 나는 그걸 잘 안 쓰게 됐다. 이유는 단순하다. 귀찮아서.

귀찮은 계산기, 어떤 문제였나
cal은 좋은 기능이다. 명령창에 cal을 치고, 수식을 넣고, 결과를 받는다. 문제는 그 사이의 손동작이다.
도면 작업 중에는 거의 항상 오른손이 마우스에 가 있다. 그 상태에서 cal을 치려면 마우스를 놓고, 양손을 키보드로 가져와 명령어를 입력하고, 다시 마우스를 잡는다. 계산 한 번에 손이 두 번 자리를 옮긴다. 1200에서 500을 빼는 그 잠깐을 위해서 말이다.
별것 아닌 것 같지만, 이게 하루에 수십 번 쌓이면 작업 흐름을 자꾸 끊는다. 결국 나는 cal을 켜는 대신 옆에 둔 윈도우 계산기를 두드리거나, 머릿속으로 대충 암산하고 넘어가곤 했다. 멀쩡한 기능을 두고도.
그래서 생각했다. cal이라고 굳이 칠 필요 없이, 명령창에 그냥 1200-500이라고 치면 알아서 계산해주면 안 될까?
어떻게 풀었나
핵심은 ZWCAD가 “알 수 없는 명령”을 만났을 때를 가로채는 것이다.
명령창에 1200-500처럼 명령으로 인식되지 않는 문자열을 입력하면, 보통은 알 수 없는 명령 메시지와 함께 그냥 튕겨 나간다. 이 도구는 그 순간에 끼어든다. :vlr-unknownCommand 리액터가 입력값을 받아서, 이게 사칙연산이 섞인 수식인지 판단한 다음, 맞으면 내부적으로 cal을 호출해 계산하고 결과를 명령창에 띄운다.
판단은 두 단계다. 먼저 입력값이 숫자·연산자·괄호·소수점으로만 이뤄졌는지 확인하고, 그다음 연산자(+ - * /)가 실제로 들어 있는지를 본다. 그래서 LINE이나 좌표 같은 평범한 입력은 건드리지 않는다. 오직 수식처럼 생긴 것에만 반응한다.
어떻게 달라졌나
이제 계산이 필요하면 명령창에 수식을 친다. 그게 전부다.
명령: 1200-500
========================================
[자동 계산 결과] 1200-500 = 700.0000
========================================
cal을 칠 필요도, 윈도우 계산기를 띄울 필요도 없다. 마우스 옆에서 한 손으로 숫자만 던지면 결과가 명령창에 바로 뜬다. 괄호도 먹는다. (1200-500)*2 같은 식도 그대로 계산된다.
사용 환경
ZWCAD 2023에서 개발하고 실전에서 검증했다. AutoCAD 호환은 별도로 확인하지 않았다(코드는 cal 모듈을 AutoCAD geomcal / ZWCAD zcal 양쪽으로 로드하도록 시도한다).
이 리습은 한 가지 성격이 분명하다. 다른 도구들과 달리, 늘 켜져 있을수록 유용하다. 멀티플롯이나 낱장 분리는 필요할 때 한 번 부르는 도구지만, 계산은 작업 내내 수시로 필요하다. 그래서 이 도구는 매번 손으로 로드하기보다, 도면을 열 때마다 자동으로 켜지게 해두는 편이 잘 어울린다.
마침 전에 올린 acaddoc.lsp 상시 자동 로드 글에서 다룬 방식이 여기에 그대로 들어맞는다. 그 폴더에 이 파일을 같이 넣어두면, 도면을 열 때마다 계산 기능이 자동으로 켜진 상태가 된다. 따로 켤 필요 없이, 늘 명령창에서 수식이 계산되는 환경이 만들어지는 셈이다.
어떻게 쓰나
파일을 로드하면 자동으로 기능이 켜진다(파일 맨 아래 (c:CALC-ON) 한 줄이 그 역할을 한다).
- 계산하기: 명령창에 수식을 입력하고 엔터. 예)
350*4,(1200-500)/3 - 끄기:
CALC-OFF— 자동 계산 기능을 잠시 멈춘다. - 다시 켜기:
CALC-ON
자동으로 켜지는 게 부담스러우면, 파일 맨 아래 (c:CALC-ON) 줄만 지우면 된다. 그러면 로드해도 가만히 있다가, CALC-ON을 직접 칠 때만 동작한다.
아직 안 되는 것
- 단독 음수·양수는 계산하지 않는다.
-100처럼 부호 하나만 붙은 입력은 좌표나 일반 입력일 가능성이 높아서 일부러 제외했다. 대신-100+30처럼 연산자가 둘 이상이면 정상적으로 계산한다. - 명령 프롬프트 진행 중에는 동작이 갈릴 수 있다. 어떤 명령이 값을 기다리는 도중의 입력은 그 명령이 먼저 가져가므로, 이 기능은 명령창이 비어 있을 때 가장 안정적으로 동작한다.
- AutoCAD 호환은 미검증이다.
zcal/geomcal로드를 양쪽 다 시도하긴 하지만, ZWCAD 2023 외 환경은 확인하지 않았다.
받아 가기
링크가 안 열리거나 사용 중 막히는 부분이 있으면 댓글로 남겨주세요.
짧은 회고
이 도구를 만들고 나서 가장 달라진 건, 계산을 더 자주 하게 됐다는 점이다. 예전엔 귀찮아서 암산으로 때우던 것들을, 이제는 그냥 명령창에 던진다. 손이 멈추지 않으니까. 작은 마찰 하나를 없앴을 뿐인데, 그 마찰이 막고 있던 행동이 생각보다 많았다는 걸 뒤늦게 알았다.
이 리습은 개인·비영리 목적으로 자유롭게 사용할 수 있으며, 출처(Talkative Archi)를 표기하면 수정도 가능합니다. 무단 재배포·상업적 판매는 금지합니다. 자세히
답글 남기기