(defun c:tmx (/ ent mspace i m wenzi a b c d aa bb cc dd ee ff gg leader)
(command "layer" "M" "文字" "C" "1" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
(setq qz (getstring "\n请输入文字: "))
(setq ent (car (entsel)))
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq i T)
(while i
(setq a (grread T 4 0) b (car a) c (cadr a))
(cond ((= b 5)
(setq a (trans (cadr a) 1 0))
(setq d (vlax-curve-getclosestpointto ent a))
(setq aa (car a) bb (cadr a) cc (caddr a))
(setq dd (car d) ee (cadr d) ff (caddr d)) ;;★创建引线★
(setq gg (vlax-make-safearray vlax-vbDouble '(0 . 5)))
(vlax-safearray-fill gg (list dd ee ff aa (- (cadr a) 2) cc))
(if (not Leader) ;;如果leader为空
(progn
(setq m (vla-AddMText mspace (vlax-3d-point (list aa (- (cadr a) 1.2))) 0 qz)) ;;创建文字A
(setq wenzi (vlax-make-safearray vlax-vbString '(1 . 9)))
(vlax-safearray-fill wenzi '("TopLeft" "TopCenter" "TopRight" "MiddleLeft"
"MiddleCenter" "MiddleRight" "BottomLeft" "BottomCenter" "BottomRight"))
(setq Leader (vla-AddLeader mspace gg m acLineWithArrow))
) ;;end_progn
);;end_if
(if (<= aa dd) ;;
(vla-put-AttachmentPoint m 9)
(vla-put-AttachmentPoint m 7)
);;end_if
(vla-put-InsertionPoint m (vlax-3d-point (list aa (- (cadr a) 1.5))))
(vla-put-Coordinates Leader gg)
(vla-put-VerticalTextPosition Leader 1)
) ;;end_cond第一个括号
((= b 3) (setq i nil))
) ;;end_cond
) ;;end_while
(c:tmx)
)