폴리선 시작점과 진행 방향 뒤집기
측점, 블록 배열, 선종처럼 곡선 진행 방향에 영향을 받는 후속 작업 전에 여러 곡선 방향을 한 번에 반전합니다.
AutoCAD가 지원하는 곡선만 변경
- LINE·LWPOLYLINE·POLYLINE·ARC·SPLINE을 선택 대상으로 받습니다.
- AutoCAD REVERSE가 실제로 변경한 객체만 완료 개수에 포함합니다.
- 지원하지 않는 곡선과 잠긴 레이어는 원본 그대로 건너뜁니다.
사용 순서
- 1
APPLOAD로 curve-reverse.lsp를 로드합니다.
- 2
CREVERSE를 입력합니다.
- 3
진행 방향을 뒤집을 곡선을 선택합니다.
- 4
변경·건너뜀 개수를 확인합니다.
코드 전문
다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: CREVERSE
;; 기능: 선택한 지원 곡선의 진행 방향 반전
;; 출처: https://www.autocats.co.kr/lisp/curve-reverse
;; 버전: 1.0 (2026-07-23)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 + UNDO 그룹, 잠긴 레이어 건너뜀
;;; ------------------------------------------------------------
(vl-load-com)
(defun autocats-creverse-locked-p (ent / row)
(setq row (tblsearch "LAYER" (cdr (assoc 8 (entget ent)))))
(and row (= 4 (logand 4 (cdr (assoc 70 row))))))
(defun autocats-creverse-one (ent / before result after)
(setq before (entget ent)
result
(vl-catch-all-apply
'(lambda ()
(command "_.REVERSE" ent "")
T))
after (entget ent))
(and (not (vl-catch-all-error-p result))
after
(not (equal before after))))
(defun c:CREVERSE (/ *error* doc undo-open oldecho ss idx ent changed skipped)
(defun *error* (msg)
(if undo-open
(progn (vla-EndUndoMark doc) (setq undo-open nil)))
(if oldecho (setvar "CMDECHO" oldecho))
(if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
(princ (strcat "\n[CREVERSE] 중단: " msg)))
(princ))
(princ "\n[CREVERSE] 방향을 반전할 곡선을 선택하세요.")
(setq ss (ssget '((0 . "LINE,LWPOLYLINE,POLYLINE,ARC,SPLINE"))))
(if ss
(progn
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
oldecho (getvar "CMDECHO")
idx 0 changed 0 skipped 0)
(setvar "CMDECHO" 0)
(vla-StartUndoMark doc)
(setq undo-open T)
(while (< idx (sslength ss))
(setq ent (ssname ss idx))
(if (or (autocats-creverse-locked-p ent)
(not (autocats-creverse-one ent)))
(setq skipped (1+ skipped))
(setq changed (1+ changed)))
(setq idx (1+ idx)))
(vla-EndUndoMark doc)
(setq undo-open nil)
(setvar "CMDECHO" oldecho)
(setq oldecho nil)
(princ (strcat "\n[CREVERSE] 완료: " (itoa changed)
"개 반전 / " (itoa skipped) "개 건너뜀")))
(princ "\n[CREVERSE] 선택된 곡선이 없습니다."))
(princ))
(princ "\n[AutoCATS] CREVERSE 로드 완료 - 명령행에 CREVERSE 를 입력하세요.")
(princ)
호환 CAD
위 환경에서 확인했습니다. 목록에 없는 CAD는 샘플 도면에서 먼저 결과를 대조한 뒤, CAD 종류·버전과 함께 네이버 카페에 알려주세요.
이 기능, CATS Pro에는 버튼으로 있습니다
RVC / CATS_RVCCATS Pro의 수정 도구에서 곡선 방향 반전을 바로 실행합니다.CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.
함께 쓰면 좋은 CATS 명령
자주 묻는 질문
모양이나 위치도 바뀌나요?
지원되는 객체는 형상과 위치를 유지하고 내부 진행 방향만 반전합니다.
호가 건너뜀으로 표시됩니다.
AutoCAD 버전이나 객체 상태에 따라 REVERSE가 호 방향을 변경하지 못할 수 있으며, 이 경우 원본을 보존하고 건너뜁니다.