求框选文字和圆,将字高和圆直径统一
图中有多种字高的文字(包括多行文字、单行文字),还有多种圆直径,现在希望能框选这些文字和圆,然后文字的字高统一为300,圆直径统一为150,其中包含编组,希望编组不会被分解,圆心位置不被移动,请明经的大侠出手相助!(defun c:ty(/ ss en e txth dr)
(prompt "\n请选择需要统一直径与字高的圆、文字:")
(if (setq ss(ssget '((0 . "*text,circle"))))
(progn
(or (setq dr(getreal "\n输入统一圆的直径值<150>:"))(setq dr 150))
(or (setq txth(getreal "\n输入统一的文字高度值<300>:"))(setq txth 300))
(while (setq en(ssname ss 0))
(setq e(entget en))
(cond
((wcmatch (cdr(assoc 0 e)) "*TEXT" )(entmod (subst (cons 40 txth) (assoc 40 e) e)))
((wcmatch (cdr(assoc 0 e)) "CIRCLE" )(entmod (subst (cons 40 (* dr 0.5)) (assoc 40 e) e)))
)
(setq ss(ssdel en ss))
)
)
(princ "\n Noting !!!")
)
(princ)
)。。。。 本帖最后由 1993063 于 2013-12-7 03:50 编辑
这个简单<img src="http://bbs.mjtd.com/static/image/smiley/qq/em34.gif" border="0" smilieid="116" alt="" style="line-height: 1.5;"> ;;;字高300,圆半径150 1993063 2013.12.07
(Defun C:tt ( / en i ss ty)
(setq i -1 ss (ssget '((0 . "*TEXT,CIRCLE"))))
(progn
(repeat (setq i (sslength ss ))
(setq en (ssname ss (setq i (1- i))) ty (cdr (Assoc 0 (Entget en))))
(cond
((= ty "TEXT") (Entmod (subst(cons 40 300)(Assoc 40(Entget en))(Entget en))))
((= ty "MTEXT") (Entmod (subst(cons 40 300)(Assoc 40(Entget en))(Entget en))))
((= ty "CIRCLE") (Entmod (subst(cons 40 75) (Assoc 40 (Entget en))(Entget en))))
)
)
)
) 什么叫编组? ;;这个更通用一点的
(Defun C:tt (/ en i ss ty)
(setq *th* (ureal 1 "" "文字高度" *th*))
(setq *cr* (ureal 1 "" "圆半径" *cr*))
(if (setq i-1 ss (ssget '((0 . "*TEXT,CIRCLE"))))
(progn
(repeat (setq i (sslength ss))
(setq en (ssname ss (setq i (1- i)))
ty (cdr (Assoc 0 (Entget en)))
)(setq cr (/ *cr* 2))
(cond
((= ty "TEXT") (Entmod (subst (cons 40 *th*) (Assoc 40 (Entget en)) (Entget en))))
((= ty "MTEXT") (Entmod (subst (cons 40 *th*) (Assoc 40 (Entget en)) (Entget en))))
((= ty "CIRCLE") (Entmod (subst (cons 40 cr) (Assoc 40 (Entget en)) (Entget en))))
)
)
)
)(princ)
)
;;udist 函数地址:http://bbs.mjtd.com/thread-99928-1-1.html 1993063 发表于 2013-12-7 21:49 static/image/common/back.gif
非常感谢,程序完全满足我的初衷,同时楼下的朋友那个程序似乎要更灵活一些,补充了我的需求,可惜最佳答案只能选一个,非常感谢你第一时间为我解答! edata 发表于 2013-12-7 21:14 static/image/common/back.gif
。。。。
万分感谢你和“1993063”这位朋友,你们的程序都完全满足我的需求,你的这个更灵活些,惊喜! 没事儿堆堆码 半听可乐 发表于 2013-12-7 04:38 static/image/common/back.gif
万分感谢你和“1993063”这位朋友,你们的程序都完全满足我的需求,你的这个更灵活些,惊喜!
楼主要自己学会简单的代码,其实像这样没技术含量