비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 113483
다음
진행 중
dducck
dducckLv.0
등록일: 2021-12-062021-12-06T16:53:52+09:00 2021-12-06T16:53:52+09:00카테고리: AutoCAD & CADian

레이어 색상으로 제어 리습

안녕하세요. 질문 드리려고 글 올립니다.

예전 회사에서 CADPOWER를 쓸 때에는 레이어를 색상으로 제어하는 명령어가 있어
요긴하게 사용하였습니다.
(ex. 노란색 잡아서 끄면 레이어이름에 상관없이 노란색 레이어만 전부 꺼짐)
(ex. 노란색 잡아서 켜면 레이어이름에 상관없이 노란색 레이어만 전부 켜짐, 나머지 색 꺼짐)
(ex. 꺼진 색상 전부 켜짐)
현재 CAD 2021 쓰고 있는데 위와 같은 명령어나 리습이 있을까요?
위와 같은 색상 제어를 레이어 정리할 때 사용하곤 합니다.
(ex. 노란색 레이어에 COL, A-COL, AR-COL 등 여기저기서 카피해서 쓰다보면 레이어가 정리 안되었을 때 색상제어로 잡아서 한번에 레이어 변경 가능합니다.)
  • 0
  • 8 8 답변
  • 375 조회
공유
  • Facebook

    관련 있는 질문들

    • 선배님들 덕트 엘보 작성 리습좀 봐주세요
    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    8 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 우남써니타리 Lv.3
      2021-12-06T20:27:24+09:00답변 등록 답변 등록 일시 2021-12-06 8:27 pm

      이런 건가요?
      ;색상으로 레이어 제어하기
      ;도면에 존재하는 모든 레이어중에서, 선택한 객체의 레이어색상과 같은색상의 레이어만 보이게 합니다.
      (defun c:QQ (/ os ssen ent obj col coloridx acadcdoc acadlyrs ssno)  
      (defun *error* (msg) (setvar “osmode” os) (princ) )
       (setq os (getvar “osmode”))
       (vl-load-com) 
       (setq ssen (car (entsel “Select Color : “)))
       (while ( = ssen NIL) (setq ssen (car (entsel “nnil. Reselect :”))) ) 
       (setq ent (entget ssen) )
       (setq obj (vlax-ename->vla-object ssen))
       (setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER))))
       (setq layobj (vla-get-TrueColor layobj))
       (setq coloridx (vla-get-ColorIndex layobj))
       (setq acadcdoc (vla-get-activedocument (vlax-get-acad-object)) )
       (setq acadlyrs (vla-get-layers acadcdoc))
        (setq ssno 0)
        (vlax-for lyr acadlyrs
          (if  (= (vlax-get-property lyr ‘color) coloridx) (progn
        (setq ssno (1+ ssno))
        (if (= ssno 1)  (command “layer” “off” “*” “y” “”) )
        (setq lname (vlax-get-property lyr ‘name))
        (command “layer” “on” lname “”)
        ;(alert (vlax-get-property lyr ‘name))
      ));pif
        );for  
      );defun end
      ;모든 레이어를 보이게 합니다.
      (defun c:AA () 
         (command “layer” “on” “*” “”)
      )
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. dducck Lv.0
      2021-12-07T10:24:55+09:00답변 등록 답변 등록 일시 2021-12-07 10:24 am

      네 맞습니다. 다만 올려주신 리습은 레이어의 색상(by layer)으로만 제어가 됩니다.

      제가 말씀 드린 것은 by layer가 아닌 cad상에 바로 보이는 색으로 제어하는 것입니다.
      가능할까요???
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 우남써니타리 Lv.3
      2021-12-07T10:37:33+09:00답변 등록 답변 등록 일시 2021-12-07 10:37 am

      이런 식인가요??


      ;색상으로 레이어 제어하기
      ;도면에 존재하는 모든 레이어중에서, 선택한 객체의 레이어색상과 같은색상의 레이어만 보이게 합니다.
      (defun c:ccQQ (/ os ssen ent obj layobj col coloridx acadcdoc acadlyrs ssno)  
      (defun *error* (msg) (setvar “osmode” os) (princ) )
       (setq os (getvar “osmode”))
       (vl-load-com) 
       (setq ssen (car (entsel “Select Color : “)))
       (while ( = ssen NIL) (setq ssen (car (entsel “nnil. Reselect :”))) ) 
       (setq ent (entget ssen) )
       (setq coloridx (cdr (assoc 62 ent)) )
       (if (= nil coloridx)
         (progn
           (setq obj (vlax-ename->vla-object ssen))
           (setq layobj (vlax-ename->vla-object (tblobjname “LAYER” (vlax-get obj ‘LAYER))))
           (setq layobj (vla-get-TrueColor layobj))
           (setq coloridx (vla-get-ColorIndex layobj))
      );p
        );if
        (setq acadcdoc (vla-get-activedocument (vlax-get-acad-object)) )
        (setq acadlyrs (vla-get-layers acadcdoc))
        (setq ssno 0)
        (vlax-for lyr acadlyrs
          (if  (= (vlax-get-property lyr ‘color) coloridx) (progn
          (setq ssno (1+ ssno))
            (if (= ssno 1)  (command “layer” “off” “*” “y” “”) )
            (setq lname (vlax-get-property lyr ‘name))
            (command “layer” “on” lname “”)
          ));pif
        );for  
      );defun end


      ;모든 레이어를 보이게 합니다.
      (defun c:ccAA () 
         (command “layer” “on” “*” “”)
      )
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. dducck Lv.0
      2021-12-07T17:01:21+09:00답변 등록 답변 등록 일시 2021-12-07 5:01 pm

      제가 설명을 잘 못드리는 것 같습니다 ㅠ.ㅠ

      예를 들어 COL 이라는 레이어가 있습니다.
      이 레이어의 by layer 색상은 노란색입니다.
      누군가 억지로 색을 파란색, 빨강색 등으로 변경하였습니다.
      이때 LISP을 사용하여 빨강색을 찍으면 레이어 명은 전부 COL 이지만 빨강색만 남고 파란색 노란색 등 다른 색은 전부 꺼지는 것을 말씀드린 것입니다.
      가능할까요?ㅜ.ㅜ
      계속적으로 답변해주시고 해결해주시려고 하셔서 감사합니다.^^
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. 우남써니타리 Lv.3
      2021-12-07T17:26:50+09:00답변 등록 답변 등록 일시 2021-12-07 5:26 pm

      그러면,

      빨강색을 찍으면
      COL레이어에 있는 빨강색은 보이고, 똑같이 COL레이어에 있는 파랑색은 꺼지게 된다는 말인가요?
      만약 그렇다면 COL레이어에 있는 객체들 중에서 빨강색이 아닌 객체들은
      리습에서 레이어를 강제로 변경하는 방식인가요?
      레이어를 변경해야 한다면 임의의 새로운 레이어를 만들고, 그 레이어로 빨강색이 아닌 객체를 옮긴 다음에 다시 임의로 만들어진 레이어를 꺼지게 해야 하는 건가요?
      제가 질문을 또 이해하지 못한 거 같습니다.
      레이어를 껏다켯다 하지 않고,
      동일한 레이어에 있는 객체들 중에서 빨강색만 켜지게 하는 것이 캐드에서 가능한가요?
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. dducck Lv.0
      2021-12-07T19:44:21+09:00답변 등록 답변 등록 일시 2021-12-07 7:44 pm

      네 말씀하신 것처럼 같은 COL 레이어에서도 색에 따라 꺼지고 켜집니다.

      제가 캐드파워사용시 명령어 풀 네임이
      색상 선택 끄기 – colorselectoff
      색상 선택 반전 끄기 – colorexceptoff
      색상 선택 켜기 – colorselecton
      와 같은 명령어가 있었습니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. 우남써니타리 Lv.3
      2021-12-07T20:09:22+09:00답변 등록 답변 등록 일시 2021-12-07 8:09 pm

      같은 레이어안에 있는 특정색상만 보이게 하는 것이 가능한 거였군요.

      캐드파워는 안 써봐서 모르겠는데, 제 능력으로는 그렇게 못 만들 거 같아요.
      저는 여기까지만 하겠습니다.
      대신에 선택한 색상과 같은 색상의 객체만 선택할 수 있는 리습을 하나 첨부할게요.
      지금 하고 계신 작업이 같은 색상의 객체끼리 같은 레이어에 모여있을 원하는 것 같으니까
      이 리습 쓰셔도 크게 상관없으실거 같아요….
      ;선택한 기준선의 색상과 같은 색상인 객체만 선택하기
      ;이 리습은 Trusted_DWG님의 블로그에서 가져왔습니다. 
      ;Trusted님 감사합니다.
      ;https://blog.naver.com/trusted_dwg
      (defun c:css (/ entdata entcolour colour layer layerlist layercolourlist layernamefilter strlayer strlayerlen filter)
      (setq entdata (entget (car (entsel “Color Select – Pick Target-Entity”))))
      (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>”)))
      )
      )
          (princ “nSelected Color : “)
          (princ (itoa colour))
      (prompt “nSelect Range : “)
      (sssetfirst nil (ssget filter))
      (princ)
      )
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    9. dducck Lv.0
      2021-12-07T20:27:31+09:00답변 등록 답변 등록 일시 2021-12-07 8:27 pm

      정말 감사합니다. 끝까지 답변 달아주셔서 감사합니다.

      저도 저 나름대로 연구해 보도록 하겠습니다.
      감사합니다.
      • 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