你说得对,这就是为什么我在处理文本(任何文本)时不使用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”)
页:
1
[2]