将所有3.5mm文字移动到t层
您好,我们正在使用autocad 2012。有没有办法将所有3.5mm的文字移动到图层text3.5,并将所有5mm的文字移动到图层text5。
我希望是Lisp程序,而不是Qselect。
任何一个指针都会很好。
当做
沃伦。 欢迎来到论坛。
听起来像是一个非常简单的Lisp程序,有人会给你设置。
我只需要创建一个保存的过滤器,然后用我的“快捷特性”选项板进行操作,
如果您已经设置并保存了
频繁使用。
显然没有Lisp程序那么快。
尝试以下操作:
(defun c:txt2lay ( / d e i s )
(setq d (getvar 'dimzin))
(setvar 'dimzin
(if (setq s (ssget "_X" '((0 . "TEXT") (-4 . "<OR") (40 . 3.5) (40 . 5.0) (-4 . "OR>"))))
(repeat (setq i (sslength s))
(setq e (entget (ssname s (setq i (1- i)))))
(entmod (subst (cons 8 (strcat "text" (rtos (cdr (assoc 40 e)) 2))) (assoc 8 e) e))
)
)
(setvar 'dimzin d)
(princ)
) 如果Op是指字符串而不是高度。
(defun c:Test (/ ss i e)
(if (and
(tblsearch "LAYER" "text3.5")
(tblsearch "LAYER" "text5")
)
(if (setq ss (ssget "_X" '((0 . "*TEXT") (-4 . "<OR") (1 . "3.5mm") (1 . "5mm") (-4 . "OR>"))))
(repeat (setq i (sslength ss))
(setq e (entget (ssname ss (setq i (1- i)))))
(if (eq (cdr (assoc 1 e)) "3.5mm")
(entmod (subst (cons 8 "text3.5") (assoc 8 e) e))
(entmod (subst (cons 8 "text5") (assoc 8 e) e))
)
)
)
(princ "\n one or the two layers are not found in the drawing ")
)
(princ)
)
页:
[1]