明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1608|回复: 4

[已解答] 如何抓取线中点,得知该线段的角度?

[复制链接]
发表于 2013-12-23 23:11:27 | 显示全部楼层 |阅读模式
请教
选择一绦在线的一个中点
如何求得这条线段的角度
下面是现使用的取角度模式,
(setqen(entsel "\n选择像素:"))
(setqpt(cadr en))
(setqpt1(osnap pt "near"))
(setqpt2(osnap pt "end"))
(setqa(angle pt1 pt2))
(setqang(-(*(/ a pi)180)90))
但现在功能上的须求只能使用抓取线中点的模式
今天试了几种方式还是有点问题!
请各位有空指导一下!!

谢谢!!


发表于 2013-12-24 08:00:47 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2013-12-24 08:30 编辑
  1. (setq en(entsel "\n选择像素:"))
  2. (setq ent (entget(car en)))
  3. (if (= (cdr(assoc 0 ent)) "LINE") (progn
  4. (setq pt1 (cdr(assoc 10 ent))
  5. (setq pt2 (cdr(assoc 11 ent))
  6. (setq a(angle pt1 pt2))
  7. (setq ptm (mapcar '(lambda (a b) (/ (+ a b) 2)) pt1 pt2))
  8. (setq ang(/(* a 180) pi))
  9. ))
发表于 2013-12-24 08:15:31 | 显示全部楼层
写的有问题,但主要问题不在这里,主要问题是取首尾点不应该使用osnap的方法,这种方法在线条复杂时是不保险的,因为osnap是基于pt点的,与线条本身并无关系,所以可能取到其它线条,也就不会是正确的结果了。
这个问题应该在entsel取得线条后使用实体表的10、11组码来解决,那样就不会错了。
 楼主| 发表于 2013-12-24 09:42:52 | 显示全部楼层
謝謝兩位的指導。我用osnap的方法是書上學來的。一直以來使用上也沒什問題!在osnap的基楚去運作程序是還沒遇到ll_j說說的問題。版主幫改的範例透過 10,11的組碼一定不會有問題。但如我是要取復線某一線段的角度及中點那該如何處理??謝謝

点评

Z版已经告诉你了ptm就是中点,ang就是角度  发表于 2013-12-24 10:49
 楼主| 发表于 2013-12-24 11:52:14 | 显示全部楼层
噢!手機上網還沒試Z版幫改的程序,先向z版說聲 抱歉。及另兩位謝謝
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-29 09:38 , Processed in 0.210499 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表