제가 만든건 아니고 인터넷에서 다운받은건데
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)
)
어떤식으로 바꿔야할지 좀 알려주세요..
https://www.gocad.co.kr/qa_cad/3566769/page/2
(setq dia (fix (atof (rtos (* (* (distance #a #b) 2.0) df)2 0))))
이 리습은 외경 기준 리습이 아니라 기초홀을 기준으로 하는 리습입니다.