欢迎来到CADTutor!
如果文本实体没有任何不可靠的格式,则应该可以:
- (defun c:RS () (c:RenameMepSpace))
- (defun c:RenameMepSpace (/ *error* _Nomutt)
- (princ "\rRENAMEMEPSPACE ")
- (vl-load-com)
- (defun *error* (msg)
- (and oldNomutt (setvar 'nomutt oldNomutt))
- (if acDoc
- (vla-endundomark acDoc))
- (cond ((not msg)) ; Normal exit
- ((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
- ((princ (strcat "\n** Error: " msg " ** ")))) ; Fatal error, display it
- (princ))
- (defun _Nomutt (on /)
- (if on
- (setvar 'nomutt 0)
- (setvar 'nomutt 1)))
- ((lambda (acDoc oldNomutt / ssSpace ssText name)
- (if (and (_Nomutt T)
- (princ "\nSelect space object to name: ")
- (_Nomutt nil)
- (setq ssSpace (ssget ":S:E:L" '((0 . "AEC_SPACE"))))
- (_Nomutt T)
- (princ "\nSelect text to name space object: ")
- (_Nomutt nil)
- (setq ssText (ssget ":S:E:L" '((0 . "MTEXT,TEXT")))))
- (progn
- (vla-startundomark acDoc)
- (setq name (vla-get-textstring
- (vlax-ename->vla-object
- (ssname ssText 0))))
- (while (vl-string-search "\\P" name)
- (setq name (vl-string-subst " " "\\P" name)))
- (vla-put-name
- (vlax-ename->vla-object (ssname ssSpace 0))
- name)
- (_Nomutt T)
- (prompt (strcat "\n\nMEP Space renamed >> " name))
- (*error* nil))
- (cond (ssText (*error* "No space selected"))
- ((*error* nil)))))
- (vla-get-activedocument (vlax-get-acad-object))
- (getvar 'nomutt)))
**使用AutoCAD MEP 2012测试 |