本帖最后由 tigcat 于 2021-8-3 14:34 编辑
 - (defun C:f1 (/ dxf1 dxf10 dxf101 dxf11 dxf40 dxf401 en
- en_data en1 k m n ss dis
- pta ptb ss1 n2 i
- )
- (vl-load-com)
- (defun dxf (key ename) (cdr (assoc key (entget ename))))
- (setq ss (ssget '((0 . "*TEXT"))))
- (setq i -1
- dist 2500
- ;;; t0 (* 86400 (getvar "tdusrtimer"))
- )
- ;;; (or (setq dist (getreal "\输入文字高度: <1500>")) (setq dist 1500))
- (setq lis (ssadd))
- (while (setq en (ssname ss (setq i (1+ i))))
- (setq dxf10 (dxf 10 en))
- (setq dxf1 (dxf 1 en)
- pta (list (- (car dxf10) dist) (- (cadr dxf10) dist))
- ptb (list (+ (car dxf10) dist) (+ (cadr dxf10) dist))
- ss1 (ssget "c" pta ptb)
- ss1 (ssget "P" '((0 . "*TEXT")))
- n2 (sslength ss1)
- i2 0
- )
- (if (> n2 1)
- (progn
- (setq ss1 (ssdel en ss1))
- (setq n2 (1- (sslength ss1)))
- (while (<= i2 n2)
- (setq en2 (ssname ss1 i2))
- (setq dxf2 (dxf 1 en2))
- (setq i2 (1+ i2))
- (if (/= dxf2 dxf1)
- (progn
- (command "circle" (dxf 10 en2) "1000")
- (command "circle" (dxf 10 en) "1000")
- )
- ;;; (command "circle" (dxf 10 en) "1000")
- )
- )
- )
- (command "circle" (dxf 10 en) "1000")
- )
- ;;; (setq ss (ssdel en ss))
- ;;; (setq s (1+ s))
- )
- ;;; (setq t1 (* 86400 (getvar "tdusrtimer")))
- ;;; (princ (strcat "耗时:"
- ;;; (rtos (- t1 t0) 2 3)
- ;;; )
- ;;; )
- (princ)
- )
|