yangchao2005090 发表于 2018-7-25 16:18:09

【捣鼓出来了】求修改

本帖最后由 yangchao2005090 于 2018-7-25 21:25 编辑

(defun c:tt(/ x k s n m en r)
(vl-load-com)
(setq x(getangle"\n输入需要旋转的角度<归0>:"))
(if(null x)(setq x 0 k nil) (setq k t))
(setq s(ssget'((0 . "INSERT,text,mtext"))))
(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)
)您好,这是论坛的edata的一段代码,但是默认是归零的,如果改成180,非水平方向的箭头旋转不是180度,请问如何修改能默认成180度呀,也就是掉个头,工作中有时需要反向,不是归零

yangchao2005090 发表于 2018-7-25 22:04:40

(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)
)

evayleung 发表于 2018-7-25 23:32:06

(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))

evayleung 发表于 2018-7-25 23:33:37

作者原意是
(if(null x)(setq x 0 k nil) (setq k t))
如果没X,(setq x 0 k nil)
如果有X,(setq k t)

yangchao2005090 发表于 2018-7-26 06:51:06

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,什么都不用输入呀,其他角度用不到,初学这个,只会改改,如果有不对的,希望多多指教

namezg 发表于 2018-7-26 15:18:02

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

yangchao2005090 发表于 2018-7-26 19:10:23

namezg 发表于 2018-7-26 15:18
;原代码有点啰嗦,我改了一下,两种不知你要哪一种(defun c:tt (/ s x n en r)
      (vl-load-com)
   ...

第二种正是想要的,太感谢了
页: [1]
查看完整版本: 【捣鼓出来了】求修改