Lv.0 등록일: 2016-03-122016-03-12T19:15:44+09:00 2016-03-12T19:15:44+09:00카테고리: AutoCAD & CADian 특정 색상만 선택하는 리습 부탁드립니다. 같은 레이어로 색만바꿔서 작업하다 가끔 수정해야되는 부분이 생기면 하나하나 지워야되서 시간이 오래걸리던데 혹시 특정 색상만 선택하는 리습 가지고 계신 분 계시나요?? 공유 Facebook 관련 있는 질문들 insert 삽입할때 레이어도 같이 변경가능할까요? 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 6 답변 작성 순 최신 순 공감 순 엔씨벤딩 Lv.0 2016-03-12T19:33:01+09:00답변 등록 답변 등록 일시 2016-03-12 7:33 pm 제가 만들어서 쓰고 있는 리습입니다.써보세요. 님이 필요한거에 100프로 부합하는듯…. (defun c:ec(/ ss OS en ent obj col color layobj sss smemeber color2 ssno num sslen sss ) (defun *error* (msg)(princ “error: “)(princ msg) (setvar “osmode” os) (command “clayer” “0”) (princ) )(setq os (getvar “osmode”)) ;(vl-load-com) (sssetfirst) (setq sss nil sss (ssadd)) (setq en (car (entsel “컬러필터링 삭제 – 기준컬러 객체를 선택”))) (WHILE ( = EN NIL) (setq en (car (entsel “n 컬러필터링 삭제 – 기준컬러 객체를 선택”))) ) ;WHILE END (setq ent (entget en) color (cdr (assoc 62 ent)) layer (cdr (assoc 8 ent))) (if (= nil color) (progn ;;;;;;; bylayer 인 경우의 처리 (setq obj(vlax-ename->vla-object en)) (setq col (vla-get-TrueColor obj)) (setq color(vlax-get col ‘Colorindex)) (if (= color 256) (progn (setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER)))) (setq layobj (vla-get-TrueColor layobj)) (setq color (vla-get-ColorIndex layobj)) (PRINC “n ColorIndex = “) (PRINC COLOR) ) );if end );progn end ;;————————- (progn ;;;;;;; bylayer가 아닌경우의 처리 (PRINC “n ColorIndex = “) (PRINC COLOR));progn end ); if end ;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(prompt “n객체범위를 선택”) (while (/= (setq ss (ssget)) nil)(progn (if ( = ss nil) (exit) ) (setq sslen (sslength ss) ssno 0 num 0) (while (/= sslen ssno) ;while bbb(progn(setq smember (ssname ss ssno))(setq ssno (+ ssno 1)) (setq color2 (cdr (assoc 62 (entget smember)))) (if (= nil color2) (progn ;;;;;;; bylayer 인 경우의 처리 (setq obj (vlax-ename->vla-object smember)) (setq col (vla-get-TrueColor obj)) (setq color2 (vlax-get col ‘Colorindex)) (if (= color2 256) (progn (setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER)))) (setq layobj (vla-get-TrueColor layobj)) (setq color2 (vla-get-ColorIndex layobj)) );progn end );if end) ;progn end) ; if end (if (= color color2) ;(command “erase” smember “” ) (ssadd smember sss) ) ; if end );progn end );while-bbb end (command “erase” sss “”) );progn end );while end ) ;defun end [Deleted User] 2016-03-13T14:01:23+09:00답변 등록 답변 등록 일시 2016-03-13 2:01 pm 정말 감사합니다. 그런데 혹시 지우지않고 선택만 하는것도 가능 할까요?? 엔씨벤딩 Lv.0 2016-03-13T19:27:07+09:00답변 등록 답변 등록 일시 2016-03-13 7:27 pm 마지막에 (command “erase” sss “” ) 부분을 (command “select” sss “” ) 으로 바꾸시기만 하면 됩니다.이동하시려고 하실때는 “move” “p” “”복사하시려고 하실때는 “copy” “p” “” 이런식으로 사용하세요. [Deleted User] 2016-05-19T17:21:01+09:00답변 등록 답변 등록 일시 2016-05-19 5:21 pm 마우스 우클릭 신속선택에 원하는 레이어나 선 색상 도면층 블럭 머이것저것 전부 선택할수있는 기능있습니다~간혹가다 한번 써보세요 [Deleted User] 2017-09-17T05:06:03+09:00답변 등록 답변 등록 일시 2017-09-17 5:06 am 묶어져 있는 선은 안 지워지던데요 이것도 수정 가능한가요?error: no function definition: VLAX-ENAME->VLA-OBJECTclayer 안 지워지면서 이런 메세지 나오네요 [Deleted User] 2019-08-08T11:41:58+09:00답변 등록 답변 등록 일시 2019-08-08 11:41 am 특정색을 선택하는것이 아니라 창으로 객체를 선택한이후에 선택한객체의 동일 색상을 모두 선택할수는 업나요?
제가 만들어서 쓰고 있는 리습입니다.
써보세요. 님이 필요한거에 100프로 부합하는듯….
(defun c:ec(/ ss OS en ent obj col color layobj sss smemeber color2 ssno num sslen sss )
(defun *error* (msg)(princ “error: “)(princ msg)
(setvar “osmode” os) (command “clayer” “0”) (princ) )
(setq os (getvar “osmode”))
;(vl-load-com)
(sssetfirst)
(setq sss nil sss (ssadd))
(setq en (car (entsel “컬러필터링 삭제 – 기준컬러 객체를 선택”)))
(WHILE ( = EN NIL)
(setq en (car (entsel “n 컬러필터링 삭제 – 기준컬러 객체를 선택”)))
) ;WHILE END
(setq ent (entget en) color (cdr (assoc 62 ent)) layer (cdr (assoc 8 ent)))
(if (= nil color)
(progn ;;;;;;; bylayer 인 경우의 처리
(setq obj(vlax-ename->vla-object en))
(setq col (vla-get-TrueColor obj))
(setq color(vlax-get col ‘Colorindex))
(if (= color 256)
(progn
(setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER))))
(setq layobj (vla-get-TrueColor layobj))
(setq color (vla-get-ColorIndex layobj))
(PRINC “n ColorIndex = “)
(PRINC COLOR)
)
);if end
);progn end
;;————————-
(progn ;;;;;;; bylayer가 아닌경우의 처리
(PRINC “n ColorIndex = “)
(PRINC COLOR)
);progn end
); if end
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(prompt “n객체범위를 선택”)
(while (/= (setq ss (ssget)) nil)
(progn
(if ( = ss nil)
(exit)
)
(setq sslen (sslength ss)
ssno 0
num 0)
(while (/= sslen ssno) ;while bbb
(progn
(setq smember (ssname ss ssno))
(setq ssno (+ ssno 1))
(setq color2 (cdr (assoc 62 (entget smember))))
(if (= nil color2)
(progn ;;;;;;; bylayer 인 경우의 처리
(setq obj (vlax-ename->vla-object smember))
(setq col (vla-get-TrueColor obj))
(setq color2 (vlax-get col ‘Colorindex))
(if (= color2 256)
(progn
(setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER))))
(setq layobj (vla-get-TrueColor layobj))
(setq color2 (vla-get-ColorIndex layobj))
);progn end
);if end
) ;progn end
) ; if end
(if (= color color2)
;(command “erase” smember “” )
(ssadd smember sss)
) ; if end
);progn end
);while-bbb end
(command “erase” sss “”)
);progn end
);while end
) ;defun end
정말 감사합니다. 그런데 혹시 지우지않고 선택만 하는것도 가능 할까요??
마지막에 (command “erase” sss “” ) 부분을 (command “select” sss “” ) 으로 바꾸시기만 하면 됩니다.
이동하시려고 하실때는 “move” “p” “”
복사하시려고 하실때는 “copy” “p” “” 이런식으로 사용하세요.
마우스 우클릭 신속선택에 원하는 레이어나 선 색상 도면층 블럭 머이것저것 전부 선택할수있는 기능있습니다~간혹가다 한번 써보세요
묶어져 있는 선은 안 지워지던데요 이것도 수정 가능한가요?
error: no function definition: VLAX-ENAME->VLA-OBJECTclayer
안 지워지면서 이런 메세지 나오네요
특정색을 선택하는것이 아니라 창으로 객체를 선택한이후에 선택한객체의 동일 색상을 모두 선택할수는 업나요?