비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 108600
다음
진행 중
Lv.0
등록일: 2017-07-042017-07-04T11:12:06+09:00 2017-07-04T11:12:06+09:00카테고리: AutoCAD & CADian

같은 이름의 블록 선택하는 리습 문의 드립니다.

안녕하세요.

열심히 독학 중인 1인입니다.
 
도면에서 같은 이름을 가지고 있는 블록들을 선택해서 그 블록들이 몇개인지 알아내는 리습입니다.

(defun c:bc(/ bc1 bc2 a b)
 (setq bc1 (car (entsel “n객체 블럭 선택 : “)))
 (setq bc2 (assoc 2 (entget bc1)))
 (sssetfirst nil (ssget “_x” (list bc2)))
 (princ (strcat “n선택한 Block 이름 : ” (cdr (assoc 2 (entget bc1)))))
 (command “select”)
(princ)
)

아직 잘 몰라서 이거저거 가져와다가 쓰고 있다가

제가 좀 만들어 보고 싶어서 문의드립니다.

1. 4번째줄 [ (sssetfirst nil (ssget “_x” (list bc2))) ]
 어떤 내용들의 함수인지 이해가 되지 않아서 설명 좀 해주실 분 계신가요?

2. 위 리습은 도면 전체에서 해당하는 블록을 잡아주는 건데 제가 선택한 객체에 대해서
 해당 블록을 선택하고 싶으면 어떻게 해야하는지요?

3. 해당 블록을 선택하여 갯수가 몇개인지 볼려고 하는데 6번째줄  (command “select”)라는
명령어를 하나 넣으니 갯수가 나오더라구요.. 혹시 다르게 표현할 수 있는 함수가 있나요?

본 기능은 신속선택으로도 가능하지만 보다 빠르고 편리하게 해볼려고 합니다.

  • 0
  • 4 4 답변
  • 358 조회
공유
  • Facebook

    관련 있는 질문들

    • 도서관 도면 구합니다. !
    • 캐드2022 레이어 그룹 분류시 레이어 드래그 오류
    • 전기도면 나사모양의 폴리선을 그릴수 있나요?
    • 캐드, zw캐드 와이프아웃 박스가 너무 많이 생겨요. 폴리선 박스가 중첩으로 많이 생겨요

    4 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2017-07-05T09:37:34+09:00답변 등록 답변 등록 일시 2017-07-05 9:37 am

      움짤에 보는것이 제가 딱 원하는 리습입니다!

      올려주신 수정본 천천히 보면서 공부하고 이해하도록 하겠습니다.

      매번 감사드립니다^^

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 수야12 Lv.21
      2017-07-04T19:12:11+09:00답변 등록 답변 등록 일시 2017-07-04 7:12 pm

      두번째 질문은  올리신 리습의 순서를 바꿔서 먼저 드래그 선택하고 나중에 클릭선택을 하시던가 이름을 직접 타이핑하시던가 하시면 되겠네요 

      (defun c:bc(/ ss ss2 bc1 bc2 e en n a2)
      (setq ss2 (ssadd)) ;빈 선택셋트 
       (setq ss(ssget (list (cons 0 “insert”)))) ;블럭만 선택시..
       (setq n 0)
       (setq bc1 (car (entsel “n객체 블럭 선택 : “)))
       (setq bc2(cdr (assoc 2 (entget bc1))))
       ;;또는 (setq bc2 (getstring “n블럭이름입력:”))
        (repeat (sslength ss)
         (setq e(ssname ss n))
         (setq en(entget e))
         (setq a2(cdr(assoc 2 en)))
         (if (= a2 bc2)(ssadd e ss2))
         (setq n(1+ n))
        )
       (sssetfirst nil ss2)  
       (princ “n선택된블럭갯수=”)(princ (sslength ss2))
      (princ)
      )
      녹화_2017_07_04_19_08_24_294.gif
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 수야12 Lv.21
      2017-07-04T16:32:42+09:00답변 등록 답변 등록 일시 2017-07-04 4:32 pm

      라고 설명서에 써있네요 ㅎㅎ;; 번역에 성의가 없어서 보면서도 도저히 뭔지는 모르겠고 보통 선택된 객체들 확인용으로 사용하네요 저는 .

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. 수야12 Lv.21
      2017-07-04T16:30:00+09:00답변 등록 답변 등록 일시 2017-07-04 4:30 pm

      선택되거나 맞물릴 객체를 설정합니다.

      (sssetfirst gripset [pickset])

      gripset 인수에 의하여 지정된 객체의 선택 세트는 맞물려지고 pickset에 의하여 지정된 객체의 선택 세트는 맞물리과 동시에 선택됩니다. 객체가 두 선택 세트에
      공통으로 포함되어 있는 경우, sssetfirst는 pickset에 의해 지정된 선택 세트만 맞물림하고 선택합니다(gripset 세트는 맞물리지 않습니다).

      올바른 선택 세트를 작성하는 것은 프로그래머의 책임입니다. 예를 들어, 배경 도면 공간 뷰포트(DXF 그룹 코드
      69)가 선택 세트에 포함되지 않도록 확인해야 합니다. 또한, 다음 코드에서처럼 선택된 객체가 현재 배치에 속하도록 해야 합니다.

      (setq ss (ssget (list (cons 410 (getvar "ctab")))))

      인수

      gripset

      맞물릴 선택 세트. gripset이 nil이고 pickset이 지정되면, sssetfirst는 pickset을 맞물리고
      선택합니다. gripset이 nil이고 pickset이 지정되지 않으면, sssetfirst는 이전에 켠 맞물림 핸들과 선택을 해제합니다.

      pickset

      선택될 선택 세트

      리턴 값

      선택 세트 또는 지정된 세트

      보기

      먼저, 정사각형을 그리고 세 개의 선택 세트를 만드십시오. 모서리 1을 그리고 이 선을 포함하도록 선택 세트를 작성하는
      것부터 시작합니다.

      명령: (entmake (list (cons 0 “line”) ‘(10
      0.0 0.0 0.0)'(11 0.0 10.0 0.0)))

      ((0 . “line”) (10 0.0 0.0 0.0) (11 0.0 10.0 0.0))

      명령: (setq gripset (ssget “_l”))

      <Selection set: a5>

      변수 gripset은 작성된 선택 세트를 가리킵니다.

      모서리 2를 그리고 이것을 gripset 선택 세트에 추가합니다.

      명령: (entmake (list (cons 0 “line”) ‘(10
      0.0 10.0 0.0)'(11 10.0 10.0 0.0)))

      ((0 . “line”) (10 0.0 10.0 0.0) (11 10.0 10.0 0.0))

      명령: (ssadd (entlast) gripset)

      <Selection set: a5>

      모서리 2만 포함하도록 다른 선택 세트를 작성합니다.

      명령: (setq 2onlyset (ssget “_l”))

      <Selection set: a8>

      모서리 3을 그리고 이것을 gripset 선택 세트에 추가합니다.

      명령: (entmake (list (cons 0 “line”) ‘(10
      10.0 10.0 0.0)'(11 10.0 0.0 0.0)))

      ((0 . “line”) (10 10.0 10.0 0.0) (11 10.0 0.0 0.0))

      명령: (ssadd (entlast) gripset)

      <Selection set: a5>

      또 다른 선택 세트를 작성하고 모서리 3을 이 선택 세트에 포함시킵니다.

      명령: (setq pickset (ssget “_l”))

      <Selection set: ab>

      변수 pickset은 새로운 선택 세트를 가리킵니다.

      모서리 4를 그리고 이것을 gripset 및 pickset 선택 세트에 추가합니다.

      명령: (entmake (list (cons 0 “line”) ‘(10
      10.0 0.0 0.0)'(11 0.0 0.0 0.0)))

      ((0 . “line”) (10 10.0 0.0 0.0) (11 0.0 0.0 0.0))

      명령: (ssadd (entlast) gripset)

      <Selection set: a5>

      명령: (ssadd (entlast) pickset)

      <Selection set: ab>

      이 시점에서, gripset은 모서리 1-4를 포함하고, pickset은 모서리 3과 4를 포함합니다. 그리고 2onlyset은 모서리 2만 포함합니다.

      gripset 선택 세트에 있는 모든 객체에 대하여 맞물림을 켭니다.

      명령: (sssetfirst gripset)

      (<Selection set: a5>)

      gripset에 있는 모든 객체에 대하여 맞물림 핸들을 해제합니다.

      명령: (sssetfirst nil)

      (nil)

      pickset에 있는 모든 객체에 맞물림 핸들을 켜고 이들을
      선택합니다.

      명령: (sssetfirst nil pickset)

      (nil <Selection set: ab>)

      2onlyset에 있는 모든 객체에 대하여 맞물림 핸들을 켜고
      pickset의 모든 객체를 선택합니다.

      명령: (sssetfirst 2onlyset pickset)

      (<Selection set: a8> <Selection set: ab>)

      각 sssetfirst 호출은 이전 sssetfirst 호출에서 맞물려지거나 선택된 선택 세트를 교체합니다. 예를 들어, 다음 명령이
      실행된 후, 2onlyset에서 맞물림이 켜지고 아무 선택 세트도 선택되지 않습니다.

      명령: (sssetfirst 2onlyset

      (<Selection set: a8>)

      주: AutoCAD가 명령을 실행하고 있는 도중에 sssetfirst를 호출하지 마십시오. 

      • 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