-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathodbx_substtext.lsp
66 lines (55 loc) · 2 KB
/
odbx_substtext.lsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
; ANSI-Windows 1252
; Autolisp, Visual Lisp
;|
odbx_substtext.lsp 1.0
Replace a text in a text in the model space.
Place the files, odbx_substtext.lsp and odbx_fct.lsp, in an Autocad approved folder.
Use APPLOAD to load them.
Enter odbx_substtext in Autocad, the old text, the new and choose folder.
Drawings are not open.
PLEASE NOTE, there is no going back.
Tested on Windows 10 and Autocad 2015.
No copyright: (!) 2021 by Frédéric Coulon.
No license: Do with it what you want.
|;
;Dependencies
(vl-load-com)
;(load "fct.lsp")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:odbx_substtext (/ axdoc lfil dir old new text flag)
(setq old (getstring "Old text?")
new (getstring "New text?")
)
; Choose folder.
(if (and (setq dir (getdir))
; dwg liste.
(setq lfil (vl-directory-files dir "*.dwg" 1)))
; Loop over files.
(foreach f lfil
(if (setq axdoc (getaxdbdoc (strcat dir f)))
(progn
; Loop over objects in model space.
(vlax-for obj (vla-get-modelspace axdoc)
; If it's a text.
(if (and (= (vla-get-ObjectName obj) "AcDbText")
(vl-string-search old (setq text (vla-get-textstring obj)))
)
(progn
(vlax-put obj 'TextString (vl-string-subst new old text))
(setq flag 1)
)
)
)
(if flag (progn (vla-saveas axdoc (strcat dir f))
(vlax-release-object axdoc))
)
)
(princ (strcat "\n" f ": Illegible or corrupt."))
)
(setq flag nil)
)
(princ "\nHave you lost your way?")
)
(princ)
)
;É;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;