97 lines
3.0 KiB
Common Lisp
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)
|
|
)
|
|
|