대칭 복사, 축은 이미 도면에 있었다 — 대칭 복사 리습(VV)

작성자

카테고리:

캐드 대칭 복사를 쓸 때마다 걸리던 게 두 가지 있었다. 대칭축을 지정하려고 매번 점 두 개를 찍어야 하는 것, 그리고 다 찍고 나면 원본을 지울지 말지를 또 물어보는 것. 기능 자체는 오래전부터 완성돼 있는데, 그 앞뒤에 붙은 두 번의 손이 하루치로 쌓이면 꽤 컸다. 그래서 축은 도면에 이미 그려진 선을 그대로 쓰고, 원본은 항상 남기도록 고정한 도구를 만들었다.

캐드 대칭 복사 전후 비교 — 축을 두 점 찍던 방식과 도면의 선을 클릭 한 번으로 축 삼는 방식

어떤 문제였나 — 축 두 점과 되묻는 질문

순정 대칭 복사 명령은 대칭축을 두 점으로 받는다. 문제는 실무에서 그 축이 대개 이미 도면에 그려져 있다는 점이다. 중심선이든, 벽 한 겹이든, 구획선이든, 눈앞에 멀쩡히 선으로 존재한다. 그런데 명령은 그 선을 알아보지 못하니, 나는 그 선 위에 스냅을 잡아 시작점을 찍고 다시 끝점을 찍는다. 있는 걸 두 번 지목하는 셈이다.

축이 짧거나 다른 객체와 겹쳐 있으면 이야기가 더 늘어진다. 스냅이 옆 객체를 물어 축이 미세하게 틀어지고, 결과가 반 뼘쯤 어긋나 있는 걸 뒤늦게 발견한다. 어떤 날은 축으로 쓸 임시 보조선을 하나 그리고, 대칭 복사를 하고, 다시 그 보조선을 지웠다. 한 번의 대칭을 위해 세 가지 일을 한 것이다.

두 번째는 원본 삭제 여부다. 명령 끝자락마다 원본을 지울지 묻는데, 내 경우 답은 사실상 늘 같았다. 남긴다. 대칭 복사는 말 그대로 복사이지 이동이 아니고, 지워야 할 일은 훨씬 드물다. 그런데도 매번 물음이 뜨고, 매번 판단하는 시늉을 한 뒤, 매번 같은 답을 입력했다. 큰 방해는 아니지만 흐름을 한 번씩 끊는 종류의 일이다.

어떻게 풀었나 — 있는 선을 축으로 쓴다

접근은 단순하다. 대칭축을 점이 아니라 객체로 받는 것이다.

vv를 실행하고 대상을 고르면 축을 묻는데, 여기서 도면에 있는 선을 한 번 클릭하면 된다. 그 객체의 시작점과 끝점을 뽑아 그대로 대칭축으로 삼는다. 선(Line)뿐 아니라 폴리선·2D 폴리선·3D 폴리선·호·스플라인까지 받는다. 객체 종류마다 좌표를 꺼내는 방식이 달라 예전에 자주 걸렸던 지점인데, 곡선 계열을 공통으로 다루는 함수로 통일해 종류를 가리지 않게 했다.

축으로 쓸 만한 선이 없을 때도 있다. 그럴 땐 빈 공간을 클릭하면 종전처럼 시작점·끝점을 직접 찍는 모드로 넘어간다. 하나의 명령 안에서 두 방식이 갈라지는 구조라, 상황에 따라 손이 알아서 고르면 된다.

원본 삭제 질문은 아예 없앴다. 항상 원본을 보존하도록 답을 고정했다. 지워야 할 때는 대칭된 뒤에 지우는 게 더 안전하고, 무엇보다 매번 같은 답을 입력하는 일이 사라진다.

여기에 몇 가지를 더 붙였다. 객체를 미리 선택해 둔 상태에서 vv를 쳐도 그대로 인식하고, 두 점이 같은 자리이거나 지나치게 가까우면(오차 0.1 이내) 실행 대신 경고를 낸다. 축이 사실상 점 하나일 때 결과가 엉뚱하게 튀는 걸 앞에서 막는 장치다. 실행 도중 문제가 생기면 작업 전체가 한 번의 되돌리기로 묶여 롤백된다.

어떻게 달라졌나 — 캐드 대칭 복사가 클릭 한 번으로

체감은 단순하다. 대칭 한 번에 들어가던 동작이 줄었다. 축 두 점 찍기와 삭제 여부 응답이 빠지고, 그 자리에 클릭 한 번만 남았다.

임시 보조선을 그리고 지우던 습관도 자연스럽게 사라졌다. 그리려던 그 선이 이미 도면에 있었다는 걸, 도구를 만들고 나서야 제대로 알아차렸다.

사용 환경

  • ZWCAD 2023 기준으로 개발·실전 검증을 마쳤다.
  • AutoCAD 호환은 검증하지 않았다.
  • 리습을 처음 불러오는 방법은 리습 불러오기 네 가지 글에 정리해 두었다.

어떻게 쓰나

  1. 리습을 불러온다.
  2. 명령창에 vv를 입력한다. (또는 대상을 먼저 선택해 둔 뒤 vv)
  3. 대칭 복사할 대상을 선택하고 엔터.
  4. 대칭축을 지정한다.
    • 도면에 있는 선·폴리선·호·스플라인을 클릭 → 그 객체의 양 끝이 축이 된다.
    • 축으로 쓸 객체가 없으면 빈 공간을 클릭 → 시작점·끝점을 직접 지정한다. 순정 미러처럼 사용할 수 있다.
  5. 원본은 그대로 남고 대칭된 사본이 생긴다.

vv라는 이름이 손에 안 맞으면 바꿔도 된다. 명령어를 자기 규칙대로 고치는 방법은 리습 명령어 바꾸기 글에 세 가지로 정리해 두었으니, 그쪽을 따라 별칭 한 줄만 걸면 된다.

아직 안 되는 것

  • 호·스플라인을 축으로 고르면 그 곡선 모양이 아니라 양 끝점을 잇는 직선이 축이 된다. 곡선을 따라 휘어지는 대칭이 아니다. 곡선 객체를 받는 건 “그 객체에서 두 점을 뽑는” 용도다.
  • 원본을 지우는 옵션은 없다. 보존으로 고정돼 있으니, 이동처럼 쓰고 싶다면 대칭 후 원본을 지운다.
  • 평면 기준 대칭이다. 3D 형상에서 임의 평면을 축으로 잡는 용도는 아니다.
  • 글자가 뒤집히는지 여부는 캐드의 MIRRTEXT 설정을 따른다. 도구가 이 값을 건드리지 않으므로, 글자를 뒤집고 싶지 않으면 MIRRTEXT를 0으로 두면 된다.
  • 대칭축으로 쓸 수 없는 객체(원, 문자, 블록 등)를 클릭하면 경고와 함께 취소된다.

받아 가기

받아서 쓰다가 막히는 부분이 있으면 댓글로 남겨 주세요. 확인하는 대로 답을 드리겠습니다.

짧은 회고

만들고 보니 이 도구가 한 일은 새 기능을 더한 게 아니었다. 이미 도면에 있는 정보를 명령이 알아보게 해 준 것뿐이다. 축은 늘 거기 있었고, 나만 매번 두 번씩 다시 찍고 있었다.

자동화라고 부르는 것들이 대개 이런 모양인 것 같다. 없던 걸 만들어 내기보다, 이미 있는 걸 다시 입력하지 않게 하는 일.


이 리습은 개인·비영리 목적으로 자유롭게 사용할 수 있습니다. 출처(Talkative Archi)를 밝히면 수정도 가능하며, 무단 재배포·상업적 판매는 금지합니다. 무보증·본인 책임 원칙입니다. 자세히

코멘트

답글 남기기

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

acaddoc (2) APPLOAD (2) AutoLISP (32) BRS (1) QT (16) RRAV (2) TRA (2) TRB (2) ZWCAD (32) 거리 측정 (1) 건축실무 (4) 기준점 (1) 단축키 (2) 도곽 (3) 도면 검수 (2) 도면 편집 (2) 러브소나타 (1) 리습 (32) 멀티플롯 (2) 블록 (3) 시편 (6) 에스겔 (10) 워크플로우자동화 (3) 일본선교 (1) 창호도 (2) 창호일람표 (2) 캐드 자동화 (31) 평행선 (2) 폴리라인 (1) 히브리서 (1)