비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 104659
다음
진행 중
Lv.0
등록일: 2015-07-202015-07-20T16:27:32+09:00 2015-07-20T16:27:32+09:00카테고리: AutoCAD & CADian

외형 치수 뽑는 리습이 문제가 있습니다…

http://inventor.gocad.co.kr/2892286

글에서 상큼님에게 얻은 리습을 잘 애용중입니다.

그런데 수정이 불가피하다보니
텍스트나 치수선까지 선택하면 그곳까지 외곽으로 판단해서 치수를 가져오는 애로사항이 있더군요..ㅠ





이것을 얻기 전까지 사용하던건 아래와 같습니다.

(defun c:SDD( / se en ent pt maxx minx maxy miny minxp maxxp minyp maxyp)
 (if (setq sel (entsel “n폴리선 선택:”))
  (progn
   (setq en (car sel) ent (entget en))
   (foreach e ent
    (if (= (car e) 10)
     (progn
      (setq pt (trans (cdr e) 0 1) x (car pt) y (cadr pt))
      (if (or (null minx) (< x minx))
       (setq minx x minxp pt)
      )
      (if (or (null miny) (< y miny))
       (setq miny y minyp pt)
      )
      (if (or (null maxx) (> x maxx))
       (setq maxx x maxxp pt)
      )
      (if (or (null maxy) (> y maxy))
       (setq maxy y maxyp pt)
      )     
     )
    )
   )
   (
    (lambda (vs)
    ;최하단 : minyp, 최상단 : maxyp, 제일 좌측 : minxp, 제일 우측 maxxp
     (foreach p (list minxp maxxp minyp maxyp)
      (setq p (trans p 1 0))
      (grvecs
       ‘(6 (1 -1) (-1 1) (-1 -1) (1 1))
       (list
        (list vs 0.0 0.0 (car p))
        (list 0.0 vs 0.0 (cadr p))
        (list 0.0 0.0 vs 0.0)
        (list 0.0 0.0 1.0 0.0)
       )
      )
     )
    )
    (* (/ (getvar “VIEWSIZE”) (cadr (getvar “SCREENSIZE”))) 10)
   )  
  )
 )
 (setq pt1 (polar minxp (angtof “180”) 12))
 (setq pt2 (polar maxyp (angtof “90”) 12))
 (command “dim” “ver” maxyp minyp pt1 “” “hor” minxp maxxp pt2 “” “exit”)
 (princ)
)




단점은 반원같은게 들어갈경우

최외곽에 있는 ‘점’ 을 가져오니… 원의 외곽을 무시하게 되더라구요…..






상큼님 소스를 수정할수 있다면
아래문의한 것 + 제외필터를 걸어보려했었는데 말이죠..ㅠ

  • 0
  • 8 8 답변
  • 72 조회
공유
  • Facebook

    관련 있는 질문들

    • 캐드에서 테이블을 사용하여 고정 영역 객체 수량을 자동 계산하듯, 고정영역 숫자 문자를 합산할수 있을까요?
    • 응용프로그램 오류 메시지
    • 아무 명령어 없이 마우스만 클릭했는데 저렇게 잡혀 버립니다..
    • mdt 옵션 설정

    8 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2015-07-22T14:46:18+09:00답변 등록 답변 등록 일시 2015-07-22 2:46 pm

      완성!!!
      도움주신분들 감사드립니다…

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2015-07-22T08:30:41+09:00답변 등록 답변 등록 일시 2015-07-22 8:30 am

      팁이되는 의견들 정말감사드립니다.

      일단 위쪽의 x 값들과 y값들을 서로 교환하는 이유는
      max 값 포인트와 min 값 포인트가 서로
      대각선 방향에 있는 사각형을 이루게 되는데

      제가 얻고자하는 사각형의 포인트가
      상단쪽의 최우측, 최좌측
      하단쪽의 최좌측

      을 얻으려고 교환방법도 같이 물어본것이었습니다. ㅎ

      xcsh 님이 알려주신방법으로 순회해서 상단최우측, 하단최좌측을 뽑고
      뭐하남님이 알려주신방법으로 3포인트를 만들어내고
      치수를 꺼내면 될것 같네요.
      두분모두 감사드립니다.!

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. xcsh Lv.0
      2015-07-22T00:48:41+09:00답변 등록 답변 등록 일시 2015-07-22 12:48 am

      그림으로 보는게 아니라  대화의 핀트가 조금 어긋나긴 하지만 의견을 교환하니 재미있습니다.

      제가 말한 부분은 치수선을 뽑기위한 부분을 말한것이 아닙니다.

      vla-getboundingbox 에서  min_p와  max_p가 나오므로
      치수선을 뽑는 부분에서는 교환만 하면 되므로 굳이 max  min을 쓸필요가  없고

      선택한 모든 대상의 전체  all_min_p 와  all_ max_p를  구할 때를 말한 것입니다.

      예를  들어  3개를 선택해서 대상이 각각  1번부터 3번이라고 하면
       min_p1  max_p1,   min_p2  max_p2 ,  min_p3  max_p3 를 구하게 됩니다.

      이경우 3개의 대상이 차지하는 사각영역의 모서리는
      (setq  all_min_p   (mapcar ‘min   min_p1   min_p2   min_p3) )
      (setq  all_max_p   (mapcar ‘max  max_p1  max_p2  max_p3) )
      가  될테고

      반복문에서는 1번 값  min_p  max_p 를  all_min_p all_max_p의  초기값으로 한후
      (setq  all_min_p   (mapcar ‘min   all_min_p  min_p) )
      (setq  all_max_p   (mapcar ‘max  all_max_p max_p) )
      나머지 값을 적용하는 방식을 언급한 것입니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2015-07-21T16:21:29+09:00답변 등록 답변 등록 일시 2015-07-21 4:21 pm

      (mapcar ‘apply ‘(max min) (mapcar ‘list p1 p2))
      (mapcar ‘apply ‘(min max) (mapcar ‘list p1 p2))
      쩝… 이렇게 하는 것보다는
      (list (max (car p1) (car p2)) (min (cadr p1) (cadr p2)))
      (list (min (car p1) (car p2)) (max (cadr p1) (cadr p2)))
      이게 더 심플하죠?

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2015-07-21T13:46:04+09:00답변 등록 답변 등록 일시 2015-07-21 1:46 pm

      오호라!

      혹시 2포인트를 구해서 최대 최소를 mapcar ‘max 와 ‘min을 이용하면 서로 교환이 되는데
      (setq p3 (mapcar ‘min p1 p2))
      (setq p4 (mapcar ‘max p1 p2))

      2포인트를 아래와 같이

      x 축은 max .  y축은 min로
      혹은 그 반대로 x축은 min, y축을 max 형태로 교환하는것도
      mapcar를 이용하는건가요?

      ex.)
      p1= 10,100
      p2 = 20, 200
      를
      p1= 20,100
      p2 =10, 200

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. xcsh Lv.0
      2015-07-21T09:22:37+09:00답변 등록 답변 등록 일시 2015-07-21 9:22 am

      맞습니다.  구글링으로 손쉽게 검색 됩니다.
      대상의 범위를 사각형태로 좌측하단과 우측상단을 구해주는 코드입니다.
      구하고나서 예전에  질문하신 2 포인트 x, y값 교환 방법을 적용하면 여러 대상 일 때도
      범위를 쉽게 구할수 있습니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. [Deleted User]
      2015-07-21T07:48:25+09:00답변 등록 답변 등록 일시 2015-07-21 7:48 am

      vla-getboundingbox 라…. 뒤쪽 3개중 2개의 변수가…얻어올 것을 지정하는건가요….?

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    9. xcsh Lv.0
      2015-07-20T17:03:49+09:00답변 등록 답변 등록 일시 2015-07-20 5:03 pm

      10번 비교하시지 말고  vla-getboundingbox를 사용하세요.

      • 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