참조 편집 중에 바깥 객체를 안으로 — 복사해서 넣어주는 리습 (RRFA)

작성자

카테고리:

블록을 열어 고치는 중에 바깥에 있는 걸 하나만 안으로 넣고 싶은 순간이 있다. 참조 편집 객체 복사, 그러니까 바깥에 있는 것을 복제해 편집 중인 블록 안으로 편입시키는 일은, 알고 보면 몇 단계 안 되는데도 매번 손이 꼬였다. 그래서 그 몇 단계를 한 줄로 줄였다.

ZWCAD 참조 편집 객체 복사 전후 비교 — 복사·REFSET 왕복이 명령어 하나로

참조 편집 객체 복사가 늘 걸리던 이유

블록 하나를 REFEDIT으로 열어 고치는 중이었다. 도면 다른 쪽에 이미 그려둔 심볼이 있고, 그걸 지금 편집 중인 블록 안에 넣고 싶다. 그것뿐인데 손이 자꾸 멈췄다.

그냥 끌어다 놓으면 안 된다. 참조 편집 중에 밖에 있는 객체는 흐리게 표시될 뿐, 내가 지금 고치고 있는 세트에 속해 있지 않다. 안으로 넣으려면 REFSET을 불러 ‘추가’를 고르고, 대상을 다시 집고, 엔터를 치는 왕복이 필요하다.

문제는 그다음이었다. 원본을 그대로 편입시키면 그 객체는 블록 소속이 된다. 저장하고 나오면 바깥에 있던 자리에서는 사라진다. 참고용으로 남겨두고 싶었던 원본까지 딸려 들어가 버리는 것이다. 그래서 실제로는 먼저 제자리 복사를 하고, 그 복사본만 REFSET으로 편입시켜야 한다. 복사 한 번, 명령 한 번, 선택 한 번, 확인 한 번.

한두 번이면 그러려니 한다. 상세도 하나 정리하면서 열몇 번을 반복하면 이야기가 달라진다. 어디까지 복사했는지, 방금 편입시킨 게 원본인지 복사본인지 헷갈리기 시작하면 그때부터는 작업이 아니라 확인이 일이 된다.

어떻게 풀었나

순서를 바꾸지 않고, 사람이 하던 자리만 코드로 옮겼다.

객체를 고르면 그 데이터를 그대로 읽어 제자리에 복제본을 하나 만든다. 이때 원본과 이어진 정보(핸들·소유자)는 떼어낸다. 떼어내지 않으면 복제가 아니라 같은 객체를 가리키는 꼴이 되기 때문이다. 그렇게 만들어진 복제본들만 모아서 REFSET에 한 번에 넘긴다.

선택 방식은 양쪽 다 열어뒀다. 미리 골라두고 명령을 쳐도 되고, 명령을 먼저 쳐도 된다. 실무에서는 대개 눈에 보이는 걸 먼저 집게 되니 사전 선택 쪽이 편했다.

되돌리기는 하나로 묶었다. 열 개를 넣었어도 Ctrl+Z 한 번이면 통째로 돌아온다. 개수만큼 되돌리기를 눌러야 하는 도구는 결국 안 쓰게 된다는 걸, 몇 번 겪고 알았다.

참조 편집 객체 복사가 한 줄로

복사하고, REFSET 부르고, 다시 집고, 엔터 치던 네 동작이 명령어 하나가 됐다. 객체를 고르고 RRFA를 치면 끝이다.

원본은 밖에 그대로 남는다. 안으로 들어간 건 복제본이다. 그래서 “이거 넣으면 원본 사라지는 거 아닌가” 하는 망설임이 없어졌다. 이 망설임이 없어진 게, 사실 단축된 시간보다 컸다.

명령이 끝나면 몇 개가 편입됐는지 명령창에 숫자로 찍힌다. 골랐던 개수와 숫자가 같으면 다 들어간 것이고, 다르면 못 들어간 게 있다는 뜻이다. 확인이 한눈에 끝난다.

사용 환경

  • ZWCAD 2023 기준으로 만들고 실전에서 검증했습니다.
  • AutoCAD 호환은 확인하지 못했습니다.
  • 리습을 처음 불러오신다면 리습 불러오는 네 가지 방법 글을 먼저 보시면 됩니다.

어떻게 쓰나

  1. 평소대로 REFEDIT(참조 편집)으로 블록이나 외부 참조를 엽니다.
  2. 안으로 가져올 객체를 고릅니다. 미리 골라두셔도 되고, 3번 다음에 고르셔도 됩니다.
  3. 명령창에 RRFA를 입력합니다.
  4. 복제본이 제자리에 생기면서 편집 세트에 들어갑니다. 편입된 개수가 명령창에 표시됩니다.
  5. 위치를 잡고 평소처럼 REFCLOSE로 저장하고 나옵니다.

참조 편집 상태가 아닐 때 실행하면 안내만 띄우고 조용히 빠집니다. 실수로 쳐도 도면이 건드려지지 않습니다.

아직 안 되는 것

  • 원본은 남습니다. 복제본이 들어가는 방식이라 밖에 원본이 그대로 있습니다. 중복이 싫으시면 저장 후 직접 지우셔야 합니다. 아니면 그냥 REFSET쓰시면 되죠?
  • 모든 객체가 되는 건 아닙니다. 선·폴리선·원·호·문자처럼 자기 데이터로 완결된 객체는 잘 들어갑니다. 반면 블록 참조나 해치처럼 다른 정보에 기대는 객체는 복제가 실패할 수 있습니다. 실패해도 멈추지 않고 넘어가니, 편입된 개수를 골랐던 개수와 비교해 보시면 됩니다. 근데 될 수도 있어요.
  • AutoCAD 동작은 미검증입니다.

받아 가기

쓰시다가 안 되는 게 있으면 댓글로 남겨주세요. 제 환경에서만 되는 것들이 종종 있습니다.

짧은 회고

이 도구를 만들면서 조금 민망했던 건, 이게 대단한 기능이 아니라는 점이다. 캐드가 원래 제공하는 명령 두 개를 순서대로 부를 뿐이다. 새로 만든 게 없다.

그런데 쓰다 보면 알게 된다. 나를 지치게 한 건 어려운 작업이 아니라, 쉬운데 번거로운 작업이었다는 걸. 어려운 건 집중하니까 오히려 버틴다. 쉬운데 네 단계인 것들이 하루를 갉아먹는다.

자동화라는 말이 거창해서 그렇지, 실제로 하는 일은 대개 이렇다. 이미 있는 걸 순서대로 부르는 것. 그 순서를 기억하지 않아도 되게 만드는 것.


이용 조건: 개인·비영리 자유 사용, 출처 표기 시 수정 가능, 무단 재배포·상업적 판매 금지, 무보증·본인 책임 — 자세히

코멘트

답글 남기기

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

acaddoc (2) APPLOAD (2) AutoLISP (32) QT (16) RRAV (2) SZ (1) TRA (2) TRB (2) ZWCAD (32) 객체 크기 (1) 거리 측정 (1) 건축실무 (4) 노면표시 (1) 단축키 (2) 도곽 (3) 도면 검수 (2) 도면 편집 (2) 리습 (32) 멀티플롯 (2) 블록 (3) 선종 변환 (1) 스케치업 연동 (1) 시편 (6) 에스겔 (10) 워크플로우자동화 (3) 창호도 (2) 창호일람표 (2) 캐드 자동화 (31) 평행선 (2) 폴리라인 (1)