如何读取文字角度
本帖最后由 朽木大师 于 2013-8-30 15:29 编辑(setq ObjName0 (car (entsel "\n 选择目标: ")))
(setq Data0 (entget ObjName0))
(setq AngT (cdr(assoc 50 Data0)))
(SETQ ang (* (/ AngT PI)180))
总是不对
你发现到底哪儿不对劲? 自贡黄明儒 发表于 2013-8-30 15:37 static/image/common/back.gif
你发现到底哪儿不对劲?
(defun c:tt()
(setq ObjName0 (car (entsel "\n 选择目标: ")))
(setq Data0 (entget ObjName0))
(setq AngT (cdr(assoc 50 Data0)))
(SETQ ang (* (/ AngT PI)180))
(princ "ang=")(princ ang)
(princ "选择要修改的文字,可多选")
(setq ss (ssget '((-4 . "<OR")(0 . "TEXT")(0 . "MTEXT")(-4 . "OR>"))))
(setq k 0)
(repeat (sslength ss)
(progn
(setq ent (ssname ss k))
(setq ents (entget ent))
(setq ents (subst (cons 50 ang) (assoc 50 ents) ents))
(entmod ents)
(entupd ent)
(setq k (1+ k))
)
)
(princ)
)
我试了一下,有些文字可以把角度刷过来,有些就出错 都要以弧度进行 自贡黄明儒 发表于 2013-8-30 16:12 static/image/common/back.gif
都要以弧度进行
(setq ents (subst (cons 50 ang) (assoc 50 ents) ents)) 我测试过,ang是直接输入角度就可以 朽木大师 发表于 2013-8-30 16:17 static/image/common/back.gif
(setq ents (subst (cons 50 ang) (assoc 50 ents) ents)) 我测试过,ang是直接输入角度就可以
角度输入输出是有这点绕人的地方,输入是与当前图形的角度单位(units)有关的,一般是使用度或度分秒,所以输入角或度分秒是直接输入,而输入弧度要带r(比如3.14r),如果设置角度单位为弧度,则输入弧度为直接输入。
不管怎样输入,angle(或getangle)输出的单位都是弧度,组码中的角度值也是弧度。 非常感谢上面两位兄弟的帮助 学习到不少!
页:
[1]