永不言弃 发表于 2023-7-9 14:04:19

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

本帖最后由 永不言弃 于 2023-7-10 11:13 编辑

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





永不言弃 发表于 2023-7-10 11:05:42

本帖最后由 永不言弃 于 2023-7-10 11:27 编辑

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

xyp1964 发表于 2023-7-9 14:22:16

求交后再取前后两个点的坐标

vitalgg 发表于 2023-7-9 14:30:14

本帖最后由 vitalgg 于 2023-7-9 15:54 编辑

(defun c:tt ()
(setq pts1 (curve:get-points (car (entsel "第1条曲线"))))
(setq pts2 (curve:get-points (car (entsel "第2条曲线"))))
(setq res (list:intersect pts1 pts2))
;; 判断pts2 起点是否在 res内,如果是,则调整 res,
;; 然后 测试pts2 的第二点 直到不是为止
(if (list:member (car pts2) res 0.001)
    (progn
      (setq i 0)
      (while (list:member (nth i pts2) res 0.001)
      (setq res (reverse res))
      (setq res (append (cdr res) (list (car res))))
      (setq res (reverse res))
      (setq i (1+ i))
      )
    )
)
;; 两端点作一直线
(entity:make-line (car res) (last res))
)


命令: (fun:usage 'list:intersect)
*** 函数名:list:intersect
---------------
说明: 求两个列表集合的交集
用法: (list:intersect lst1 lst2)
参数: 1 lst1: 列表;2 lst2: 列表;
返回值: List
示例:
命令: (fun:usage 'curve:get-points)
*** 函数名:curve:get-points
---------------
说明: 曲线控制点及端点列表,返回点坐标。
用法: (curve:get-points ent)
参数: 1 ent: 单个图元;
返回值: 点坐标列表
示例: (curve:get-points (car (entsel)))

https://atlisp.cn/static/videos/intersect.mp4

多段线起点在重合边界的测试:
https://atlisp.cn/static/videos/intersect2.mp4

永不言弃 发表于 2023-7-9 14:44:49

xyp1964 发表于 2023-7-9 14:22
求交后再取前后两个点的坐标


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

永不言弃 发表于 2023-7-9 14:58:25

vitalgg 发表于 2023-7-9 14:30


看了你的很多帖子,目前还没搞明白CAD应用云是怎么用的,我是业余的,没事时研究研究

vitalgg 发表于 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 安装核心程序。




xyp1964 发表于 2023-7-9 17:43:43

永不言弃 发表于 2023-7-9 14:44
估计与线的起点位置有关,有时候会乱

按所给图测试没问题,看动图

永不言弃 发表于 2023-7-9 18:43:24

xyp1964 发表于 2023-7-9 17:43
按所给图测试没问题,看动图

谢谢院长,处理好了

xyp1964 发表于 2023-7-9 22:35:28

起点在哪里都可以处理


页: [1] 2
查看完整版本: 请大神们指点一下,怎么快速求出这两条闭合线两端的交点坐标(已解决)