嗨,西蒙,
这里是对之前编写的相同程序的新修改,以包括各种理由。
- (defun c:Test (/ sel int obj lst txt srt p c l e v lf rt)
- ;;====================================================;;
- ;; Author: Tharwat Al Shoufi. Date: 12.Apr.2016 ;;
- ;; move single text objects to nearest line with 1.0 ;;
- ;; unit away from Y Axe. ;;
- ;;====================================================;;
- (if (setq sel (ssget "_:L" '((0 . "LINE,TEXT"))))
- (repeat (setq int (sslength sel))
- (if (eq "LINE" (cdr (assoc 0 (entget (setq obj (ssname sel (setq int (1- int))))))))
- (setq lst (cons obj lst))
- (setq txt (cons obj txt))
- )
- )
- )
- (if (and lst txt)
- (mapcar
- '(lambda (xt)
- (setq l nil
- e (entget xt)
- v (vlax-ename->vla-object xt)
- )
- (vla-getboundingbox v 'lf 'rt)
- (setq p (vlax-safearray->list lf))
- (mapcar '(lambda (n)
- (setq c (vlax-curve-getclosestpointto n p)
- l (cons (list (distance c p) c) l)
- )
- )
- lst
- )
- (vlax-invoke v 'move p (if (< (cadr (cadar (setq srt (vl-sort l '(lambda (j k) (< (car j) (car k))))))) (cadr p))
- (polar (cadar srt) (* pi 0.5) 1.0)
- (polar (cadar srt) (* pi 1.5) (1+ (cdr (assoc 40 e))))
- )
- )
- )
- txt
- )
- )
- (princ)
- )(vl-load-com)
关于你关于如何将文件附加到线程的问题,请看右手向下一点,看到按钮前进,点击按钮,然后从新页面上你可以看到许多选项,而不仅仅是附件。
祝你好运 |