비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 331
다음
진행 중
Lv.0
등록일: 2022-07-052022-07-05T10:31:42+09:00 2022-07-05T10:31:42+09:00카테고리: Revit & ArchiCAD

리습 질문드립니다.

아래와 같이 특정 색상을 선택하여 삭제하는 리습을 구했습니다.

삭제 말고 선택한 상태를 유지하고 싶은데.. 선택 후 레이어 변경 등 하려고요..
어떻게 바꾸면 될까요? command “erase” 부분을 “select” 로 바꾸긴 했는데
선택된 상태를 유지하지는 않습니다..ㅠㅠ

(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

  • 0
  • 2 2 답변
  • 54 조회
공유
  • Facebook

    관련 있는 질문들

    • Revit 곡선벽 덩쿨 표현
    • 오 레빗이여~
    • 캐드 교육용 스탬프 관련입니다.
    • 레빗 템플릿 파일 및 한글패치 관련 문의

    답변을 남겨주세요
    응답 취소

    답변을 등록하기 위해서는 로그인이 필요합니다.

    비밀번호를 잊으셨나요?

    아직 계정이 없으신가요? 회원가입 하기

    2 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2022-07-05T10:32:39+09:00답변 등록 답변 등록 일시 2022-07-05 10:32 am

      (defun c:TTT(/ entdata entcolour colour layer layerlist layercolourlist layernamefilter strlayer strlayerlen filter)
      (setq entdata (entget (car (entsel “nPls select object color.”))))
      (if (setq entcolour (cdr (assoc 62 entdata)))
      (setq colour entcolour)
      (setq colour (cdr (assoc 62 (tblsearch “layer” (cdr (assoc 8 entdata))))))
      )
      (setq layer (tblnext “layer” T))
      (while layer
      (setq layerlist (append layerlist (list layer)))
      (setq layer (tblnext “layer”))
      )
      (while layerlist
      (if
      (/= colour (cdr (assoc 62 (nth 0 layerlist))))
      (setq layerlist (cdr layerlist))
      (progn
      (setq layercolourlist (append (list (cdr (assoc 2 (nth 0 layerlist)))) layercolourlist))
      (setq layerlist (cdr layerlist))
      )
      )
      )
      (if (= layercolourlist nil)
      (setq filter (list (cons 62 colour) (cons -4 “”)))
      (progn
      (setq strlayer “”)
      (while (car layercolourlist)
      (setq strlayer (strcat strlayer (car layercolourlist) “,”))
      (setq layercolourlist (cdr layercolourlist))
      )
      (setq strlayerlen (strlen strlayer))
      (setq layernamefilter (substr strlayer 1 (1- strlayerlen)))
      (setq filter (list (cons -4 “<or") (cons -4 "”) (cons 62 colour) (cons -4 “or>”) (cons -4 “”)))
      )
      )
      (prompt “nPls select object.”)
      (sssetfirst nil (ssget filter))
      (princ)
      )

      색상 선택 리습입니다..
      선택유지됩니다

      • 0
      • 댓글 달기
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2022-07-05T10:32:03+09:00답변 등록 답변 등록 일시 2022-07-05 10:32 am

      (command “erase” sss “”)
      ==> (sssetfirst nil sss)
      함수를 사용하면 될 것 같긴한데….

      • 0
      • 댓글 달기
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    호떡ㅋ
    호떡ㅋLv.0
    등록일: 2021-01-282021-01-28T11:48:20+09:00 2021-01-28T11:48:20+09:00카테고리: Revit & ArchiCAD

    리습 질문드립니다.

    아래와 같이 특정 색상을 선택하여 삭제하는 리습을 구했습니다.

    삭제 말고 선택한 상태를 유지하고 싶은데.. 선택 후 레이어 변경 등 하려고요..
    어떻게 바꾸면 될까요? command “erase” 부분을 “select” 로 바꾸긴 했는데
    선택된 상태를 유지하지는 않습니다..ㅠㅠ

    (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

    • 0
    • 2 2 답변
    • 0 조회
    공유
    • Facebook

      관련 있는 질문들

      • Revit 곡선벽 덩쿨 표현
      • 오 레빗이여~
      • 캐드 교육용 스탬프 관련입니다.
      • 레빗 템플릿 파일 및 한글패치 관련 문의

      2 답변

      • 작성 순
      • 최신 순
      • 공감 순
      1. 김보리 Lv.11
        2021-11-16T20:02:19+09:00답변 등록 답변 등록 일시 2021-11-16 8:02 pm

        날짜가 오래 되 아직도 구하시는지는 모르겠지만…

        (defun c:TTT(/ entdata entcolour colour layer layerlist layercolourlist layernamefilter strlayer strlayerlen filter)
         (setq entdata (entget (car (entsel “nPls select object color.”))))
         (if (setq entcolour (cdr (assoc 62 entdata)))
          (setq colour entcolour)
          (setq colour (cdr (assoc 62 (tblsearch “layer” (cdr (assoc 8 entdata))))))
         )
         (setq layer (tblnext “layer” T))
         (while layer
          (setq layerlist (append layerlist (list layer)))
          (setq layer (tblnext “layer”))
         )
         (while layerlist
          (if
           (/= colour (cdr (assoc 62 (nth 0 layerlist))))
           (setq layerlist (cdr layerlist))
           (progn
            (setq layercolourlist (append (list (cdr (assoc 2 (nth 0 layerlist)))) layercolourlist))
            (setq layerlist (cdr layerlist))
           )
          )
         )
         (if (= layercolourlist nil)
          (setq filter (list (cons 62 colour) (cons -4 “<not”) (cons 0 “insert”) (cons -4 “not>”)))
          (progn
           (setq strlayer “”)
           (while (car layercolourlist)
            (setq strlayer (strcat strlayer (car layercolourlist) “,”))
            (setq layercolourlist (cdr layercolourlist))
           )
           (setq strlayerlen (strlen strlayer))
           (setq layernamefilter (substr strlayer 1 (1- strlayerlen)))
           (setq filter (list (cons -4 “<or”) (cons -4 “<and”) (cons 8 layernamefilter) (cons 62 256) (cons -4 “and>”) (cons 62 colour) (cons -4 “or>”) (cons -4 “<not”) (cons 0 “insert”) (cons -4 “not>”)))
          )
         )
         (prompt “nPls select object.”)
         (sssetfirst nil (ssget filter))
         (princ)
        )
        색상 선택 리습입니다..
        선택유지됩니다
        • 0
        • 공유
          공유
          • 공유 Facebook
          • 공유 Twitter
      2. 거친안개2 Lv.0
        2021-03-15T09:37:27+09:00답변 등록 답변 등록 일시 2021-03-15 9:37 am

        (command “erase” sss “”)
         ==> (sssetfirst nil sss)
        함수를 사용하면 될 것 같긴한데….

        • 0
        • 공유
          공유
          • 공유 Facebook
          • 공유 Twitter

      Sidebar

      질문하기
      공지사항

      • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

      Adv 234x60

      aalan

      Adv 234x60

      aalan

      Adv 120x600

      aalan

      Explore

      • 홈
      • 카테고리
        • AutoCAD & CADian
        • Inventor & Solidworks
        • Revit & ArchiCAD
        • 자유질문
        • 기타
      • 투표
      • 커뮤니티 그룹
      aalan

      Footer

      Support

      • 회사 및 서비스 소개
      • 자주 묻는 질문
      • 문의하기

      Guide

      • 제휴/협업 안내
      • 광고 서비스 안내

      Policy

      • 서비스 이용약관
      • 개인정보 처리방침
      • 광고성 정보 수신 동의

      Contents

      • 고밍스토리
      • 리습 시리즈

      정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
      주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
      Copyright. 2012-2024 GOCAD All rights reserved

      링크 삽입/편집

      대상 URL을 입력하세요

      또는 기존의 콘텐츠에 링크

        검색어가 지정되지 않았습니다. 최근 항목 표시 검색하거나 위와 아래 화살키를 이용하여 항목을 선택하세요.