明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 961|回复: 6

[【Gu_xl】] 【捣鼓出来了】求修改

[复制链接]
发表于 2018-7-25 16:18 | 显示全部楼层 |阅读模式
本帖最后由 yangchao2005090 于 2018-7-25 21:25 编辑
  1. (defun c:tt(/ x k s n m en r)
  2.   (vl-load-com)
  3.   (setq x(getangle"\n输入需要旋转的角度<归0>:"))
  4.   (if(null x)(setq x 0 k nil) (setq k t))
  5.   (setq s(ssget'((0 . "INSERT,text,mtext"))))
  6.   (if s
  7.     (progn
  8.       (setq n(sslength s)m 0)
  9.       (while(< m n)
  10.         (setq en(ssname s m)
  11.           m(1+ m))
  12.         (if k(setq r (+ (cdr(assoc 50 (entget en))) x))(setq r x))
  13.         (vla-put-Rotation (vlax-ename->vla-object en) r)
  14.       )
  15.     )
  16.   )
  17.   (princ)
  18. )
您好,这是论坛的edata的一段代码,但是默认是归零的,如果改成180,非水平方向的箭头旋转不是180度,请问如何修改能默认成180度呀,也就是掉个头,工作中有时需要反向,不是归零
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2018-7-25 22:04 | 显示全部楼层
(defun c:tt(/ x k s n m en r)
  (vl-load-com)
        (setq s(ssget'((0 . "INSERT,text,mtext"))))
        (setq x(getangle"\n输入需要旋转的角度:"))
        (if(null x)(setq x 180))
        (setq x pi k nil)(setq k t)
  (if s
    (progn
      (setq n(sslength s)m 0)
      (while(< m n)
        (setq en(ssname s m) m (1+ m))
        (if k(setq r (+ (cdr(assoc 50 (entget en))) x))(setq r x))
        (vla-put-Rotation (vlax-ename->vla-object en) r)
                        )
                )
        )
  (princ)
)
发表于 2018-7-25 23:32 | 显示全部楼层
(setq x(getangle"\n输入需要旋转的角度:"))
(if(null x)(setq x 180))
(setq x pi k nil)(setq k t)
这倒底是想干嘛子?
最终结果是什么都不用输入同,直接X=PI,K=T了、
既然K都是T了,那这段也不用IF了(if k(setq r (+ (cdr(assoc 50 (entget en))) x))(setq r x))
发表于 2018-7-25 23:33 | 显示全部楼层
作者原意是
(if(null x)(setq x 0 k nil) (setq k t))
如果没X,(setq x 0 k nil)
如果有X,(setq k t)
 楼主| 发表于 2018-7-26 06:51 | 显示全部楼层
evayleung 发表于 2018-7-25 23:32
(setq x(getangle"\n输入需要旋转的角度:"))
(if(null x)(setq x 180))
(setq x pi k nil)(setq k t)

就是想默认180,什么都不用输入呀,其他角度用不到,初学这个,只会改改,如果有不对的,希望多多指教
发表于 2018-7-26 15:18 | 显示全部楼层
本帖最后由 namezg 于 2018-7-26 15:33 编辑

;原代码有点啰嗦,我改了一下,两种不知你要哪一种(defun c:tt (/ s x n en r)
        (vl-load-com)
        (setq s (ssget '((0 . "INSERT,text,mtext"))))
        (setq x (getangle"\n输入需要旋转的角度<180>: "))
        (if (and s (/= x 0))
                (repeat (setq n (sslength s))
                        (setq en (ssname s (setq n (1- n))))
                        (if x
                                (setq r (+ (cdr(assoc 50 (entget en))) x))
                                (setq r pi)
                        )
                        (vla-put-Rotation (vlax-ename->vla-object en) r)
                )
        )
        (princ)
)


(defun c:tt (/ s x n en r)
        (vl-load-com)
        (setq s (ssget '((0 . "INSERT,text,mtext"))))
        (if (not (setq x (getangle"\n输入需要旋转的角度<180>: ")))
                (setq x pi)
        )
        (if (and s (/= x 0))
                (repeat (setq n (sslength s))
                        (setq en (ssname s (setq n (1- n))))
                        (setq r (+ (cdr(assoc 50 (entget en))) x))
                        (vla-put-Rotation (vlax-ename->vla-object en) r)
                )
        )
        (princ)
)
 楼主| 发表于 2018-7-26 19:10 | 显示全部楼层
namezg 发表于 2018-7-26 15:18
;原代码有点啰嗦,我改了一下,两种不知你要哪一种(defun c:tt (/ s x n en r)
        (vl-load-com)
   ...

第二种正是想要的,太感谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 08:10 , Processed in 0.224720 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表