找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 718|回复: 2

[每日一码] 获得SPLINE的包围范围

[复制链接]

已领礼包: 10个

财富等级: 恭喜发财

发表于 2018-4-4 16:13:27 | 显示全部楼层 |阅读模式

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

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

×
总获帮助,把自己收集的代码分享给大家

(defun getSplineBoundingBox (e / p1 p2 d ax bb)
  (vla-getboundingbox (vlax-ename->vla-object e) 'p1 'p2)
  (setq        p1 (vlax-safearray->list p1)
        p2 (vlax-safearray->list p2)
        d  (distance p1 p2)
        p1 (mapcar '- p1 (list d d d))
        p2 (mapcar '+ p2 (list d d d))
        ax (mapcar '(lambda (n) (sp e n))
                   '((t nil nil) (nil t nil) (nil nil t))
           )
        bb (mapcar
             (function
               (lambda (p)
                 (mapcar
                   (function
                     (lambda (f a n)
                       ((eval f) (vlax-curve-getclosestpointto a (pp p n)))
                     )
                   )
                   '(car cadr caddr)
                   ax
                   '((t nil nil) (nil t nil) (nil nil t))
                 )
               )
             )
             (list p1 p2)
           )
  )
  (mapcar 'entdel ax)
  bb
)
;spline projection on axis line
(defun sp (e n)
  (entmakex
    (mapcar (function (lambda (x)
                        (if (eq (car x) 10)
                          (cons (car x) (pp (cdr x) n))
                          x
                        )
                      )
            )
            (vl-remove-if
              '(lambda (x)
                 (vl-position (car x) '(-1 5 330 67 410 8 210 62 11))
               )
              (entget e)
            )
    )
  )
)
;point projection on axis line
(defun pp (p n) (mapcar 'if n p '(0.0 0.0 0.0)))

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

已领礼包: 219个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 07:28 , Processed in 0.161543 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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