안녕하세요 리습사용후에 오스냅 체크 된것이 다 꺼져있습니다.
오스냅 설정이 유지되도록 아래 리습 수정 부탁드립니다.
;Dimension…화살표->dot
; 치수에서 선택부위의 화살표를 도트로 변환
; command : A2D
(defun c:DOO ();(/ ent pt ed d1 d2 obj)
(vl-load-com)
(setq temperr *error*
*error* errortrap
varlst ‘(“osmode” “cmdecho” )
oldvar (mapcar ‘getvar varlst)
)
(mapcar ‘setvar varlst ‘(0))
(while
(setq ent (entsel “nSelect dimension line near arrow: “)
pt (osnap (cadr ent) “nea”)
ed (entget (car ent))
d1 (distance pt (cdr (assoc 10 ed)))
d2 (/ (cdr (assoc 42 ed)) 2)
obj (vlax-ename->vla-object (car ent))
)
(if
(or (wcmatch (vlax-get obj ‘Objectname) “*Aligned*”) (wcmatch (vlax-get obj ‘Objectname) “*Rotated*”))
(cond
((and (> d1 d2) (vlax-property-available-p obj ‘Arrowhead1Type))(vlax-put obj ‘Arrowhead1Type 11))
((and (< d1 d2) (vlax-property-available-p obj ‘Arrowhead2Type))(vlax-put obj ‘Arrowhead2Type 11))
)
(Alert “nNot a linear dimension… try again”)
)
)
(mapcar ‘setvar varlst oldvar)
(princ)
)
(defun c:TEST ()
(vl-load-com)
(setq varlst ‘(“osmode” “cmdecho”))
(setq oldvar (mapcar ‘getvar varlst))
(defun errortrap (msg)
(mapcar ‘setvar varlst oldvar)
(setq *error* temperr)
(princ (strcat “n오류 발생: ” msg))
(princ)
)
(setq temperr *error*)
(setq *error* errortrap)
(mapcar ‘setvar varlst ‘(0 0))
(while
(setq ent (entsel “n화살표 근처의 치수선 선택: “))
(setq pt (osnap (cadr ent) “nea”)
ed (entget (car ent))
d1 (distance pt (cdr (assoc 10 ed)))
d2 (/ (cdr (assoc 42 ed)) 2)
obj (vlax-ename->vla-object (car ent))
)
(if (or (wcmatch (vlax-get obj ‘Objectname) “*Aligned*”)
(wcmatch (vlax-get obj ‘Objectname) “*Rotated*”))
(cond
((and (> d1 d2) (vlax-property-available-p obj ‘Arrowhead1Type))
(vlax-put obj ‘Arrowhead1Type 11))
((and (< d1 d2) (vlax-property-available-p obj 'Arrowhead2Type))
(vlax-put obj 'Arrowhead2Type 11)))
(alert "n선형 치수가 아닙니다. 다시 시도하세요.")
)
)
(mapcar 'setvar varlst oldvar)
(setq *error* temperr)
(princ)
)