所有文字自身旋转180度,怎么写各位大佬
所有文字自身旋转180度,怎么写各位大佬.本帖最后由 llsheng_73 于 2014-1-23 09:10 编辑
把50组加180度
(setq ss(ssget'((0 . "TEXT"))))
(if ss(progn
(setq m(sslength ss)n 0)
(while(< n m)
(entmod(setq en(entget(ssname ss n))
n(1+ n)
en(subst(cons 50(+(cdr(assoc 50 en))pi))(assoc 50 en)en)))))) 二楼的方法也可以,但是那样做有一个坏处,就是旋转180之后,文字的位置就变了。你这可以试试这个,不光文字,其他的也行,原地翻转180.(defun c:gfz (/cmn osnss i n ssn ssndata ssnsty pt ptmin ptmax cenpt
*error* msg)
(defun *error* (msg)
(if
(wcmatch msg "; 错误:,函数被取消")
(progn
(setvar 'cmdecho cmn)
(setvar 'osmode osn)
(princ)
)
(princ msg)
)
)
(setq cmn (getvar 'cmdecho))
(setq osn (getvar 'osmode))
(setvar 'cmdecho 0)
(setvar 'osmode 0)
(princ"\n选择要原地反转的对象:")
(setq ss (ssget ))
(setq i 0)
(setq n (sslength ss))
(repeat n
(setq ssn (vlax-ename->vla-object (ssname ss i)))
(vla-GetBoundingBox ssn 'ptmax 'ptmin)
(setq pt (mapcar '(lambda (a b) (/ (+ a b) 2))
(vlax-safearray->list ptmax)
(vlax-safearray->list ptmin)
)
)
(vlax-invoke-method
ssn
'rotate
(vlax-3d-point pt)
pi
)
(setq i (1+ i))
)
(command "ucs" "")
(setvar 'cmdecho cmn)
(setvar 'osmode osn)
(princ "\n命令:GFZ,BY gruel: 稀粥。")
(princ)
) 哥太服你了,真棒,谢谢哥,
程序非常给力 感谢 wuqiu1986分享程序! 程序非常给力 这个函数是不是还要加上一个判断函数?判断对象能不能GetBoundingBox?其实我想如果该对象没有这个GetBoundingBox 原地反转就无所谓了 学习一下好程序 海盗曹 发表于 2014-1-24 16:51 static/image/common/back.gif
学习一下好程序
看来你又开始研究LSP了啊 tianyi1230 发表于 2014-1-24 17:11 static/image/common/back.gif
看来你又开始研究LSP了啊
木,只是看看。。。
页:
[1]
2