seven11 发表于 2011-6-9 21:54:53

【求助】如何找到距离最近的直线???

给定1个点和n条直线,如何找到距离该点最近的直线?哪位帮忙研究1下,先谢了!!!

zhynt 发表于 2011-6-9 23:11:04

分别求点到各直线的距离,将各直线的实体名和对应的距离组成表。

caoyin 发表于 2011-6-9 23:15:48

(defun c:TT (/ SS PT I EN DI DD EE)
(setq SS (ssget '((0 . "LINE")))
      PT (getpoint "\n指定点: ")
)
(repeat (setq I (sslength SS))
(setq I(1- I)
      EN (ssname SS I)
      DI (distance PT (vlax-curve-getClosestPointTo EN PT))
)
(or DD (setq DD DI))
(if (< DI DD)
    (setq DD DI
          EE EN
    )
)
)
(sssetfirst nil (ssadd EE))
)

seven11 发表于 2011-6-9 23:41:58

谢谢,太牛了!!!

skynoon 发表于 2011-6-17 23:59:28

(distance PT (vlax-curve-getClosestPointTo EN PT))   精辟,我一直用数学算法

ljpnb 发表于 2011-6-18 08:05:29

确实精辟,我认为 (or DD (setq DD DI))用的相当恰当;我原先对or的用法比较的片面。。。

198526 发表于 2011-6-21 08:49:31

(or DD (setq DD DI))
精辟,学习了

tryhi 发表于 2011-7-26 16:10:15

很不错的例子,学习了

seven11 发表于 2011-8-30 10:07:09

请帮忙看1下,上面的程序有时候出错。
错误: 参数类型错误: lentityp nil

seven11 发表于 2011-8-30 18:54:46

自己顶,高手在哪里?
页: [1] 2
查看完整版本: 【求助】如何找到距离最近的直线???