找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1039|回复: 0

[教学] API应用 将曲线选择集交点分配到曲线上

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2014-10-3 17:44:41 | 显示全部楼层 |阅读模式

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

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

×
便于后续处理, 返回曲线及交点处参数
  1. (defun c:tt (/ ss pts lst _removedup)
  2.   (defun _removedup (lst / nl)
  3.     (while lst
  4.       (if nl
  5.         (if (equal (car lst) (car nl) 1e-3)
  6.           (setq lst (cdr lst))
  7.           (setq        nl  (cons (car lst) nl)
  8.                 lst (cdr lst)
  9.           )
  10.         )
  11.         (setq nl  (cons (car lst) nl)
  12.               lst (cdr lst)
  13.         )
  14.       )
  15.     )
  16.     (reverse nl)
  17.   )
  18.   (if (setq ss (ssget '((0 . "line"))))
  19.     (progn
  20.       (setq pts        (xdrx_curve_getinters ss 0)
  21.             lst        (xdrx_pickset->ents ss)
  22.             lst        (vl-remove
  23.                   nil
  24.                   (mapcar '(lambda (e / npl)
  25.                              (if (setq npl (vl-remove-if-not
  26.                                              '(lambda (p) (xdrx_point_ison p e))
  27.                                              pts
  28.                                            )
  29.                                  )
  30.                                (cons e npl)
  31.                                nil
  32.                              )
  33.                            )
  34.                           lst
  35.                   )
  36.                 )
  37.             lst        (vl-remove-if
  38.                   '(lambda (c)
  39.                      (not (cadr c))
  40.                    );_去除交点是端点的线
  41.                   (mapcar
  42.                     '(lambda (x)
  43.                        (cons
  44.                          (car x)
  45.                          (vl-remove-if
  46.                            '(lambda (a)
  47.                               (or (equal
  48.                                     (xdrx_curve_getstartparam
  49.                                       (car x)
  50.                                     )
  51.                                     a
  52.                                     1e-3
  53.                                   )
  54.                                   (equal
  55.                                     (xdrx_curve_getendparam
  56.                                       (car x)
  57.                                     )
  58.                                     a
  59.                                     1e-3
  60.                                   )
  61.                               )
  62.                             );_去除端点
  63.                            (_removedup
  64.                              (vl-sort
  65.                                (mapcar
  66.                                  '(lambda (b)
  67.                                     (xdrx_curve_getparamatpoint
  68.                                       (car x)
  69.                                       b
  70.                                     )
  71.                                   )
  72.                                  (cdr x)
  73.                                )
  74.                                '<
  75.                              )
  76.                            );_消除重点
  77.                          )
  78.                        )
  79.                      )
  80.                     lst
  81.                   )
  82.                 )
  83.       )
  84.     )
  85.   )
  86.   (princ lst)
  87.   (princ)
  88. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-26 17:41 , Processed in 0.347325 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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