快速书写:
- (defun NearestTextFromPoint ( pt str / d e i l m r s )
- (if
- (setq s
- (ssget "_X"
- (list
- '(0 . "TEXT,MTEXT")
- (cons 1 str)
- (cons 410 (if (= 1 (getvar 'CVPORT)) (getvar 'CTAB) "Model"))
- )
- )
- )
- (repeat (setq i (sslength s))
- (setq e (ssname s (setq i (1- i)))
- l (entget e)
- )
- (if
- (<
- (setq d
- (distance pt
- (if
- (or (eq "MTEXT" (cdr (assoc 0 l)))
- (and
- (zerop (cdr (assoc 72 l)))
- (zerop (cdr (assoc 73 l)))
- )
- )
- (cdr (assoc 10 l))
- (cdr (assoc 11 l))
- )
- )
- )
- (cond (m) ((1+ d)))
- )
- (setq m d r e) r
- )
- )
- )
- )
- (defun c:test ( / s p )
- (setq s (getstring t "\nString: "))
- (if (setq p (getpoint "\nPoint: "))
- (sssetfirst nil (ssadd (NearestTextFromPoint (trans p 1 0) s)))
- )
- (princ)
- )
|