캐드 분류
블록 내에 특정 레이어 색상 변경 리습 질문
컨텐츠 정보
- 245 조회
- 2 댓글
- 0 추천
- 0 비추천
- 목록
본문
현재 올려드린 리습은 블록을 다중 선택해서 블록 내에 라인들의 색상을 일괄 변경하는 것인데 블록 내에 일괄 다 변경하는 것이 아닌 특정 레이어만 선택해서 색상 변경하는 것으로 변경할 수 있을까요 ?ㅠ 고수님들 부탁드려요.
(defun c:bcol ( / oDocument BlockNameList )
(vl-load-com)
(setq oDocument (vla-get-activedocument (vlax-get-acad-object)))
(setq BlockNameList nil)
(and
(setq Sset (ssget (list (cons 0 "INSERT"))))
(setq col (strcase (getstring "n>> 색상 번호를 입력하세요 ? : ")))
(foreach item (mapcar '(lambda(x) (cdr (assoc 2 (entget x)))) (vl-remove-if 'listp (mapcar 'cadr (ssnamex Sset))))
(if (not (member item BlockNameList)) (setq BlockNameList (cons item BlockNameList)))
)
) ;and
(foreach BlockName BlockNameList (change:colorinblock oDocument BlockName col)) ;col 색
(vla-regen oDocument acallviewports)
(princ)
) ; defun
;==============================================
(defun change:colorinblock ( Document BlockName Color )
(vl-load-com)
(vlax-for item (vla-item (vla-get-blocks Document) BlockName)
(vla-put-color item Color)
(if (eq (vla-get-objectname item) "AcDbBlockReference")
(change:colorinblock Document (vla-get-name item) Color)
) ;if
)
) ; defun
관련자료
댓글 2