找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 895|回复: 16

[求助] angle问题,来个大神告诉我错在哪里了- -

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2019-4-22 05:44:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(setq jiaodu 1)
  (repeat (- tt 1)
     (set (read (strcat "ang" (itoa jiaodu)))
          (angle (eval (read (strcat "d"(itoa jiaodu)))) (eval (read (strcat "d"(itoa (1+ jiaodu)))))))
    (setq jiaodu(1+ jiaodu))
    )

35d83372df0f66586629f936ed2c68e.png e8de37e6390d026e4d32e8d146c723c.png

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6468个

财富等级: 富甲天下

发表于 2019-4-22 08:23:00 | 显示全部楼层
你想要求什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-4-22 08:42:51 | 显示全部楼层
;;angle函数得到的是两点连线(注意方向)与当前坐标系下x轴之间的夹角
;;如果你要获得的是两条线之间的夹角,可以通过angle函数得到的结果做差
;;注意:需要确定是顺时针方向或是逆时针方向的夹角
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2019-4-22 10:27:10 | 显示全部楼层
这个函数应该简单的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 11:49:22 | 显示全部楼层
satan421 发表于 2019-4-22 08:42
;;angle函数得到的是两点连线(注意方向)与当前坐标系下x轴之间的夹角
;;如果你要获得的是两条线之间的夹角 ...

我想知道的是  为什么    ang2(angle d2 d3)    和ang3(angle d3 d4)   的返回值是一样的。

点评

建议你检查一下d2 d3 d4的坐标  详情 回复 发表于 2019-4-22 11:54
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-4-22 11:54:05 | 显示全部楼层
CQ467959301 发表于 2019-4-22 11:49
我想知道的是  为什么    ang2(angle d2 d3)    和ang3(angle d3 d4)   的返回值是一样的。

建议你检查一下d2 d3 d4的坐标
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 12:00:30 | 显示全部楼层

我最终的目的是
       判断  每条直线  和(d4 d5)   如果平行 执行一个条件
                                             如果垂直 执行第二个条件
                                             不平行也不垂直,执行第三个
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 12:03:17 | 显示全部楼层
satan421 发表于 2019-4-22 11:54
建议你检查一下d2 d3 d4的坐标

D3的坐标是没问题的。    我单独执行(setq ang3(angle d3 d4))就没问题     。这样循环判断就出错了

点评

;;如果按照你的表达式的写法,对应你的图 ;;ang1 (也就是 (angle d1 d2))应该是4.71239,以此类推 ang2 0.0 ... ;;所以,感觉还是点的坐标或者点顺序有问题  详情 回复 发表于 2019-4-22 13:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-4-22 13:06:13 | 显示全部楼层
CQ467959301 发表于 2019-4-22 12:03
D3的坐标是没问题的。    我单独执行(setq ang3(angle d3 d4))就没问题     。这样循环判断就出错了

;;如果按照你的表达式的写法,对应你的图
;;ang1 (也就是 (angle d1 d2))应该是4.71239,以此类推 ang2 0.0 ...
;;所以,感觉还是点的坐标或者点顺序有问题

点评

是这样的 这个d1----d9是多段线的9个点 多段线的定点是按顺序的呀  详情 回复 发表于 2019-4-22 19:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 19:31:09 | 显示全部楼层
satan421 发表于 2019-4-22 13:06
;;如果按照你的表达式的写法,对应你的图
;;ang1 (也就是 (angle d1 d2))应该是4.71239,以此类推 ang2  ...

是这样的   这个d1----d9是多段线的9个点     多段线的定点是按顺序的呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-4-22 20:55:48 | 显示全部楼层
CQ467959301 发表于 2019-4-22 11:49
我想知道的是  为什么    ang2(angle d2 d3)    和ang3(angle d3 d4)   的返回值是一样的。

你把D2,D3,D4坐标打印出来,看看是什么

点评

命令: !d1 (10 1010.72 452.8) 命令: !d2 (10 1010.72 446.8) 命令: !d3 (10 1016.72 446.8) 命令: !d4 (10 1027.8 456.82) 命令: !d5 (10 1027.8 471.82) 命令: !d6 (10 1022.8 471.82) 命令: !d7 (10  详情 回复 发表于 2019-4-22 22:54
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 22:54:56 | 显示全部楼层
Lisphk 发表于 2019-4-22 20:55
你把D2,D3,D4坐标打印出来,看看是什么

命令: !d1 (10 1010.72 452.8)
命令: !d2
(10 1010.72 446.8)
命令: !d3
(10 1016.72 446.8)
命令: !d4
(10 1027.8 456.82)
命令: !d5
(10 1027.8 471.82)
命令: !d6
(10 1022.8 471.82)
命令: !d7
(10 1022.8 466.82)
命令: !d8
(10 1012.8 466.82)
命令: !d9
(10 1012.8 461.82)
命令: !ang1 0.0
命令:
ERASE
选择对象: *取消*
命令: !ang2
1.5708
命令: !ang3
1.5708
命令: !ang4
0.0
命令: !ang5
4.71239
命令: !ang6
0.0
命令: !ang7
4.71239
命令: !ang8
0.0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-4-22 23:49:17 | 显示全部楼层
本帖最后由 satan421 于 2019-4-22 23:50 编辑

d2、d3一样的,好多都一样的,点表有问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-4-22 23:51:40 | 显示全部楼层
CQ467959301 发表于 2019-4-22 22:54
命令: !d1 (10 1010.72 452.8)
命令: !d2
(10 1010.72 446.8)

你的多段线有重点,要先去除重点,再做别的

点评

选择对象: ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 . "123") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbPolyline") (90 . 9) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 111  详情 回复 发表于 2019-4-22 23:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-22 23:58:51 | 显示全部楼层
本帖最后由 CQ467959301 于 2019-4-23 00:18 编辑
Lisphk 发表于 2019-4-22 23:51
你的多段线有重点,要先去除重点,再做别的
图形是我用PL画的点不会有重复点的
命令: !d1
(10 955.612 411.983)
命令: !d2
(10 955.612 405.983)
命令: !d3
(10 961.612 405.983)
命令: !d4
(10 983.75 421.232)
命令: !d5
(10 983.75 434.269)
命令: !d6
(10 973.463 434.269)
命令: !d7
(10 973.463 428.594)
命令: !d8
(10 966.093 428.594)
命令: !d9
(10 966.093 424.3)
命令: !ang1
0.0
命令: !ang2
1.5708
命令: !ang3
1.5708
命令: !ang4
0.0
命令: !ang5
4.71239
命令: !ang6
0.0
命令: !ang7
4.71239
命令: !ang8
0.0
命令: *取消*
命令: (entget (car (entsel)))
选择对象: ((-1 . <图元名: -179f28>) (0 . "LWPOLYLINE") (330 . <图元名: -17b308>) (5 .
"123") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbPolyline") (90 . 9) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 955.612
411.983) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 955.612 405.983) (40 . 0.0) (41 .
0.0) (42 . 0.0) (10 961.612 405.983) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
983.75 421.232) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 983.75 434.269) (40 . 0.0)
(41 . 0.0) (42 . 0.0) (10 973.463 434.269) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
973.463 428.594) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 966.093 428.594) (40 .
0.0) (41 . 0.0) (42 . 0.0) (10 966.093 424.3) (40 . 0.0) (41 . 0.0) (42 . 0.0)
(210 0.0 0.0 1.0))






(defun c:tt( / aa tt a i ii jiaodu
            )
      (setq aa(vl-remove-if 'not (mapcar '(lambda (s) (if (= 10 (car s)) s)) (entget (car (entsel))))))
      (setq tt (length aa))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      (setq ii 0 )
      (setq i 1)
   (repeat tt
         (set (read (strcat "d" (itoa i))) (nth ii aa))
         (setq i (1+ i))
         (setq ii (1+ ii))
     )
            (setq jiaodu 1)
     (repeat (- tt 1)
     (set (read (strcat "ang" (itoa jiaodu)))
          (angle (eval (read (strcat "d"(itoa jiaodu)))) (eval (read (strcat "d"(itoa (1+ jiaodu)))))))
          (setq jiaodu(1+ jiaodu))
         )
            )
           
            

点评

你的点表aa包含组码10呢,你得先去掉组码再用angle求方位角 (set (read (strcat "ang" (itoa jiaodu))) (angle (cdr(eval (read (strcat "d" (itoa jiaodu))))) (cdr(eval (read (strcat "d" (itoa (1+ j  详情 回复 发表于 2019-4-23 08:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-27 06:38 , Processed in 0.281008 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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