这是我的变体,但没有时间测试代码,因为我现在必须离开办公室。
- (defun c:Test (/ _l ss)
- ;; Tharwat 18. May. 2014 ;;
- (defun _l (e / a b l)
- (vla-getboundingbox (vlax-ename->vla-object e) 'a 'b)
- (setq l (mapcar 'vlax-safearray->list (list a b)))
- (distance (car l) (cadr l))
- )
- (if (setq ss (ssget "_:L" '((0 . "TEXT"))))
- ((lambda (i / sn st pt e en j n)
- (while (setq sn (ssname ss (setq i (1+ i))))
- (if (> (strlen (setq st (cdr (assoc 1 (setq en (entget sn)))))) 45)
- (progn (setq pt (cdr (assoc 10 en))
- e (cdr (assoc -1 (entmod (append en (list (cons 1 (substr st 1 45)))))))
- st (substr st 46)
- )
- (repeat (1+ (/ (strlen st) 45))
- (setq
- e (entmakex (append (vl-remove-if-not '(lambda (x) (member (car x) '(0 8 62 40 41 50))) (entget e))
- (list (cons 1 (substr st 1 45))
- (cons 10 (setq pt (polar pt (cdr (assoc 50 (entget e))) (_l e))))
- )
- )
- )
- )
- (setq st (substr st 46))
- )
- )
- )
- )
- )
- -1
- )
- )
- (princ)
- ) (vl-load-com)
|