找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1111|回复: 5

[曲线] (XD::Curve:OverLaps)获取两曲线重叠部分的数据

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-3-31 20:52:59 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Curve:OverLaps
调用格式: (XD::Curve:OverLaps e1 e2)
参数说明: e1 ---------------- 曲线实体或几何实体
e2 ---------------- 曲线实体或几何实体
返回值: 点表
(((曲线1上重叠段1长度 起始参数 结束参数))..(曲线1上重叠段n长度 起始参数 结束参数)))((曲线2上重叠段1长度 起始参数 结束参数))..(曲线2上重叠段n长度 起始参数 结束参数)))
函数简介: 获取两曲线重叠部分的数据
函数来源: 原创
函数作者: Newer
适用版本: XDRX API 
最后更新时间: 2018-03-31
备注: 命令: (xd::curve:overlaps e1 e2)
(((278.332 6.0 7.0) (244.4 2.0 3.0)) ((278.332 4.43307 4.93934) (244.4 3.44686 3.89141)))
演示图片:

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

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

×
本帖最后由 newer 于 2018-3-31 22:30 编辑

  1. (defun XD::Curve:OverLaps (g1 g2 / #lowerbound #upperbound ent0 ent1 gint
  2.                               g-lst i int1 int2 j len1 lst lst1 overlap
  3.                               overlap-nums x
  4.                           )
  5.   (if (and
  6.         (= (type g1) 'ENAME)
  7.         (= (type g2) 'ENAME)
  8.         (or
  9.           (xdge::type g1)
  10.           (setq ent0 g1
  11.                 g1 (xdge::constructor g1)
  12.           )
  13.         )
  14.         (setq g-lst (cons g1 g-lst))
  15.         (or
  16.           (xdge::type g2)
  17.           (setq ent1 g2
  18.                 g2 (xdge::constructor g2)
  19.           )
  20.         )
  21.         (setq g-lst (cons g2 g-lst))
  22.       )
  23.     (progn
  24.       (if (not (xdge::type g1))
  25.         (setq ent0 g1
  26.               g1 (xdge::constructor g1)
  27.               g-lst (cons g1 g-lst)
  28.         )
  29.       )
  30.       (if (not (xdge::type g2))
  31.         (setq ent1 g2
  32.               g2 (xdge::constructor g2)
  33.               g-lst (cons g2 g-lst)
  34.         )
  35.       )
  36.       (if (and
  37.             (setq gint (xdge::constructor "kCurveCurveInt3d" g1 g2))
  38.             (> (setq overlap-nums (xdge::getpropertyvalue gint
  39.                                                           "overlapcount"
  40.                                   )
  41.                )
  42.                0
  43.             )
  44.           )
  45.         (progn
  46.           (setq g-lst (cons gint g-lst))
  47.           (setq i -1
  48.                 lst nil
  49.                 lst nil
  50.           )
  51.           (repeat overlap-nums
  52.             (if (setq overlap (xdge::getpropertyvalue gint
  53.                                                       "getoverlapranges"
  54.                                                       (setq i (1+ i))
  55.                               )
  56.                 )
  57.               (progn
  58.                 (setq g-lst (cons overlap g-lst))
  59.                 (setq j 0)
  60.                 (setq int1 (xdge::getpropertyvalue (car overlap)
  61.                                                    "lowerbound" "upperbound"
  62.                            )
  63.                       int2 (xdge::getpropertyvalue (cadr overlap)
  64.                                                    "lowerbound" "upperbound"
  65.                            )
  66.                       len1 (xdge::getpropertyvalue g1 "length" #lowerbound
  67.                                                    #upperbound
  68.                            )
  69.                 )
  70.                 (if ent0
  71.                   (setq int1 (mapcar
  72.                                '(lambda (x)
  73.                                   (xdrx_curve_getparamatdist ent0 x)
  74.                                 )
  75.                                int1
  76.                              )
  77.                   )
  78.                 )
  79.                 (if ent1
  80.                   (setq int2 (mapcar
  81.                                '(lambda (x)
  82.                                   (xdrx_curve_getparamatdist ent1 x)
  83.                                 )
  84.                                int2
  85.                              )
  86.                   )
  87.                 )
  88.                 (setq lst1 (cons g1 (cons len1 int1))
  89.                       lst (cons lst1 lst)
  90.                       lst1 (cons g2 (cons len1 int2))
  91.                       lst (cons lst1 lst)
  92.                 )
  93.               )
  94.             )
  95.           )
  96.           (setq lst (xd::list:groupbyindex lst 0.1))
  97.           (setq lst (mapcar
  98.                       'cdr
  99.                       (list (assoc g1 lst) (assoc g2 lst))
  100.                     )
  101.           )
  102.         )
  103.       )
  104.     )
  105.   )
  106.   (xdge::free g-lst)
  107.   lst
  108. )


命令: (xd::curve:overlaps e1 e2)
(((278.332 6.0 7.0) (244.4 2.0 3.0)) ((278.332 4.43307 4.93934) (244.4 3.44686 3.89141)))

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

已领礼包: 1304个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 4803个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 14个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 14个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:14 , Processed in 0.350152 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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