프로그램
캐드 분류

탭 치수 리습인데 반올림 안되게 좀 바꿔주세요

컨텐츠 정보

본문

제가 만든건 아니고 인터넷에서 다운받은건데
M2.5같은 경우에 M3으로 인식이 되더라구요
(setq dia (fix (atof (rtos (* (* (distance #a #b) 2.0) df)2 0)))) ;; 0.5이상이면 1로인식 
코드중에 위에 이부분이 문제인거같은데 어떤식으로 바꿔야될지 모르겠네요ㅠㅠ
아래는 전체 코드입니다.
(defun c:ATT(/ #os #a #b dia k dp n txt ep ep1 ep2 p2 df)
(setvar "cmdecho" 0)
(setq df (getvar "dimlfac" ))
(setq #os (getvar "osmode"))
(setvar "osmode" 512)
(setq #a(getpoint "n≫≫≫TAP 외경을 선택하세요:"))
(setq p2 (getpoint #a "n2번째 포인트 :"))
(setvar "osmode" #os)
(if (setq #b (osnap #a "cen"))
(progn
(setq dia (fix (atof (rtos (* (* (distance #a #b) 2.0) df)2 0)))) ;; 0.5이상이면 1로인식 
(initget "T D")
(setq k (getkword "n관통 … < [T]hru > / [D]p : "))
(if (= k "D")
(progn
(setq dp (getint (strcat "n깊이< " (itoa (* dia 2)) " >: "))) ;;DP 미지정시 탭 지름의 2배로 인식
(if (= dp nil) (setq dp (* dia 2)))
)
)
(setq n (getint "n수량< 1 = Enter >: "))
  
(if (or (= n nil)(= n "")(= n "1″))
  (progn
    (if (or (= k nil) (= k "T")) ; T,1
      (setq txt (strcat "M" (itoa dia) " TAP 관통")))    
    (if (= k "D")  ;D,1
   (setq txt (strcat "M" (itoa dia) " TAP DP" (itoa dp))))
  ) 
  (progn
    (if (or (= k nil) (= k "T")) ; T,2~   
   (setq txt (strcat (itoa n) "-" "M" (itoa dia) " TAP 관통")))
   
    (if (= k "D") ;D,2~   
      (setq txt (strcat (itoa n) "-" "M" (itoa dia) " TAP DP" (itoa dp))))
  ) 
 )
(setvar "osmode" 0);;;osnap 없애기
(command "leader" #a p2 "a" txt "")
(setvar "osmode" #os);;;osnap 복구
)
)
(princ)
)
어떤식으로 바꿔야할지 좀 알려주세요..

관련자료

댓글 3 / 1 페이지

캐드플러스님의 댓글

(setq dia (fix (atof (rtos (* (* (distance #a #b) 2.0) df)2 0))))

이 문장 자체가 이상한것 아닌가요?

김보리님의 댓글

이 리습은 외경 기준 리습이 아니라 기초홀을 기준으로 하는 리습입니다.

(setq dia (fix (atof (rtos (* (* (distance #a #b) 2.0) df)2 0)))) ;; 0.5이상이면 1로인식
전체 76 / 1 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0