54525596 发表于 2013-5-8 17:39:08

求师傅帮忙错在哪??

(defun c:tt()
(setq gj (getstring "\n请输入文字:"))

(if(setq ss (ssget '(0."line")))

(progn

(setq i 0)

(repeat (sslength ss)

   (setq en (entget (ssname ss i)))

   (setq q1 (cdr (assoc 10 en)))

   (setq q2 (cdr (assoc 11 en)))               ; 获取端点坐标

   (setq a (/ (* 180 (angle q1 q2)) pi))

   (setq x2 (car q2))

   (setq y2 (cadr q2))

   (setq zz (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2))) ; 求中点坐标

   (setq i (+ i 1))

   (command "text" zz "1.5" a gj); 写文字
   
);退出progn

);退出repeat

);退出IF
   

)

仲文玉 发表于 2013-5-8 20:27:40

注意半角括号
大致改了下,自己再优化下。
(defun c:tt ()
(setq gj (getstring "\n请输入文字:"))
(if (setq ss (ssget '((0 . "line"))) i0)
    (progn
      (vl-cmdf "_.UNDO" "_BEGIN")
      (repeat (sslength ss)
(setq en (entget (ssname ss i))
      q1 (cdr (assoc 10 en))
      q2 (cdr (assoc 11 en))
      a (/ (* 180 (angle q1 q2)) pi)
      po (list (/ (+ (car q1)(car q2)) 2)(/ (+ (cadr q1)(cadr q2)) 2))
)
(command "_.text" "j" "mc" po 1.5 a gj "")
(setq i (1+ i))
      )
    (vl-cmdf "_.UNDO" "_END")
    )
)
)

54525596 发表于 2013-5-10 18:46:19

仲文玉 发表于 2013-5-8 20:27 static/image/common/back.gif
注意半角括号
大致改了下,自己再优化下。

(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢

54525596 发表于 2013-5-10 19:51:01

54525596 发表于 2013-5-10 18:46 static/image/common/back.gif
(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢

哦,我懂了。。就是反回次数,这样就一次可以返回到原来结果。。。谢谢

zml84 发表于 2013-5-10 20:03:42

2楼代码,略作修改。

(defun c:tt ()
(setq gj (getstring "\n请输入文字:"))
(if (setq i0
            ss (ssget '((0 . "line")));_修改第一处,调顺序。
      )
    (progn (vl-cmdf "_.UNDO" "_BEGIN")
         (repeat (sslength ss)
             (setq en (entget (ssname ss i))
                   q1 (cdr (assoc 10 en))
                   q2 (cdr (assoc 11 en))
                   a(/ (* 180 (angle q1 q2)) pi)
                   po (list (/ (+ (car q1) (car q2)) 2)
                            (/ (+ (cadr q1) (cadr q2)) 2)
                      )
             )
             (if (< 90 a 270) (setq a (- a 180)));_修改第二处,调角度。
             (command "_.text" "j" "mc" po 1.5 a gj "")
             (setq i (1+ i))
         )
         (vl-cmdf "_.UNDO" "_END")
    )
)
)

ll_j 发表于 2013-5-10 23:42:30

各位,插句嘴,不好意思,楼主没说错误提示,各位就判断出错误类型了?
也许各位都看出来了,command一句少了一对双引号。
不过各位试试看,如果在定义文字样式时确定了字高,还是这样么?

仲文玉 发表于 2013-5-11 07:44:02

确实如上几位所言,
(command "_.text" "j" "mc" po "1.5" a gj)

lsjj 发表于 2013-5-11 11:31:21

沒看到X1、X2的定義

54525596 发表于 2013-5-11 19:01:28

lsjj 发表于 2013-5-11 11:31 static/image/common/back.gif
沒看到X1、X2的定義

哦,是先想试一下。。所以。。不好意思,现在可以了。。谢谢啊,,
页: [1]
查看完整版本: 求师傅帮忙错在哪??