这是经过编辑的版本,抱歉耽搁了
- (defun C:RT (/ acapp acsp adoc adocs fn fold full_name_list st)
- ;; local defun
- ;; by Michael Puckett
- (defun Replace ( oldText newText text / i )
- (if (/= oldText newText)
- (while (setq i (vl-string-search oldText text))
- (setq text
- (vl-string-subst
- newText
- oldText
- text
- i
- )
- )
- )
- )
- text
- )
- (or (vl-load-com))
- (setq fn (getfiled "Select *ANY .DWG FILE* in a desired folder : "
- ""
- "dwg"
- 4
- )
- fold (vl-filename-directory fn)
- full_name_list (vl-directory-files fold "*.dwg" 1)
- full_name_list (mapcar (function (lambda (x)
- (strcat fold "\" x)
- )
- )
- full_name_list
- )
- )
- (setq acapp (vlax-get-acad-object)
- adocs (vla-get-documents acapp)
- )
- (foreach fl full_name_list
- (setq adoc (vla-open adocs fl :vlax-false))
- (setq acsp (vla-get-modelSpace adoc))
- (vlax-for lt (vla-get-layouts adoc)
- (vlax-for obj (vla-get-block lt)
- (if (eq "AcDbText" (vla-get-objectname obj))
- (if (wcmatch (setq st (vla-get-textstring obj)) "*D.F.*")
- (vla-put-textstring obj (Replace "DF" "D.F." st))
- )
- )
- )
- )
- (vla-save adoc)
- (vla-close adoc)
- )
- )
- (princ "\n\t***\tStart command with RT\t***")
- (princ)
|