프로그램
캐드 분류

선택 레이어 외 전부 잠금 리습이 안됩니다 ㅜㅜㅜ

컨텐츠 정보

  • 164 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

레이어를 선택한 부분만 빼고 점부 잠그거나 전부 잠금을 해제하고 싶습니다.

인터넷에서 무료로 받은

리습에서 필요한 부분만 쓰려고 가져왔는데요.

위 리습에서 43번은 잘 되는데, 45번이 되지 않습니다.

17455587625789.png

명령어 창에 이런식으로 애러가 뜨네요.

혹시 이유를 알 수 있을까요?

 

 

리습은 다음과 같습니다.
(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

관련자료

댓글 2 / 1 페이지

주왕님의 댓글

(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

여기 구문 올리니깐 기호가 빠지네요…매일주소 남겨주세요.//

전체 7,670 / 1 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0