(defun c:LAYSWAP ()
(setq ss1 (ssget “Select base objects (first set): “)) ; 첫 번째 객체 그룹 선택
(if (not ss1)
(progn (princ “nNo objects selected for the first set.”)
(princ) ; 함수 종료
)
)
(setq ss2 (ssget “Select target objects (second set): “)) ; 두 번째 객체 그룹 선택
(if (not ss2)
(progn (princ “nNo objects selected for the second set.”)
(princ)
)
)
;; 두 그룹 객체 개수 확인 (개수가 같아야 함)
(setq len1 (sslength ss1))
(setq len2 (sslength ss2))
(if (/= len1 len2)
(progn
(princ “nError: The number of objects in both selections must be the same.”)
(princ)
)
)
;; 첫 번째 그룹의 레이어 목록 저장
(setq layerList ‘())
(setq i 0)
(while (< i len1)
(setq obj (vlax-ename->vla-object (ssname ss1 i)))
(setq layerName (vla-get-Layer obj))
(setq layerList (append layerList (list layerName)))
;; 만약 해당 레이어가 존재하지 않는다면, (command-s)를 통해 생성
(if (not (tblsearch “layer” layerName))
(command-s “_.-LAYER” “M” layerName “C” “Yellow” “” “”)
)
(setq i (1+ i))
)
;; 두 번째 그룹의 객체 레이어 변경
(setq i 0)
(while (< i len2)
(setq obj (vlax-ename->vla-object (ssname ss2 i)))
(vla-put-Layer obj (nth i layerList))
(setq i (1+ i))
)
; (princ “n객체 레이어 변경 완료!”)
(princ)
)
메일주소 수정본 보내드릴께요.
inteza79@ensplant.com 입니다. 정말정말 감사합니다.!!