;; special version for Dan
;; changes all matching text to SEE NOTES ON SHEET #1
;; but does not change the selected text.
(defun c:pstext-edit-dan (/ str pt ent oldstr cnt ctab)
(vl-load-com)
(defun get_point (e)
;; get a referance point to compare, if dtext use alignment point
;; because center justification can change the insertion point
(if (= (vla-get-objectname e) "AcDbText")
(vlax-get e "textalignmentpoint")
(vlax-get e "insertionpoint")
)
)
(if (= (getvar "tilemode") 1)
(alert "\nYou must be in Paper Space to run this routine.\t")
(progn ; else you are in paper space, ok to proceed
(if (/= (getvar "cvport") 1); a view port is active
(command "_pspace") ; close the view port
)
(princ "\nSelect text to revise to SEE NOTES ON SHEET #1")
(if (setq ss (ssget ":S" '((0 . "TEXT,MTEXT"))))
(progn
(setq ent (vlax-ename->vla-object (ssname ss 0))
oldstr (vlax-get ent "textstring")
pt (get_point ent)
cnt 0
ctab (getvar "CTab")
)
(vlax-for x (vla-get-layouts
(vla-get-activedocument
(vlax-get-acad-object)
)
)
;; skip model space
;; skip model space or current tab
(if (not (or (= (strcase (vla-get-name x)) "MODEL")
(= (vla-get-name x) ctab)
)
)
(vlax-for y (vla-get-block x)
(if
(and
(member (vla-get-objectname y) '("AcDbMText" "AcDbText"))
(= (vla-get-textstring y) oldstr)
(= (car pt)(car (get_point y)))
(= (cadr pt)(cadr (get_point y)))
)
(progn
(vla-put-textstring y "SEE NOTES ON SHEET #1") ; str)
(setq cnt (1+ cnt))
)
) ; endif
) ; vlax-for
) ; endif
) ; vlax-for
(vlax-release-object ent)
(prompt (strcat "\n" (itoa cnt) " Layouts Updated."))
) ; progn
(prompt "\nObject is not plain text or Mtext.")
) ; endif
) ; progn
) ;endif
(princ)
) ; defun
(prompt "\nEnter psText-edit-dan to edit text.")