-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathodbx_substmtext.lsp
More file actions
65 lines (54 loc) · 1.98 KB
/
odbx_substmtext.lsp
File metadata and controls
65 lines (54 loc) · 1.98 KB
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
; ANSI-Windows 1252
; Autolisp, Visual Lisp
;|
odbx_substmtext.lsp 1.0
Replace a text in a multiline text in the model space.
Place the files, odbx_substmtext.lsp and odbx_fct.lsp, in an Autocad approved folder.
Use APPLOAD to load them.
Enter odbx_substmtext 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_substmtext (/ 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 mtext.
(if (and (= (vla-get-ObjectName obj) "AcDbMText")
(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 (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)
)
;É;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;