비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 112437
다음
진행 중
Lv.0
등록일: 2020-06-192020-06-19T19:42:48+09:00 2020-06-19T19:42:48+09:00카테고리: AutoCAD & CADian

홀좌표 xy 좌표를 나름 수정해서 z 좌표가 나오도록 해보고싶은데 어렵네요…

z좌표를 나오게 하려면 어디를 고쳐야하는지 선생님 가르쳐주세요
부탁드립니다. ㅠ.ㅠ
;;======================================================================
;  밀핀좌표구하기(2007.4.11 주말농부수정)
;  ->정렬순서
;      1)좌측하단기준 2)홀크기순 3)X-좌표순 4)Y-좌표순
;  ->레이어을 3가지로 정리함.(레이어는 사용자가 조정)
;  ->스케일값(dimlfac)적용(2007.6.19)
;;—— HoleTable (밀핀좌표) ——————————————
(defun c:htb(/ title sca sslen th tx sp txp lsp lep 1p 2p 3p 4p 5p 6p
                  org xorg yorg zorg lp ep elist spt cp x y z rr ss xsp ysp zsp rsp
                  os bl ss ssen k dlf rr1)
   (setq os (getvar “osmode”) bl (getvar “blipmode”) dlf (getvar “dimlfac”))
   (prompt ” 밀핀 선택<원,호만 선택됨>…”)
   (setq ss (ssget))
   (setq org (getpoint “n원점선택-> “))
   (setq sp  (getpoint “n표 그리기 시작점(왼쪽상단)->  “))
   (setq tx  (getstring “n첨자<E>: “))
   (if (= tx “”)(setq tx “E”))
   (setq num (getint “n첨자의 시작번호<1>: “))
   (if (= num nil)(setq num 1))
   (setq dot (getint “n소수이하 자릿수<1>: “))
   (if (= dot nil)(setq dot 1))
;—<레이어 만들기(txt,1,5)
   (if (tblsearch “layer” “txt”) ;->문자레이어
       (prompt ” 문자”)(command “layer” “n” “txt” “c” “white” “txt” “”) )
   (if (tblsearch “layer” “1”) ;->외곽선
       (prompt ” 외곽선”)(command “layer” “n” “1” “c” “red” “1” “”) )
   (if (tblsearch “layer” “5”) ;->내부선
       (prompt ” 내부선”)(command “layer” “n” “5” “c” “blue” “5” “”) )
   (command “color” “bylayer”)(terpri)
;—>
   (setvar “osmode” 0)(setvar “blipmode” 0)
   (setq  title “EJECTOR PIN POSITION”
          xorg (polar org 0 100) yorg (polar org (/ pi 2) 100) zorg (polar org 0 100)
           txp (list (+ (car sp) 5) (- (cadr sp) 9))
           lsp (list (car sp) (- (cadr sp) 5))
           lep (polar lsp 0 75)
           1p  (polar lsp 0 15) 2p (polar 1p 0 20)
           3p  (polar 2p 0 20)
           sca 1 th 2 lp lsp ep lep
   )
   (command “layer” “s” “1” “”)
   (command “line” sp “@75,0” “”)
   (command “line” lp ep “”)
   (command “layer” “s” “txt” “”)
   (command “text” “MC” (list (+ (car txp) 32.5) (+ (cadr txp) 6.5)) th 0 title)
   (command “text” “MC” (list (+ (car txp) 2.5) (+ (cadr txp) 1.5)) th 0 “No”)
   (command “text” “MC” (list (+ (car txp) 20) (+ (cadr txp) 1.5)) th 0 “X”)
   (command “text” “MC” (list (+ (car txp) 40) (+ (cadr txp) 1.5)) th 0 “Y”)
   (command “text” “MC” (list (+ (car txp) 60) (+ (cadr txp) 1.5)) th 0 “Z”)
   (command “text” “MC” (list (+ (car txp) 80) (+ (cadr txp) 1.5)) th 0 “Dia.”)
;—<홀크기순 정렬
    (setq ss (@ss_en_2 ss “ARC” “CIRCLE”))
   (setq ssen (@en_r_lst ss))
   (setq sslen (length ssen))
   (setq k 0) (setq oldrr 100)
   (repeat sslen
      (setq elist (entget (nth k ssen)))
      (command “ucs” “3” org xorg yorg zorg) ;원점을 org로 변경
      (setq cp (cdr (assoc 10 elist)) ;circle point 홀중심
              x  (rtos (/ (car  (trans cp 0 1)) sca) 2 dot)
              y  (rtos (/ (cadr (trans cp 0 1)) sca) 2 dot)
              z  (rtos (/ (cadr (trans cp 0 1)) sca) 2 dot)
              rr  (cdr  (assoc 40 elist))
              rr  (/ (* rr 2) sca)
      )
      (setq newrr rr)
      (command “ucs” “P”)
      (setq spt (polar (trans cp 0 1) (dtr 45) (+ (/ rr 2) 1.0)))
      (setq rr1 (* rr dlf));;-> dimlfac 적용
      (setq rr1 (strcat  “%%c” (rtos rr1 2 dot)) )
      (setq txno (strcat tx (itoa num)))
      (setq num (+ num 1))
      (command “layer” “s” “txt” “”)
      (command “text” spt th 0 txno) ;홀에 부호 쓰기
;;–<표 작성 시작
      (setq lsp (polar lsp (dtr 270) 5)
            lep (polar lsp 0 85)
            txp (polar txp (dtr 270) 5)
            xsp (polar txp 0 28)
            ysp (polar txp 0 48)
            zsp (polar txp 0 68)
            rsp (polar txp 0 88)
      )
      (command “text” txp th 0 txno) ;부호쓰기
;;—- dimlfac 적용 시작 ———————–
      (setq x (* (atof x) dlf) x (rtos x 2 dot))
      (setq y (* (atof y) dlf) y (rtos y 2 dot))
      (setq z (* (atof z) dlf) z (rtos z 2 dot))
;;—- dimlfac 적용 끝 ————————-
      (command “text” “r” xsp th 0 x) ;x좌표
      (command “text” “r” ysp th 0 y) ;y좌표
      (command “text” “r” ysp th 0 z) ;z좌표
      (if (= oldrr newrr)
         (progn
             (command “layer” “s” “5” “”)
             (setq lep (polar lsp 0 55))
             (command “line” lsp lep “”) ;짧은라인
         )
         (progn
            (command “text” “r” rsp th 0 rr1) ;파이쓰기
            (command “layer” “s” “1” “”)
            (command “line” lsp lep “”) ;긴라인
      ))
      (command “layer” “s” “txt” “”)
      (setq oldrr newrr)
      (setq k (+ k 1))
   );repeat end
   (command “layer” “s” “1” “”)
   (setq lsp (polar lsp (dtr 270) 5)
          lep (polar lsp 0 75)
          4p  (polar lsp 0 15)
          5p  (polar lsp 0 35)
          6p  (polar lsp 0 55)
   )
   (command “line” lsp lep “”)
   (command “line” (list (car lp) (+ (cadr lp) 5)) lsp “”)
   (command “line” (list (car ep) (+ (cadr ep) 5)) lep “”)
   (command “line” 1p 4p “”)
   (command “line” 2p 5p “”)
   (command “line” 3p 6p “”)
   (setvar “osmode” os) (setvar “blipmode” bl)
(prompt “n①홀크기순 / ②X-좌표순 / ③Y-좌표순 으로 정렬됨…”)
(prin1)
)
(defun dtr (a) (* pi (/ a 180.0)))
;;================================================================
;   SORT한(반지름/x-좌표/y-좌표) 리스트구하기(2007.4.주말농부)
;   ->결과:ename list
;;—-entitiy name list——————————————-
(defun @en_r_lst (ss / ss-en1 ss-en2 ss-en3 en k elist px py rad tem no)
   (setq ss-en1 ‘() ss-en2 ‘() k 0)
   (while (setq en (ssname ss k))
      (setq elist (entget en))
      (setq px (car (cdr (assoc 10 elist))))
      (setq py (cadr (cdr (assoc 10 elist))))
      (setq pz (car (cdr (assoc 10 elist))))
      (setq rad (cdr (assoc 40 elist))) ;radius
      (setq tem (+ (+ (* px 100) py) (* rad 100000)))
      (setq ss-en1 (cons (list en tem) ss-en1))
      (setq k (+ k 1))
   )
   (setq ss-en2 (vl-sort ss-en1 ‘(lambda (x1 x2) (> (cadr x1) (cadr x2))))  )
   ;ss-en2 내림차순
   (setq ss-en3 ‘() k 0)
   (setq no (length ss-en2))
   (repeat no
       (setq ss-en3 (cons (car (nth k ss-en2)) ss-en3))
       (setq k (+ k 1))
   ) ;ss-en3가 radius 오름차순으로 변경됨(ename list)
ss-en3
)
;;=================================================================
;   명령어이름 두가지(arc,circle)가 포함된 리스트(2007.4.주말농부)
;   ->결과:선택세트<Selection set>
;;— Selection set entity name (arc & circle) ——————–
(defun @ss_en_2 (ss te1 te2 / k en elist)
   (setq k 0)
   (while (setq en (ssname ss k))
      (setq elist (entget en))
      (if (or (= (cdr (assoc 0 elist)) te1)
              (= (cdr (assoc 0 elist)) te2) )
         (princ k)
         (progn (setq k (- k 1)) (ssdel en ss)   )
      )
      (setq k (+ k 1))
   )
ss
)
  • 0
  • 1 1 답변
  • 23 조회
공유
  • Facebook

    관련 있는 질문들

    • 동적블록 신축에서 길이를 늘릴때 최종 길이를 입력 또는 늘려야 하는 차이만큼의 길이를 입력
    • 캐드 타일 개수 구하기
    • 캐드 선택할 때 마우스 옆에 박스안 초록동그라미, 파란동그라미 표시 어떻게 없애나요?
    • 캐드 용량이 16.8MB 인데 10MB 이하로 줄이고 싶습니다

    1 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2020-06-20T07:32:35+09:00답변 등록 답변 등록 일시 2020-06-20 7:32 am
      길어서 그냥 대충 훑어 봤는데요 

      z  (rtos (/ (cadr (trans cp 0 1)) sca) 2 dot)  <= 혹시 이부분 작성자분께서 추가하신 부분이라면

      cadr이 아니라 caddr 로 바꾸셔야 합니다 
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • 국산 CAD ‘캐디안 2025’ 출시 사전 예약 진행 2024-09-27

    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