치수입력시 소수점 후행억제가 않됩니다.
컨텐츠 정보
- 34 조회
- 7 댓글
- 0 추천
- 0 비추천
- 목록
본문
오랜만에 글올립니다.
치수입력시에 그림1과 같이 입력시에 사용하는 리습입니다.
뭐가 문제인지 후행억제가 안되는데 리습의 문제인지 캐드 옵션상의 문제인지 제가 아는 지식으로는 해결하기가 어려워서 고수님들의 도움요청을 부탁드립니다.
정수 각도일때만 후행 억제하고 정수각이 아닐때는 현재로 좋습니다.
간절합니다. 고수님들 부탁드립니다.
(DEFUN C:AQ (/ 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” 103)
; (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===
관련자료
수야12님의 댓글
(DEFUN C:AQ (/ 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” 103)
; (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 anv(angtos an1 0 2)) (setq pos(vl-string-position (ascii ".")anv)) (if pos(setq n 2)(setq n 0))
(if (zerop an1) (setq an3(strcat (angtos an1 0 5)"%%d")) (setq an3(vl-string-subst "%%d" "d" (angtos an1 1 n))) );;if
(setq an4(strcat an3 )) (setvar "osmode" 512) (command "_leader" PAUSE PAUSE "" an4 "")
(setvar "osmode" *Osmode_Save) (setvar "clayer" oldlayer) (princ) );===END OF PROGRAM===