你说得对,这就是为什么我在处理文本(任何文本)时不使用entmod函数的原因
看看这个:
- (defun CS (st / a dat)
- (setq a (ssget '((0 . "TEXT,MTEXT"))))
- (repeat (sslength a)
- (setq dat (entget (ssname a 0))
- dat (subst (cons 7 st) (assoc 7 dat) dat))
- (entmod dat)
- (ssdel (ssname a 0) a)
- )
- )
当它遇到注释性多行文字(Boom)
使用VL可以避免这种情况
- (defun CS ( st / a)
- (vl-load-com)
- (if (setq a (ssget '((0 . "TEXT,MTEXT"))))
- (mapcar '(lambda (j)
- (vla-put-stylename (vlax-ename->vla-object j) st))
- (vl-remove-if 'listp (mapcar 'cadr (ssnamex a))))
- )
- (princ)
- )
用法:
命令:(CS“ROMANS”)
|