정상적으로 각도치수가 기입이 되면 osmode os 가 적용되는데
에러가 나면 osnap이 전부 사라집니다.
검색해보니 에러발생시 오스넵 os설정이 되게 구문을 추가하라는데
어디에 넣어야 할지 몰라서요 ㅠㅠ 2010버전입니다.
아참 그리고 에러나면 디멘션에서 TRAILING 기능이 체크됩니다.(소숫점이하 0표시 없애는기능)
이거도 안나오게좀 ㅜㅜ
(defun c:df(/ ent pt1pt2 pt3 pt4 pt5 pt6 an an1 an2 an3 an4
os ot dzin dtvp ss1 k k1 k2 t1 t2 t3)
(setq os (getvar “osmode”))
(setq ot (getvar “orthomode”))
(setq dzin (getvar “dimzin”));8
(setq dtvp (getvar “dimtvp”))
(setvar “osmode”0)
(setvar “orthomode”0)
(setvar “dimzin” 8)
(setvar “dimtvp” 0.8)
(setvar “dimtad” 0)
(princ “nDim: ANGLE”)(terpri)
(setq ss1 (entsel “nSelect inclined line: “))
(setq ent (entget (car ss1)))
(setq pt1 (cdr (assoc 10 ent)))
(setq pt2 (cdr (assoc 11 ent)))
(setq p1 (cadr ss1))
(setq p2 (getpoint p1 “nEnter leader length for text: “))
(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
(setvar “osmode” os)
) )))) ));if end
(setq an4 (vl-string-subst “%%d” “d” (angtos an1 1 3)))
(setq k (strlen an4))
(setq k1 (vl-string-position (ascii “d”) an4))
(setq k2 (vl-string-position (ascii “‘”) an4))
(setq t1 (substr an4 (+ k1 2) (- k2 k1 1)))
(setq t2 (substr an4 (+ k2 2) (- k k2 2)))
(if (zerop (atof t2))
(progn
(setq t3 (substr an4 1 (+ k2 1)))
(if (zerop (atof t1))(setq t3 (substr an4 1 (+ k1 1))))
(setq an4 t3)
)
)
(if (zerop an1) (setq an4 “0%%d”))
(command “leader” “nea” p1 p2 “” an4 “”)
(setvar “osmode” os)
(setvar “orthomode” ot)
(setvar “dimzin” dzin)
(setvar “dimtvp” dtvp)
(prin1))
공유