357785513 发表于 2014-1-23 08:39:34

所有文字自身旋转180度,怎么写各位大佬

所有文字自身旋转180度,怎么写各位大佬.

llsheng_73 发表于 2014-1-23 09:04:58

本帖最后由 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))))))

wuqiu1986 发表于 2014-1-23 09:53:39

二楼的方法也可以,但是那样做有一个坏处,就是旋转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)
)

357785513 发表于 2014-1-23 11:09:18

哥太服你了,真棒,谢谢哥,
程序非常给力

yoyoho 发表于 2014-1-23 11:45:58

感谢 wuqiu1986分享程序!

香田里浪人 发表于 2014-1-23 14:00:59

程序非常给力

564837358@qq.co 发表于 2014-1-23 19:47:35

这个函数是不是还要加上一个判断函数?判断对象能不能GetBoundingBox?其实我想如果该对象没有这个GetBoundingBox 原地反转就无所谓了

海盗曹 发表于 2014-1-24 16:51:43

学习一下好程序

tianyi1230 发表于 2014-1-24 17:11:00

海盗曹 发表于 2014-1-24 16:51 static/image/common/back.gif
学习一下好程序

看来你又开始研究LSP了啊

海盗曹 发表于 2014-1-26 14:11:55

tianyi1230 发表于 2014-1-24 17:11 static/image/common/back.gif
看来你又开始研究LSP了啊

木,只是看看。。。
页: [1] 2
查看完整版本: 所有文字自身旋转180度,怎么写各位大佬