求师傅帮忙错在哪??
(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
) 注意半角括号
大致改了下,自己再优化下。
(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")
)
)
) 仲文玉 发表于 2013-5-8 20:27 static/image/common/back.gif
注意半角括号
大致改了下,自己再优化下。
(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢 54525596 发表于 2013-5-10 18:46 static/image/common/back.gif
(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢
哦,我懂了。。就是反回次数,这样就一次可以返回到原来结果。。。谢谢
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")
)
)
) 各位,插句嘴,不好意思,楼主没说错误提示,各位就判断出错误类型了?
也许各位都看出来了,command一句少了一对双引号。
不过各位试试看,如果在定义文字样式时确定了字高,还是这样么? 确实如上几位所言,
(command "_.text" "j" "mc" po "1.5" a gj) 沒看到X1、X2的定義 lsjj 发表于 2013-5-11 11:31 static/image/common/back.gif
沒看到X1、X2的定義
哦,是先想试一下。。所以。。不好意思,现在可以了。。谢谢啊,,
页:
[1]