Lv.0 등록일: 2016-03-122016-03-12T19:15:44+09:00 2016-03-12T19:15:44+09:00카테고리: AutoCAD & CADian 특정 색상만 선택하는 리습 부탁드립니다. 같은 레이어로 색만바꿔서 작업하다 가끔 수정해야되는 부분이 생기면 하나하나 지워야되서 시간이 오래걸리던데 혹시 특정 색상만 선택하는 리습 가지고 계신 분 계시나요?? 공유 Facebook 관련 있는 질문들 insert 삽입할때 레이어도 같이 변경가능할까요? 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 6 답변 작성 순 최신 순 공감 순 [Deleted User] 2019-08-08T11:41:58+09:00답변 등록 답변 등록 일시 2019-08-08 11:41 am 특정색을 선택하는것이 아니라 창으로 객체를 선택한이후에 선택한객체의 동일 색상을 모두 선택할수는 업나요? [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] 2016-05-19T17:21:01+09:00답변 등록 답변 등록 일시 2016-05-19 5:21 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-03-13T14:01:23+09:00답변 등록 답변 등록 일시 2016-03-13 2:01 pm 정말 감사합니다. 그런데 혹시 지우지않고 선택만 하는것도 가능 할까요?? 엔씨벤딩 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
특정색을 선택하는것이 아니라 창으로 객체를 선택한이후에 선택한객체의 동일 색상을 모두 선택할수는 업나요?
묶어져 있는 선은 안 지워지던데요 이것도 수정 가능한가요?
error: no function definition: VLAX-ENAME->VLA-OBJECTclayer
안 지워지면서 이런 메세지 나오네요
마우스 우클릭 신속선택에 원하는 레이어나 선 색상 도면층 블럭 머이것저것 전부 선택할수있는 기능있습니다~간혹가다 한번 써보세요
마지막에 (command “erase” sss “” ) 부분을 (command “select” sss “” ) 으로 바꾸시기만 하면 됩니다.
이동하시려고 하실때는 “move” “p” “”
복사하시려고 하실때는 “copy” “p” “” 이런식으로 사용하세요.
정말 감사합니다. 그런데 혹시 지우지않고 선택만 하는것도 가능 할까요??
제가 만들어서 쓰고 있는 리습입니다.
써보세요. 님이 필요한거에 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