如何抓取线中点,得知该线段的角度?
请教选择一绦在线的一个中点如何求得这条线段的角度下面是现使用的取角度模式, (setqen(entsel "\n选择像素:"))(setqpt(cadr en))(setqpt1(osnap pt "near"))(setqpt2(osnap pt "end"))(setqa(angle pt1 pt2))(setqang(-(*(/ a pi)180)90)) 但现在功能上的须求只能使用抓取线中点的模式今天试了几种方式还是有点问题!请各位有空指导一下!!谢谢!!
本帖最后由 ZZXXQQ 于 2013-12-24 08:30 编辑
(setq en(entsel "\n选择像素:"))
(setq ent (entget(car en)))
(if (= (cdr(assoc 0 ent)) "LINE") (progn
(setq pt1 (cdr(assoc 10 ent))
(setq pt2 (cdr(assoc 11 ent))
(setq a(angle pt1 pt2))
(setq ptm (mapcar '(lambda (a b) (/ (+ a b) 2)) pt1 pt2))
(setq ang(/(* a 180) pi))
))
写的有问题,但主要问题不在这里,主要问题是取首尾点不应该使用osnap的方法,这种方法在线条复杂时是不保险的,因为osnap是基于pt点的,与线条本身并无关系,所以可能取到其它线条,也就不会是正确的结果了。
这个问题应该在entsel取得线条后使用实体表的10、11组码来解决,那样就不会错了。 謝謝兩位的指導。我用osnap的方法是書上學來的。一直以來使用上也沒什問題!在osnap的基楚去運作程序是還沒遇到ll_j說說的問題。版主幫改的範例透過 10,11的組碼一定不會有問題。但如我是要取復線某一線段的角度及中點那該如何處理??謝謝 噢!手機上網還沒試Z版幫改的程序,先向z版說聲 抱歉。及另兩位謝謝
页:
[1]