
- [FONT=courier new]
- (defun c:ch (/ st ss n e1 e2 p1 p2 p3 p4 s en)
- ;;批量修改文字;;
- (setq oer *error* *error* myerr)
- (modes '("osmode" "cmdecho" "orthomode" "blipmode"))
- (command "undo" "g")
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setvar "osmode" 0)
- (graphscr)
- (setvar "osmode" 0)
- (if (null text0)(setq text0 "1015"))
- (setq st (car (entsel (strcat "\n点取需用参照的文字<" text0 ">:"))))
- (if (= st nil)
- (setq st text0)
- (if (eq "TEXT" (cdr (assoc 0 (entget st))))
- (setq st (cdr (assoc 1 (entget st))))
- (setq st text0)
- )
- )
- (setq ss (ssget '((0 . "TEXT"))) n 0 text0 st)
- (repeat (sslength ss)
- (setq e1 (entget (ssname ss n)) n (1+ n) p1 (cdr (assoc 10 e1)))
- (setq e1 (subst (cons 1 st) (assoc 1 e1) e1))
- (entmod e1)
- (setq e2 (entget (ssname ss (- n 1))))
- (if (= "ZYT" (cdr (assoc 7 e1)))
- (progn
- (setq p2 (cdr (assoc 10 e2))
- p3 (cdr (assoc 11 e1)) p4 (polar p3 4.7 300)
- s (ssget "c" p3 p4 '((0 . "LINE"))) ;(62 . 4)))
- )
- (if s
- (progn
- (setq en (entget (ssname s 0)) p3 (cdr (assoc 10 en))
- p4 (cdr (assoc 11 en))
- )
- (command "stretch" "c" p3 "@-1000,300" "" p1 p2)
- (command "stretch" "c" p4 "@2000,300" "" p2 p1)
- )
- )
- )
- )
- )
- (ssget "p" '((0 . "TEXT")))
- (command "undo" "end")
- (moder) (setq *error* oer)
- (terpri)
- (princ)
- )
- [/FONT]
|