下面的程序不能实现第四种标注文字避让形式,只能形成第2,或者第3种
;;尺寸文字避让
(defun c:yad_dimadjust(/ yad-dxf yad-perpt yad-chgent ss n m ent en ang w h l_dat l_mov oldang mov s pt pt1 pt2 l_adj en l_en disang disw dish item item1)
(defun yad-dxf(en n)
(if (not (listp en)) (setq en (entget en)))
(cdr (assoc n en))
)
(defun yad-perpt(pt pt1 pt2)
(inters pt1 pt2 pt (polar pt (+ (angle pt1 pt2) (/ pi 2)) 1200) nil)
)
(defun yad-chgent(en n / m val)
(if (not (listp en)) (setq en (entget en)))
(foreach itm n
(setq m (car itm) val (cadr itm))
(if (assoc m en)
(setq en (subst (cons m val) (assoc m en) en))
(setq en (append en (list (cons m val))))
)
)
(entmod en)
)
(prompt "\n选择需要自动调整文字位置的一组标注尺寸:")
(if (setq ss (ssget '((0 . "dimension")(-4 . ""