선택 레이어 외 전부 잠금 리습이 안됩니다 ㅜㅜㅜ
컨텐츠 정보
- 164 조회
- 2 댓글
- 0 추천
- 0 비추천
- 목록
본문
레이어를 선택한 부분만 빼고 점부 잠그거나 전부 잠금을 해제하고 싶습니다.
인터넷에서 무료로 받은
리습에서 필요한 부분만 쓰려고 가져왔는데요.
위 리습에서 43번은 잘 되는데, 45번이 되지 않습니다.
명령어 창에 이런식으로 애러가 뜨네요.
혹시 이유를 알 수 있을까요?
리습은 다음과 같습니다.
(defun c:45(/ cla ss k la-lis ed la k)
(princ “n ::::: Layer Except Lock :::::”)
(setq cla (getvar “clayer”))
(setq ss (ssget))
(setq k 0 la-lis ‘())
(setvar “cmdecho” 0)
(repeat (sslength ss)
(setq ed (entget (ssname ss k))
la (cdr (assoc 8 ed)))
(setq la-lis (append la-lis (list la)))
(setq k (1+ k))
) ;repeat
(setq la-lis (str_memb la-lis))
(command “undo” “be”)
(command “layer” “lo” “*” “”)
(foreach x la-lis (progn
(command “layer” “u” x “”)
)
(princ “n[“)(princ x)(princ “] layer is unlock.”)
) ;foreach
(command “undo” “e”)
(princ “n ::::: Layer Except Lock completion :::::”)
(princ)
) ;defun
제가 쓰는 컴은 윈11, 오토캐드 25입니다.
autocad
관련자료
주왕님의 댓글
(defun remove-duplicates (lst)
(defun remove-item (item lst)
(cond ((null lst) nil)
((equal item (car lst)) (remove-item item (cdr lst)))
(t (cons (car lst) (remove-item item (cdr lst)))))
)
(if lst
(cons (car lst) (remove-duplicates (remove-item (car lst) (cdr lst))))
nil
)
)
(defun c:test (/ cla ss k la-lis ed la)
(princ “n ::::: Layer Except Lock :::::”)
(setq cla (getvar “clayer”))
(setq ss (ssget))
(setq k 0 la-lis ‘())
(setvar “cmdecho” 0)
(repeat (sslength ss)
(setq ed (entget (ssname ss k))
la (cdr (assoc 8 ed)))
(setq la-lis (append la-lis (list la)))
(setq k (1+ k))
) ;repeat
(setq la-lis (remove-duplicates la-lis))
(command “undo” “be”)
(command “layer” “lo” “*” “”)
(foreach x la-lis
(progn
(command “layer” “u” x “”)
(princ (strcat “n[” x “] layer is unlocked.”))
)
) ;foreach
(command “undo” “e”)
(princ “n ::::: Layer Except Lock completion :::::”)
(princ)
) ;defunfun
여기 구문 올리니깐 기호가 빠지네요…매일주소 남겨주세요.//