비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 112554
다음
진행 중
바라떼
바라떼Lv.0
등록일: 2020-09-072020-09-07T15:58:40+09:00 2020-09-07T15:58:40+09:00카테고리: AutoCAD & CADian

단일 선택 리습을 다중 선택 리습으로 바꾸고 싶습니다.

객체를 다중 선택(ssget)하면 해당되는 객체와 같은 “레이어”인 객체를 모두 선택하는 리습과

같은 “블럭 이름”인 객체를 모두 선택하는 리습을 각각 만들고자합니다.
———- 같은 “블럭 이름” 선택 리습 ———-
(defun c:seb ( / e blk ss blkl)
 (setq blkl “”  ss (ssadd))
 (while (setq e (entsel “nSelect a block name to select <exit>: “))
  (setq blkl (strcat blkl “,” (vla-get-Effectivename (vlax-ename->vla-object (car e)))))
  (princ (substr blkl 2))
 );while
 (setq blkl (substr blkl 2))
 (if (> blkl “”) (setq ss (ssget “_X” (list (cons 2 blkl)(cons 0 “INSERT”)))))
 (if (zerop (getvar “CMDACTIVE”))
  (progn (sssetfirst ss ss)(princ “Use ‘P’ for this selection set: “)(princ))
   ss
 )
)
————————————————–
entsel로 객체를 선택하면 해당 객체와 같은 “블럭 이름”을 가진 객체는 모두 선택되는 리습입니다.
여러 객체 선택은 가능하지만 드래그가 아닌 하나씩 선택해야해서 불편함이 있습니다.
———- 같은 “레이어 이름” 선택 리습 ———-
(defun c:sss ( / ss sss L tn ent lay)
  (setq ss (ssget “:L”))
  (while (null ss)
    (setq ss (ssget “:L”))
  )
  (setq L (sslength ss) tn 0)
  (while (> L tn)
    (setq lay (assoc 8 (entget (ssname ss tn))))
    (sssetfirst nil (ssget “_X” (list lay)))
    (setq tn (+ tn 1))
  )
  (princ)
)
————————————————–
기존 리습에서 ssget으로 수정한 리습입니다.
객체를 선택하면 해당 객체와 같은 “레이어 이름”을 가진 객체는 모두 선택됩니다.
ssget으로 변환하고, sssetfirst로 선택하는 것까지는 잘 되는데 문제는 여러 레이어 선택이 안됩니다.
각각 A레이어, B레이어의 객체를 모두 선택하게되면 A 또는 B 레이어의 객체만 선택됩니다.
테스트해보니 마지막 선택된 객체의 세트만 선택되는 듯한데 이걸 해결하지 못하고있습니다.
ssadd를 활용하면 될 것도 같은데 사용법을 몰라 헤매고 있습니다.
해결 방법을 아시는 분 계시면 알려주시면 감사하겠습니다.
  • 0
  • 3 3 답변
  • 21 조회
공유
  • Facebook

    관련 있는 질문들

    • 오토캐드 마지막 화면으로 실행 안됨
    • 오토캐드 마지막 화면으로 실행 안됨
    • 도서관 도면 구합니다. !
    • 캐드2022 레이어 그룹 분류시 레이어 드래그 오류

    3 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 핷짜뇽 Lv.0
      2021-01-26T08:58:48+09:00답변 등록 답변 등록 일시 2021-01-26 8:58 am

      덕분에 업무효율이 올라갔습니다 감사합니다 레드망고님!!

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 바라떼 Lv.0
      2020-09-23T14:52:17+09:00답변 등록 답변 등록 일시 2020-09-23 2:52 pm

      두 리습 모두 작동 잘 됩니다.

      감사합니다. 정말 감사합니다!
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2020-09-21T18:18:47+09:00답변 등록 답변 등록 일시 2020-09-21 6:18 pm
      (defun LM:Unique ( l / x r )
          (while l
              (setq x (car l)
                    l (vl-remove x (cdr l))
                    r (cons x r)
              )
          )
          (reverse r)
      )
      (defun c:test () 
      (setq OldVarList (list “OSMODE” “CMDECHO” “cmddia” “filedia”))
      (setq OldVarValue (mapcar ‘getvar OldVarList))
      (mapcar ‘setvar OldVarList'(0 0 0 0))
      (setq sel (ssget (list (cons 0 “Insert”))))
      (if sel
      (progn
      (setq k 0 nm_list ‘())
      (repeat (sslength sel)
      (setq bl_nm (cdr (assoc 2 (entget (ssname sel k)))))
      (setq nm_list (append nm_list (list bl_nm)))
      (setq k (1+ k))
      )
      (setq nm_list (LM:Unique nm_list))
      (setq sel_add (ssadd))
      (while nm_list
      (setq sel_bl (ssget “x” (list (cons 0 “Insert”)(cons 2 (car nm_list)))))
      (setq j 0)
      (repeat (sslength sel_bl)
      (setq ss (ssname sel_bl j))
      (ssadd ss sel_add)
      (setq j (1+ j))
      )
      (setq nm_list (cdr nm_list))
      )
      (vl-cmdf “pselect” sel_add “”)
      )
      )
      (setq *error* oer seterr nil)
      (mapcar ‘setvar OldVarList OldVarValue)
      (princ) 
      )
      (defun c:test2 () 
      (setq OldVarList (list “OSMODE” “CMDECHO” “cmddia” “filedia”))
      (setq OldVarValue (mapcar ‘getvar OldVarList))
      (mapcar ‘setvar OldVarList'(0 0 0 0))
      (setq sel (ssget))
      (if sel
      (progn
      (setq k 0 nm_list ‘())
      (repeat (sslength sel)
      (setq bl_nm (cdr (assoc 8 (entget (ssname sel k)))))
      (setq nm_list (append nm_list (list bl_nm)))
      (setq k (1+ k))
      )
      (setq nm_list (LM:Unique nm_list))
      (setq sel_add (ssadd))
      (while nm_list
      (setq sel_bl (ssget “x” (list (cons 8 (car nm_list)))))
      (setq j 0)
      (repeat (sslength sel_bl)
      (setq ss (ssname sel_bl j))
      (ssadd ss sel_add)
      (setq j (1+ j))
      )
      (setq nm_list (cdr nm_list))
      )
      (vl-cmdf “pselect” sel_add “”)
      )
      )
      (setq *error* oer seterr nil)
      (mapcar ‘setvar OldVarList OldVarValue)
      (princ) 
      )
      • 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