- 积分
- 776
- 明经币
- 个
- 注册时间
- 2023-9-25
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
论坛搜了一圈,有个程序,但是不太完美,凸点多的时候不准
http://bbs.mjtd.com/forum.php?mo ... 6%CE%CF%DF%2B%C4%DA
后来想了下,创个临时点,直接圈选,有则内,无则外,感觉还是挺OK的,函数如下
如果再多加点东西,好像还可以整区分在多段线上/内/外?
;判断点在多段线内外,内返回T,外返回nil
;(PtInorOut (car(entsel)) (getpoint))
(defun PtInorOut (en pt / pts c ss)
(setq pts (mapcar 'cdr (vl-remove-if-not (FUNCTION (LAMBDA (x) (= 10 (car x)))) (entget en))))
(entmake (list '(0 . "POINT") (cons 10 pt)(cons 62 200)));定义个特定的颜色
(setq enpt (entlast))
(setq ss (ssget "WP" pts '((0 . "POINT") (62 . 200))))
(entdel enpt)
(if ss
T
nil
)
)
|
|