明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1160|回复: 10

[提问] 请大神们指点一下,怎么快速求出这两条闭合线两端的交点坐标(已解决)

[复制链接]
发表于 2023-7-9 14:04:19 | 显示全部楼层 |阅读模式
本帖最后由 永不言弃 于 2023-7-10 11:13 编辑

请大神们指点一下,怎么快速求出这两条闭合线两端的两个交点坐标





本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2023-7-10 11:05:42 | 显示全部楼层
本帖最后由 永不言弃 于 2023-7-10 11:27 编辑
xyp1964 发表于 2023-7-9 22:35
起点在哪里都可以处理

院长真牛,那个起点标记真是炫,我用了一个笨办法处理了,先求出两条线共同的坐标点,然后再判断起点是否在中间,最后计算出两端点,就是线的点太多,每条基本都是300个点以上的,计算有点慢

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-9 14:22:16 | 显示全部楼层
求交后再取前后两个点的坐标

本帖子中包含更多资源

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

x
发表于 2023-7-9 14:30:14 | 显示全部楼层
本帖最后由 vitalgg 于 2023-7-9 15:54 编辑

  1. (defun c:tt ()
  2.   (setq pts1 (curve:get-points (car (entsel "第1条曲线"))))
  3.   (setq pts2 (curve:get-points (car (entsel "第2条曲线"))))
  4.   (setq res (list:intersect pts1 pts2))
  5.   ;; 判断  pts2 起点是否在 res内,如果是,则调整 res,
  6.   ;; 然后 测试pts2 的第二点 直到不是为止
  7.   (if (list:member (car pts2) res 0.001)
  8.     (progn
  9.       (setq i 0)
  10.       (while (list:member (nth i pts2) res 0.001)
  11.         (setq res (reverse res))
  12.         (setq res (append (cdr res) (list (car res))))
  13.         (setq res (reverse res))
  14.         (setq i (1+ i))
  15.       )
  16.     )
  17.   )
  18.   ;; 两端点作一直线
  19.   (entity:make-line (car res) (last res))
  20. )



  1. 命令: (fun:usage 'list:intersect)
  2. *** 函数名:  list:intersect
  3. ---------------
  4. 说明: 求两个列表集合的交集
  5. 用法: (list:intersect lst1 lst2)
  6. 参数: 1 lst1  : 列表;2 lst2  : 列表;
  7. 返回值: List
  8. 示例:
  9. 命令: (fun:usage 'curve:get-points)
  10. *** 函数名:  curve:get-points
  11. ---------------
  12. 说明: 曲线控制点及端点列表,返回点坐标。
  13. 用法: (curve:get-points ent)
  14. 参数: 1 ent  : 单个图元;
  15. 返回值: 点坐标列表
  16. 示例: (curve:get-points (car (entsel)))
复制代码



多段线起点在重合边界的测试:

 楼主| 发表于 2023-7-9 14:44:49 | 显示全部楼层
xyp1964 发表于 2023-7-9 14:22
求交后再取前后两个点的坐标


估计与线的起点位置有关,有时候会乱

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-7-9 14:58:25 | 显示全部楼层

看了你的很多帖子,目前还没搞明白CAD应用云是怎么用的,我是业余的,没事时研究研究
发表于 2023-7-9 15:51:54 | 显示全部楼层
永不言弃 发表于 2023-7-9 14:58
看了你的很多帖子,目前还没搞明白CAD应用云是怎么用的,我是业余的,没事时研究研究

https://atlisp.cn 安装核心程序。


就可以运行上面提供的代码了。


多段线起点在重合边界的问题已修补。
 楼主| 发表于 2023-7-9 16:23:07 | 显示全部楼层
vitalgg 发表于 2023-7-9 15:51
到 https://atlisp.cn 安装核心程序。

发表于 2023-7-9 17:43:43 | 显示全部楼层
永不言弃 发表于 2023-7-9 14:44
估计与线的起点位置有关,有时候会乱

按所给图测试没问题,看动图
 楼主| 发表于 2023-7-9 18:43:24 | 显示全部楼层
xyp1964 发表于 2023-7-9 17:43
按所给图测试没问题,看动图

谢谢院长,处理好了
发表于 2023-7-9 22:35:28 | 显示全部楼层
起点在哪里都可以处理


本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-16 22:43 , Processed in 0.207443 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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