그림파일과 같이
45°0′
32°8′
로 나옵니다….
45° 에는 뒤에 0′
32,13° 에는 8′ 이 붙습니다..
32°8′
로 나옵니다….
45° 에는 뒤에 0′
32,13° 에는 8′ 이 붙습니다..
45° 32,13° 처럼 글이 나왔으면 좋겟는데 고칠줄 모르겟네요…
고수님들 부탁드리겟습니다.
고수님들 부탁드리겟습니다.
(DEFUN C:BB (/ ENT PT1 PT2 pt3 pt4 PT5 pt6 AN an1 an2 an3 an4)
(setq *Osmode_Save (getvar “osmode” ))
(setq oldlayer (getvar “clayer”))
(setvar “clayer” “dim”)
(SETQ ent(entget (car (entsel “npick a line : “))))
(setq pt1(cdr (assoc 10 ent)))
(setq pt2(cdr (assoc 11 ent)))
(setvar “osmode” 0)
; (setq pt6(polar pt4 (dtr 330) 8.26 ))
(setq an(angle pt1 pt2))
(if (<= an (/ pi 4)) ;0~45
(setq an1 an)
(if (<= an (/ pi 2)) ;45~90
(setq an1 (- (/ pi 2) an))
(if (<= an (/ (* pi 3) 4)) ;90~135
(setq an1 (- an (/ pi 2)))
(if (<= an pi) ;135~180
(setq an1 (- pi an))
(if (<= an (/ (* 5 pi) 4)) ;180~225
(setq an1 (- an pi))
(if (<= an (/ (* 3 pi) 2)) ;225~270
(setq an1 (- (/ (* 3 pi) 2) an))
(if (<= an (/ (* 7 pi) 4)) ;270~315
(setq an1 (- an (/ (* pi 3) 2)))
(setq an1 (- (* pi 2) an)) ;315~360
)
)
)
)
)
)
);;IF
(setq an2(angtos an1 0 3))
(if (zerop an1)
(setq an3(strcat (angtos an1 0 5)”%%d”))
(setq an3(vl-string-subst “%%d” “d” (angtos an1 1 2)))
);;if
(setq an4(strcat an3 ))
(setvar “osmode” 512)
(command “_leader” PAUSE PAUSE “” an4 “”)
(setvar “osmode” *Osmode_Save)
(setvar “clayer” oldlayer)
(princ)
);===END OF PROGRAM===
끝에서 9번째 줄
(setq an3(vl-string-subst “%%d” “d” (angtos an1 1 2)))
–> (setq an3(vl-string-subst “%%d” “d” (angtos an1 0 2))) 으로 바꾸세요
0은 십진법 1은 도수법이고
이옵션 뒤에 있는 것은 표현하고자 하는 소수점이에요
(angtos an1 1 2) –> 도수법 둘째자리까지
(angtos an1 0 3) –> 십진법 셋째짜리까지
이런식으로….