Files
Walz/MENU/ALTSTR.LSP
T

97 lines
3.0 KiB
Common Lisp

;-------------------------------
; Change Text String 30.6.91 AW
;-------------------------------
(Defun C:Ct ()
(Setvar "Cmdecho" 0)
(Setq B 0)
(Initget 1 "G P")
(Setq F (Getkword "Change text - Global/Part: "))
(Setq A (Ssget))
(If
A
(Cond
((= F "G")
(Repeat
(Sslength A)
(If
(/= "TEXT"
(Cdr (Assoc 0 (Setq E (Entget (Setq C (Ssname A B))))))
)
(Setq B (1+ B))
(Progn
(Command "WAHL" C)
(Setq G (Strlen (Setq D
(Getstring t "\nNew Text: ")))
)
(Setq H (Cdr (Assoc 1 E)))
(Cond
((And (/= D "") (= "<>" (Substr D 1 2)))
(Setq D (Strcat H (Substr D 3 (- G 2))))
)
((And (/= D "") (= "<>" (Substr D (- G 1) 2)))
(Setq D (Strcat (Substr D 1 (- G 2)) H))
)
)
(If
(/= D "")
(Progn
(Setq E (Subst (Cons 1 D) (Assoc 1 E) E))
(Entmod E)
)
)
(Setq B (1+ B))
(Command "")
)
)
)
)
((= F "P")
(Progn
(Setq D (Strlen (Setq C (Getstring t "\nOld String: "))))
(Setq G (Getstring t "\nNew String: "))
(Princ "\nWorking...")
(Repeat
(Sslength A)
(Princ ".")
(If
(= "TEXT" (Cdr (Assoc 0 (Setq E (Entget (Ssname A B))))))
(Progn
(Setq K (Cdr (Assoc 1 E)))
(Setq H 1)
(If
(= C (Substr G (- (Strlen G) (- (Strlen C) 1))))
(Setq I D)
(Setq I 0)
)
(While
(= D (Strlen (Setq J (Substr K H D))))
(Princ ".")
(If
(= J C)
(Progn
(Setq K (Strcat (Substr K 1 (1- H)) G
(Substr K (+ H D)))
)
(Setq H (+ (- (Strlen G) 1) H I))
)
(Setq H (1+ H))
)
)
(If
(/= K (Cdr (Assoc 1 E)))
(Progn
(Setq E (Subst (Cons 1 K) (Assoc 1 E) E))
(Entmod E)
)
)
)
)
(Setq B (1+ B))
)
)
)
)
)
(Princ)
)